Keycloak IdP SAML2 将 XML 元数据导出到 SP

Posted

技术标签:

【中文标题】Keycloak IdP SAML2 将 XML 元数据导出到 SP【英文标题】:Keycloak IdP SAML 2 Export of XML metdata to an SP 【发布时间】:2016-02-06 04:25:49 【问题描述】:

我正在使用 Keycloak 1.6.1 版,作为独立应用程序新安装。

Keycloak 应充当名为 Tableau 的 SP(服务提供者)的 IdP(身份提供者)。

我已从该页面阅读:http://blog.keycloak.org/2015/03/picketlink-and-keycloak-projects-are.html

... Keycloak 从身份经纪人成长为成熟的 身份提供者

虽然它是一个身份代理,但它现在也是一个身份提供者。

我的问题是:

我已从 Tableau 中导出 SP XML 元数据,并将其导入 Keycloak,但在从 Keycloak 导出 IdP XML 元数据(应导入 Tableau)时,我找不到按钮/命令/指南有关如何导出此 XML 文件的任何信息。

我曾与其他 IdP 合作过,他们都支持 IdP 元数据的这种导出,您可以在此处查看示例:https://docs.oracle.com/cd/E19636-01/819-7664/g2enua/index.html

如果我搜索 Keycloak 和关键字 IDPSSODescriptor,我会发现: grepcode.com/file/repo1.maven.org/maven2/org.keycloak/keycloak-saml-protocol/1.1.0.Beta2/idp-metadata-template.xml

这正是我需要的“模板”,在所有 $idp.sso.HTTP-POST 等地方都有正确的链接。

我是否应该手动创建文件 - 如果需要,如何找到正确的 POST、REDIRECT 等 URL?

或者有什么方法可以导出这个我没见过的文件?

【问题讨论】:

看起来他们已经稍微改变了网址:keycloack-url/realmsREALM-NAME/protocol/saml/descriptor 【参考方案1】:

有时以书面形式指定您需要的东西是一件好事 - 我在 Stack Overflow 上就这样做了。

我在 Keycloak 上找到了可以导出 IdP XML 的 URL

https://keycloak-url/realms/REALM-NAME/protocol/saml/descriptor

这给了我 IDPSSODescriptor。

我将把这个帖子留在这里,这样人们可以从我的错误中受益。

【讨论】:

我想为 Keycloak 中的每个客户端获取 IDP XML。我收到了10.164.44.105:9992/auth/admin/realmsrealmid/clients/client id/installation/providers/provider id 链接,但不知道提供者 ID 是什么,所以请提出建议。 文档中有这个网址吗?我来自 AD FS 世界,习惯于共享启用了自动更新的 URL,因此配置/证书会自动同步。我仍在挖掘文档以查看 Keycloak 是否具有此功能。【参考方案2】:

从 Keycloak 3.x 开始,IdP XML 描述符在 keycloak-url 之后需要 /auth/

https://KEYCLOAK-URL/auth/realms/REALM-NAME/protocol/saml/descriptor

【讨论】:

另请注意,领域名称区分大小写【参考方案3】:

原海报是正确的,SAML Metadata IDPSSODescriptor 选项在 Keycloak 6.0.1 上不再可用

需要做的一个改变是当您使用 URL https://KEYCLOAK-URL/auth/realms/REALM-NAME/protocol/saml/descriptor 时,Rancher 期望根元素是 EntityDescriptor,因此您需要删除 EntitiesDescriptor 并从根元素复制命名空间。

<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" entityID="https://KEYCLOAK-URL/auth/realms/REALM-NAME">
  ....

</EntityDescriptor>

【讨论】:

遵循通用模式,每个标签通常以“<.... keycloak url>

以上是关于Keycloak IdP SAML2 将 XML 元数据导出到 SP的主要内容,如果未能解决你的问题,请参考以下文章

ITfoxtec SAML2 能否支持多个 IdP?

我是不是应该要求 IdP 签署 SAML2 SSO 响应?

使用 .Net Core 5 MVC 为多个 IDP 实施 SAML2

Keycloak、PKCE 和外部 IDP

Keycloak 与 IDP 和 SSO 的集成

构造一个签名的 SAML2 LogOut 请求