Keycloak SAML 实施
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
Name对应的官方文档地址
本文是专门针对 Keycloak 用于配置 SAML 2.0 方式的 SSO 登录的帮助。有关其他 IdP 方式配置 SSO 登录的帮助,请参阅 SAML 2.0 配置。
配置需要在 Bitwarden 网页 App 和 Keycloak 门户网站中同时进行。在您继续进行操作时,我们建议您准备好这两样东西,并按照文档中的顺序完成这些步骤。
已经是 SSO 专家?跳过本文中的说明,然后下载示例配置,将里面的屏幕截图与您自己的配置进行比较。
⬇️下载示例
登录到 Bitwarden 网页 App,使用产品切换器打开管理控制台:
打开组织的设置 → 单点登录界面:
如果还没有为您的组织创建专属的 SSO 标识符,请创建一个,然后从类型下拉菜单中选择 SAML。保持此界面打开,以方便参考。
如果愿意,您可以在此阶段关闭设置专属的 SP 实体 ID 选项。这样做会从 SP 实体 ID 值中移除组织 ID,但大多数情况下都建议打开该选项。
您可以选择性使用成员解密选项。了解如何开始使用受信任设备 SSO 和 Key Connector。
登录到 Keycloak 然后选择 Clients → Create Client:
在 Create Client 界面上,配置以下设置:
Client type
选择 SAML。
Client ID
将此字段设置为从 Bitwarden SSO 配置界面中预先生成的 SP Entity ID。
此自动生成的值可以从组织的设置 → 单点登录界面复制,并根据设置而有所不同。
Name
输入您为 Keycloak 客户端选择的名称。
填写完 General Settings 页面的必填字段后,单击 Next。
在 Login settings 页面,填写以下字段:
Valid Redirect URLs
将此字段设置为预先生成的断言消费者服务(ACS)URL。
此自动生成的值可以从组织的设置 → 单点登录界面复制,并根据设置而有所不同。
选择 Save。
选择密钥选项卡,将 Client signature required 选项切换为 Off。
最后,在 Keycloak 主导航上选择 Realm settings,然后选择 Keys 选项卡。找到 RS256 证书并选择 Certificate。
后面的章节将需要此证书的值。
至此,您已经在 Keycloak 门户网站范围内配置好了您所需要的一切。返回 Bitwarden 网页 App,从导航中选择设置 → 单点登录。
单点登录界面将配置分为两个部分:
SAML 服务提供程序配置将决定 SAML 请求的格式。
SAML 身份提供程序配置将决定用于 SAML 响应的预期格式。
在 SAML 服务提供程序配置部分完成以下字段:
Name ID Format
选择 Email Address。
Outbound Signing Algorithm
Bitwarden 用来签署 SAML 请求的算法。
Signing Behavior
SAML 请求是否/何时将被签名。
Minimum Incoming Signing Algorithm
选择 Keycloak 客户端被配置为用于签署 SAML 文档或声明的算法。
Want Assertions Signed
Bitwarden 是否要求 SAML 声明被签名。如果开启,请确保配置了 Keycloak 客户端的 Sign Assertions(签名声明)。
Validate Certificates
通过受信任的 CA 使用来自 IdP 的受信任和有效证书时,请选中此框。除非在 Bitwarden SSO 登录 docker 镜像中配置了适当的信任链,否则自签名证书可能会失败。
在 SAML 身份提供程序配置部分完成以下字段:
Entity ID
输入之前创建客户端的 Keycloak 领域的 URL,例如 https://<keycloak_domain>/auth/realms/master
。
Binding Type
选择 HTTP POST 或 Redirect。
Single Sign On Service URL
输入您的主 SAML 处理 URL,例如 https://<keycloak_domain>/auth/realms/master/protocol/saml
。
Single Log Out Service URL
SSO 登录当前不支持 SLO。该选项计划用于将来的开发,但是如果您愿意,您可以使用您的 Logout URL 预先配置它。
X509 Public Certificate
黏贴已下载的证书,移除 -----BEGIN CERTIFICATE-----
和 -----END CERTIFICATE-----
。
多余的空格、回车符和其他多余的字符将导致证书验证失败。
Outbound Signing Algorithm
选择 Keycloak 客户端被配置为用于签署 SAML 文档或声明的算法。
Disable Outbound Logout Requests
SSO 登录当前不支持 SLO。该选项计划用于将来的开发。
Want Authentication Requests Signed
Keycloak 是否要求 SAML 请求被签名。
填写 X509 证书时,请注意到期日期。必须续签证书,以防止向 SSO 最终用户提供的服务中断。如果证书已过期,管理员和所有者账户将始终可以使用电子邮箱地址和主密码登录。
完成身份提供程序配置部分后,Save(保存)您的工作。
您可以通过激活单点登录身份验证策略来要求用户使用 SSO 登录。请注意,这需要先激活单一组织政策。了解更多。
在 Keycloak 客户端设置选项卡上,还有其他配置选项可用:
Sign Documents
指定 SAML 文档是否应由 Keycloak 领域签署。
Sign Assertions
指定 SAML 断言是否应由 Keycloak 领域签名。
Signature Algorithm
如果启用了签署断言,请选择要签署的算法(默认为 sha-256
)。
Name ID Format
选择 Keycloak 在 SAML 响应中使用的名称 ID 格式。
完成设置后,选择保存。
配置完成后,通过导航到 https://vault.bitwarden.com 或 https://vault.bitwarden.eu,输入您的电子邮箱地址,选择继续,然后选择企业单点登录按钮来进行测试:
输入已配置的组织标识符,然后选择登录。如果您的实施已成功配置,您将被重定向到 Keycloak 登录界面:
使用 Keycloak 凭据进行身份验证后,输入您的 Bitwarden 主密码以解密您的密码库!
Bitwarden 不支持非请求响应,因此从您的 IdP 发起登录会导致错误。SSO 登录流程必须从 Bitwarden 发起。