版本比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
前言
之前利用 keycload 通过 openid 的方式整合了 seafile 和 seatable 的应用。实现了同一用户只需认证一次即可登录多个应用的效果。接下来想继续将 confluence 的应用也整合进来Confluence 官网提供的解决方案是通过 SAML 的方式提供 SSO 的单点登录,但是照着操作一遍下来一直未能成功,先记录这次的操作步骤和错误情况。
最后测试验证时存在以下的错误提示,请求已经转发到 keycloak ,但是 keycloak 页面反馈无效的请求,如下图:
警告 |
---|
Confluence 9.5.1 配置【认证配置】选项要求使用 https 方式,这里测试环境通过启用 http 方式操作,生产环境需要确保使用 https |
禁用针对 SSO 配置的 https 要求
该操作步骤参照官网说明执行。
- 先使用管理员登陆 confluence
- 在浏览器打开 http://192.168.182.100:8090/admin/darkfeatures.action 类似的配置页面
- 在该页面的下方输入 atlassian.authentication.sso.skip.https.requirement 来临时禁用 https
- 如需取消删除该项的内容即可
Confluence 配置 SAML 认证
查看 keycloak 的 SAML 信息
在配置 Confluence 之前需要在 keycloak 中找到对应的 saml 配置信息。官网给出的参考操作步骤是直接使用 keycload 的 master 领域,这里使用的是单独新建 confluence 领域,后续的操作都只针对该 confluence 领域,不会造成干扰和影响。
在 keycloak 中找到新建的 confluence 领域信息,点击该领域关于 【SAML】的相关信息(http://192.168.182.52:8080/realms/confluence/protocol/saml/descriptor),找到如下图所示的几项内容:entityID,X509Certificate 和 Location
在 Confluence 中配置 SAML 认证
登录并进入 Confluence 的后台管理界面。找到【General Configuration】-【Authentication methods】在该界面添加新的认证方法【SAML single sign-on】。
信息 |
---|
注意:需要先按前面的步骤取消 https 的配置要求,否则该页面后续设置的内容无法正常保存 |
参照 keycloak 中的关键信息完成如下图的配置
- 【Single sign-on issuer】http://192.168.182.52:8080/realms/confluence #keycloak 中 entityID 的信息
- 【Identity provider single sign-on URL】http://192.168.182.52:8080/realms/confluence/protocol/saml #keycloak 中 Location 的信息
- 【X.509 Certificate】略 #keycloak 中 x509 证书信息
- 【Username mapping】${username}
- 【Assertion Consumer Service URL】http://192.168.182.100:8090/plugins/servlet/samlconsumer
- 【Audience URL (Entity ID)】http://192.168.182.100:8090
在 keycloak 中创建 saml 客户端
- 【General Settings】-【Client ID】处填写 http://192.168.182.100:8090 ,【name】 和 【Description】 不是必填项,按需填写即可
- 进入【Access settings】后
- 【Root URL】:http://192.168.182.100:8090
- 【Home URL】:http://192.168.182.100:8090
- 【Valid redirect URIs】:http://192.168.182.100:8090/*
- 【Master SAML Processing URL】:http://192.168.182.100:8090/plugins/servlet/samlconsumer
- 进入 【SAML capabilities】
- 【Name ID format】username
- 【Force name ID format】on
- 【Force POST binding】 on
- 【Force artifact binding】 on
- 【Include AuthnStatement】 on
- 进入 【Signature and Encryption】
【Sign documents 】On
【Sign assertions 】On
【Signature algorithm 】RSA_SHA256
【SAML signature key name 】KEY_ID
【Canonicalization method 】EXCLUSIVE
如下图完成设置:
完成上述步骤后,在 keycloak 中创建用户
启用并测试 SAML 认证
完成上述配置后,进入 Confluence 的 【Authentication methods】认证界面,点击页面上的测试会自动跳转到 keycloak 的登陆页面
错误一:keycloak 界面显示 “Invaild requester”
在 confluence 的配置页面点击 SAML 的认证测试后出现下图的错误页面。同时 keycloak 的日志中也存在 “2025-06-09 15:38:44,212 ERROR [org.keycloak.protocol.saml.SamlService] (executor-thread-88) request validation failed: org.keycloak.common.VerificationException: SigAlg was null”的错误提示
原因:keycloak 的 client 中的 【key】配置项启用了签名
进入 keyclaod 找到 SAML 的 client,进入 client 配置项找到【keys】将 【Client signature required 】修改为 off
错误2:登录后 confluence 提示 “something went worng”
该问题暂未解决
Image Added
目录 |
---|