Keycloak 与 Pingfederate 集成

Keycloak integration with Pingfederate

我想做的是这样的:

我的应用程序中集成了 keycloak。因此,当我的应用程序启动时,会向用户显示 keycloak 登录页面。现在,我正在尝试提供使用 PingFedrate 登录的选项。因此会出现使用 PingFed 登录的按钮(一旦在 keycloak 中配置了新的 SAML 提供程序)。在 PingFedrate 上,我尝试集成 SP 启动的 SSO:

我添加了一个新的 SP 连接,并将其配置为 SSP 发起的 SSO。 (它迫使我配置 SOAP Authentication ,我选择了基本的和配置的随机用户名密码)。然后我从这个 SP 下载 metatdata.xml 并导入 keycloak,它自动填充登录名 url 为:https://myserver:9031/idp/SSO.saml2(即没有客户端 ID)。在此之后,当用户单击使用 PingFed 登录时 - PingFed 给出以下错误:

Unexpected System Error Sorry for the inconvenience. Please contact your administrator for assistance and provide the reference number below to help locate and correct the problem.

我找到了解决方法。

首先,我们需要在 Pingfed 中为 keycloak 添加 SP 发起的 SSO。

其次,我无法使 SP 启动的 SSO 工作的原因是 keycloak 的 entityId 应该与 Pingfed SP 连接的 Partner's Entity Id / Connection Id

Keycloak,默认情况下保持实体 ID 等于包含您的领域的 keyloak 服务器的 url。例如

https://(keycloak-server)/auth/realms/(realm-name)

(我找不到通过 Keycloak 更改它的方法 UI)

您需要在 Pingfed 中输入此 URL。

为避免手动添加,您可以从身份提供商的下载导出选项卡中下载 keycloak 配置。

然后在 Pingfed 上导入此文件。

附带说明一下,虽然我之前导入了它,但我正在将 Partenr id 的值更改为其他名称,因为在我开始解码请求中的 SAML 令牌之前我不知道上述限制。