7.2. 服务供应商密钥和关键元素


如果 IdP 要求客户端应用程序(或 SP)为其所有请求签名,如果 IdP 将加密断言,则必须定义用于执行此操作的密钥。对于客户端签名的文档,您必须同时定义用于签署文档的私钥和公钥或证书。对于加密,您只需要定义用于解密它的私钥。

可以通过两种方式描述您的密钥。它们可以存储在 Java KeyStore 中,或者您可以直接以 PEM 格式在 keycloak-saml.xml 中复制/粘贴密钥。

        <Keys>
            <Key signing="true" >
               ...
            </Key>
        </Keys>

Key 元素有两个可选属性 signingencryption。当设置为 true 时,告诉适配器使用哪个密钥。如果这两个属性都设为 true,则密钥将用于签名文档和解密加密的断言。您必须至少将其中一个属性设置为 true。

7.2.1. keystore 元素

Key 元素中,您可以从 Java Keystore 加载密钥和证书。这在 KeyStore 元素中声明。

        <Keys>
            <Key signing="true" >
                <KeyStore resource="/WEB-INF/keystore.jks" password="store123">
                    <PrivateKey alias="myPrivate" password="test123"/>
                    <Certificate alias="myCertAlias"/>
                </KeyStore>
            </Key>
        </Keys>

以下是使用 KeyStore 元素定义的 XML 配置属性。

file
密钥存储的文件路径。此选项是 OPTIONAL。必须设置 file 或 resource 属性。
resource
KeyStore 的 WAR 资源路径。这是对 ServletContext.getResourceAsStream ()方法调用中的一个路径。此选项是 OPTIONAL。必须设置 file 或 resource 属性。
password
KeyStore 的密码。此选项是 REQUIRED

如果您要定义 SP 将用来签署文档的密钥,还必须在 Java KeyStore 中指定对私钥和证书的引用。上例中的 PrivateKeyCertificate 元素定义了一个 alias,指向密钥存储内密钥或证书。密钥存储需要额外的密码来访问私钥。在 PrivateKey 元素中,您必须在 password 属性中定义此密码。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部