搜索

13.4. 配置示例

download PDF

以下是配置密码库和凭据存储的示例:该流程涉及两个部分:

  • 创建凭据存储和密码库,凭据存储和 vault 密码采用纯文本。
  • 更新凭据存储和 vault,使密码使用 elytron-tool.sh 提供的掩码。

在本例中,使用的测试目标是使用 BIND DN 凭证的 LDAP 实例:secret12。目标使用域 ldaptest 中的用户联合来映射。

13.4.1. 在没有掩码的情况下配置凭证存储和库

您可以创建凭证存储和 vault 密码以纯文本形式的密码库。

先决条件

  • 正在运行的 LDAP 实例具有 BIND DN 凭证:secret12
  • 使用默认密钥解析器时,别名使用 <realm-name>_< key-value> 格式。在本例中,实例在 realm ldaptest 中运行,而 ldaptest_ ldap_secret 是与该域中的值对应的别名。
注意

解析器用 realm 和密钥名称中的双下划线字符替换下划线字符。例如,对于键 ldaptest_ldap_secret,最终密钥是 ldaptest_ldap_secret

流程

  1. 创建 Elytron 凭据存储。

    [standalone@localhost:9990 /] /subsystem=elytron/credential-store=test-store:add(create=true, location=/home/test/test-store.p12, credential-reference={clear-text=testpwd1!},implementation-properties={keyStoreType=PKCS12})
  2. 在凭据存储中添加一个别名。

    /subsystem=elytron/credential-store=test-store:add-alias(alias=ldaptest_ldap__secret,secret-value=secret12)

    请注意,解析器如何使键 ldaptest_ldap__secret 使用双下划线。

  3. 列出凭据存储中的别名,以检查 Elytron 生成的密钥存储的内容。

    keytool -list -keystore /home/test/test-store.p12 -storetype PKCS12 -storepass testpwd1!
    Keystore type: PKCS12
    Keystore provider: SUN
    
    Your keystore contains 1 entries
    
    ldaptest_ldap__secret/passwordcredential/clear/, Oct 12, 2020, SecretKeyEntry,
  4. 在 Red Hat Single Sign-On 中配置 vault SPI。

    /subsystem=keycloak-server/spi=vault:add(default-provider=elytron-cs-keystore)
    
    /subsystem=keycloak-server/spi=vault/provider=elytron-cs-keystore:add(enabled=true, properties={location=>/home/test/test-store.p12, secret=>testpwd1!, keyStoreType=>PKCS12})

    此时,密码库和凭据存储密码不会被屏蔽。

            <spi name="vault">
                    <default-provider>elytron-cs-keystore</default-provider>
                    <provider name="elytron-cs-keystore" enabled="true">
                        <properties>
                            <property name="location" value="/home/test/test-store.p12"/>
                            <property name="secret" value="testpwd1!"/>
                            <property name="keyStoreType" value="PKCS12"/>
                        </properties>
                    </provider>
                </spi>
    
             <credential-stores>
                    <credential-store name="test-store" location="/home/test/test-store.p12" create="true">
                        <implementation-properties>
                            <property name="keyStoreType" value="PKCS12"/>
                        </implementation-properties>
                        <credential-reference clear-text="testpwd1!"/>
                    </credential-store>
             </credential-stores>
  5. 在 LDAP 供应商中,将 binDN 凭据 替换为 ${vault.ldap_secret}
  6. 测试您的 LDAP 连接。

    LDAP Vault

    LDAP Vault

13.4.2. 屏蔽凭据存储和 vault 中的密码

现在,您可以更新凭据存储和 vault,使其使用密码使用 elytron-tool.sh 提供的掩码。

  1. 使用 salt迭代 参数的值创建屏蔽密码:

    $ EAP_HOME/bin/elytron-tool.sh mask --salt SALT --iteration ITERATION_COUNT --secret PASSWORD

    例如:

    elytron-tool.sh mask --salt 12345678 --iteration 123 --secret testpwd1!
    MASK-3BUbFEyWu0lRAu8.fCqyUk;12345678;123
  2. 更新 Elytron 凭据存储配置以使用屏蔽的密码。

    /subsystem=elytron/credential-store=cs-store:write-attribute(name=credential-reference.clear-text,value="MASK-3BUbFEyWu0lRAu8.fCqyUk;12345678;123")
  3. 更新 Red Hat Single Sign-On vault 配置以使用屏蔽的密码。

    /subsystem=keycloak-server/spi=vault/provider=elytron-cs-keystore:remove()
    /subsystem=keycloak-server/spi=vault/provider=elytron-cs-keystore:add(enabled=true, properties={location=>/home/test/test-store.p12, secret=>”MASK-3BUbFEyWu0lRAu8.fCqyUk;12345678;123”, keyStoreType=>PKCS12})

    现在,库和凭证存储被屏蔽:

            <spi name="vault">
                    <default-provider>elytron-cs-keystore</default-provider>
                    <provider name="elytron-cs-keystore" enabled="true">
                        <properties>
                            <property name="location" value="/home/test/test-store.p12"/>
                            <property name="secret" value="MASK-3BUbFEyWu0lRAu8.fCqyUk;12345678;123"/>
                            <property name="keyStoreType" value="PKCS12"/>
                        </properties>
                    </provider>
                </spi>
             ....
             .....
             <credential-stores>
                    <credential-store name="test-store" location="/home/test/test-store.p12" create="true">
                        <implementation-properties>
                            <property name="keyStoreType" value="PKCS12"/>
                        </implementation-properties>
                        <credential-reference clear-text="MASK-3BUbFEyWu0lRAu8.fCqyUk;12345678;123"/>
                    </credential-store>
             </credential-stores>
  4. 现在,您可以使用 ${vault.ldap_secret} 来测试与 LDAP 的连接。

其他资源

有关 Elytron 工具的更多信息,请参阅 使用带有 Elytron 客户端的凭据 存储。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.