13.4. 配置示例
以下是配置密码库和凭据存储的示例:该流程涉及两个部分:
- 创建凭据存储和密码库,凭据存储和 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。
流程
创建 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})在凭据存储中添加一个别名。
/subsystem=elytron/credential-store=test-store:add-alias(alias=ldaptest_ldap__secret,secret-value=secret12)请注意,解析器如何使键
ldaptest_ldap__secret使用双下划线。列出凭据存储中的别名,以检查 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,在 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>-
在 LDAP 供应商中,将
binDN 凭据替换为${vault.ldap_secret}。 测试您的 LDAP 连接。
LDAP Vault
13.4.2. 屏蔽凭据存储和 vault 中的密码 复制链接链接已复制到粘贴板!
现在,您可以更新凭据存储和 vault,使其使用密码使用 elytron-tool.sh 提供的掩码。
使用
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更新 Elytron 凭据存储配置以使用屏蔽的密码。
/subsystem=elytron/credential-store=cs-store:write-attribute(name=credential-reference.clear-text,value="MASK-3BUbFEyWu0lRAu8.fCqyUk;12345678;123")更新 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>-
现在,您可以使用
${vault.ldap_secret}来测试与 LDAP 的连接。