1.2. 创建缓存域
1.2.1. Elytron 中的缓存域 复制链接链接已复制到粘贴板!
Elytron 提供 caching-realm
来从缓存安全域中查找的凭证的结果。caching-realm
使用 LRU 或 Least Recently Used 缓存策略缓存 PasswordCredential
凭证,在达到最大条目数时,将丢弃最少访问的条目。
您可以使用带有以下安全域的 caching-realm
:
-
filesystem-realm
-
jdbc-realm
-
ldap-realm
- 自定义安全域
如果您在 JBoss EAP 之外更改凭证源,如果底层的安全域支持侦听,则这些更改只会传播到 JBoss EAP 缓存域。只有 ldap-realm
支持侦听。但是,过滤的属性,如 roles
,在 ldap-realm
中不支持侦听。
要确保您的缓存域有正确的用户数据的缓存,请确保以下内容:
-
在修改了凭证源处的用户属性后,请清除
caching-realm
缓存。 - 通过缓存域而不是在凭证源处修改用户属性。
通过缓存域进行用户更改仅作为技术预览提供。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需有关技术预览功能支持范围的信息,请参阅红帽客户门户网站上的 技术预览功能支持范围。
1.2.2. 在 Elytron 中创建一个 cache-realm 复制链接链接已复制到粘贴板!
创建一个 cache-realm
以及一个引用域的安全域,来保护 JBoss EAP 服务器界面或服务器上部署的应用程序。
配置为缓存域的 ldap-realm
不支持活动目录。如需更多信息,请参阅 通过 Elytron 的 JBossEAP CLI 修改 LDAP/AD 用户密码 。
先决条件
- 您已将安全域配置为缓存。
流程
创建一个将安全域引用为缓存的
caching-realm
。语法
/subsystem=elytron/caching-realm=<caching_realm_name>:add(realm=<realm_to_cache>)
/subsystem=elytron/caching-realm=<caching_realm_name>:add(realm=<realm_to_cache>)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
/subsystem=elytron/caching-realm=exampleSecurityRealm:add(realm=exampleLDAPRealm)
/subsystem=elytron/caching-realm=exampleSecurityRealm:add(realm=exampleLDAPRealm)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个引用
caching-realm
的安全域。语法
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<caching_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<caching_realm_name>,role-decoder="<role_decoder_name>"}])
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<caching_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<caching_realm_name>,role-decoder="<role_decoder_name>"}])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证 Elytron 是否可以将
caching-realm
中引用的安全域中的数据加载到caching-realm
,请使用以下命令:语法
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,您可以使用创建的安全域来向管理界面和应用程序添加身份验证和授权。如需更多信息,请参阅 保护管理界面和应用程序。
1.2.3. 清除 caching-realm 缓存 复制链接链接已复制到粘贴板!
清除 caching-realm
缓存会强制 Elytron 使用安全域的最新数据重新填充缓存, Elytron 被配置为缓存这些数据。
先决条件
-
caching-realm
已配置。
流程
清除
caching-realm
缓存。语法
/subsystem=elytron/caching-realm=<caching_realm_name>:clear-cache
/subsystem=elytron/caching-realm=<caching_realm_name>:clear-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
/subsystem=elytron/caching-realm=exampleSecurityRealm:clear-cache
/subsystem=elytron/caching-realm=exampleSecurityRealm:clear-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow