Keycloak IdP
简介
单点登录 (SSO) 是一种允许用户只需登录一次即可访问多个应用程序/服务而无需重新身份验证的技术。
如果一个网页门户包含多个大型独立部分(论坛、聊天、博客等),用户可以在其中一个服务内完成身份验证,即可自动访问所有其他服务,而无需多次输入凭据。
SSO 始终由两个应用程序的联合运行来确保:身份提供商和服务提供商(也称为“IdP”和“SP”)。ONLYOFFICE SSO 仅实现 SP。许多不同的提供商都可以充当 IdP,但本文主要讨论 Keycloak 的实现。
在 Keycloak 中创建 IdP
-
以管理员身份登录 Keycloak。
-
前往管理域,选择要配置连接的域。
-
前往客户端,然后点击创建客户端按钮。
-
在打开的页面上,进行以下设置:在客户端类型字段中选择 SAML。在 客户端 ID 字段中输入
https://myportal-address.com/sso/metadata,将 myportal-address.com 替换为您工作空间的域名。在名称和描述字段中,输入客户端的任意名称和描述。
-
点击下一步按钮。
-
填写以下字段:
备注将
myportal-address.com替换为您的工作空间的域名。应用程序详情 根 URL https://myportal-address.com/sso主页 URL https://myportal-address.com/sso有效重定向 URI https://myportal-address.com/sso/slo/callbackhttps://myportal-address.com/sso/acs有效注销后重定向 URI https://myportal-address.com/sso/slo/callback主 SAML 处理 URL https://myportal-address.com/sso/acs
在高级选项卡中填写以下字段:
断言消费者服务 POST 绑定 URL https://myportal-address.com/sso/acs断言消费者服务重定向绑定 URL https://myportal-address.com/sso/acs注销服务 POST 绑定 URL https://myportal-address.com/sso/slo/callback注销服务重定向绑定 URL https://myportal-address.com/sso/slo/callback
-
点击保存按钮。
-
在 SAML 功能部分,将名称 ID 格式设置为电子邮件。
-
在签名和加密部分,启用签名断言选项并选择签名算法:RSA_SHA1, RSA_SHA256, 或 RSA_SHA512。
-
点击保存按钮。
-
前往客户端范围部分,点击包含您工作空间名称的链接
https://myportal-address.com/sso/metadata-dedicated。点击添加预定义映射器按钮,并在弹出窗口中选择以下映射器:
- X500 电子邮件
- X500 名字
- X500 姓氏
然后点击添加按钮。

配置 ONLYOFFICE SP
-
确保您已以管理员身份登录 ONLYOFFICE Apps 工作空间,然后前往设置菜单,选择集成部分,并打开单点登录选项卡。
-
使用启用单点登录身份验证切换器启用单点登录 (SSO),并将
https://<keycloakurl>/realms/<realm_name>/protocol/saml/descriptor粘贴到 Idp 元数据 XML 的 URL字段中。将<keycloakurl>和<realm_name>替换为您的 Keycloak 服务器地址以及创建连接的域的名称。最终链接必须可以通过浏览器访问。
-
按下带有向上箭头的按钮加载 IdP 元数据。ONLYOFFICE 服务提供商设置表单将自动填充来自 Keycloak IdP 的数据。
-
请选择与 Keycloak 中指定的相同的默认签名验证算法。
-
将 NameId 格式更改为 emailAddress。
-
现在,您需要在 SP 证书部分创建证书。为此,请点击添加证书按钮。
-
在打开的模态窗口中,点击生成新的自签名证书链接,并在用途列表中选择签名和加密选项。在保存证书之前,请将公共证书文本复制到剪贴板并将其保存到文件中(这对于 Keycloak 来说是必需的),然后点击确定按钮。

-
转到属性映射部分,并为属性分配以下值:
- 名字:urn:oid:2.5.4.42
- 姓氏:urn:oid:2.5.4.4
- 电子邮件:urn:oid:1.2.840.113549.1.9.1
在高级设置部分,您可以勾选隐藏身份验证页面选项,以隐藏默认身份验证页面并自动重定向到 SSO 服务。
如果您需要恢复默认身份验证页面(以便在您的 IdP 服务器发生故障时能够访问工作空间),您可以在浏览器地址栏中,在工作空间域名后添加 /login?skipssoredirect=true 键。
-
点击保存按钮。
-
返回 Keycloak 配置加密,打开客户端,然后转到密钥部分。禁用需要客户端签名选项,并启用加密断言。在弹出窗口中,选择导入,将存档格式设置为证书 PEM,然后点击“浏览”按钮。指定步骤 7 中证书文件的路径,然后点击确认。
使用 Keycloak IDP 检查 ONLYOFFICE SP 的工作情况
-
前往 ONLYOFFICE Apps身份验证页面(例如,
https://myportal-address.com/login)。 -
点击单点登录按钮。如果缺少该按钮,则表示未启用 SSO。
-
如果所有 SP 和 IdP 参数设置正确,您将被重定向到 Keycloak IdP 登录表单:

-
输入 Keycloak 用户的登录名和密码,然后点击登录按钮。
-
如果凭证正确,您将被重定向到工作空间主页(如果缺少用户,将自动创建用户;如果 IdP 中发生更改,将更新数据)。
