Keycloak 作为服务提供商 - 设置签名证书

问题描述 投票:0回答:2

当使用 Keycloak 作为应连接到(非 Keycloak)身份提供商 (IdP) 的服务提供商 (SP) 时,如何在 Keycloak 中安装签名证书?

更准确地说,Keycloak 应该用作身份代理(如Keycloak 文档中所述),并且 Keycloak SP 和 IdP 之间的通信将通过 SAML 2.0 协议来促进。

Keycloak 文档包含有关如何安装 SSL 证书的信息以进行“正常”HTTPS 通信,例如在浏览器中,但我找不到有关安装要在与 IdP 的后端到后端 SAML 通信中使用的签名证书的任何信息。有谁知道该怎么做吗?

(也许Keycloak中只安装了一个证书,即该证书既用于SAML通信又用于其他非SAML Keycloak HTTPS通信?)

keycloak saml idp
2个回答
13
投票

如何查看 SP 使用哪个证书为外部 IDP 签名/加密 SAML 消息?

转至身份提供商 -> 您配置的 SAML IDP -> 导出。导出包含用于签名/加密的证书。您的 IDP 中必须至少有一个激活的签名/加密配置,否则您将在导出中看不到证书

如何更改我配置的 IDP 使用的证书?

创建领域时,keycloak 会生成一个

RSA-SHA256
证书,默认情况下,您配置的 IDP 经纪设置将使用该证书。

转到领域设置 -> 密钥,您将看到这个

RS256
(RSA) 和提供商 (
rsa-generated
)

如果您需要另一个证书,请切换到“提供商”选项卡,添加密钥库,例如rsa。导入您的私钥和证书(均为 PEM 格式!)

回到概述,禁用 rsa 生成的提供程序,您新生成的提供程序应该是唯一一个类型为

RS256

的活动提供程序

如果您现在再次检查 IDP 的导出,导入的证书应在 XML 中使用


0
投票

使用客户端所在的 keycloak(充当身份代理)领域的 X509 证书,即从领域的 SAML 元数据 url 获取证书,例如(对于在开发模式下本地运行的 keycloak):

http://localhost:8080/realms/REALM/protocol/saml/descriptor

MIICmzCCA...MDA4WjA

此证书可以与客户端(服务提供商)详细信息一起存储在身份提供商中。

© www.soinside.com 2019 - 2024. All rights reserved.