5.3. 属性域
属性域使用属性文件来定义用户和组。
-
users.properties包含 Data Grid 用户凭证。可以使用DIGEST-MD5和DIGEST身份验证机制预先摘要密码。 -
groups.properties将用户与角色和权限相关联。
users.properties
myuser=a_password
user2=another_password
groups.properties
myuser=supervisor,reader,writer
user2=supervisor
属性域配置
XML
<server xmlns="urn:infinispan:server:15.0">
<security>
<security-realms>
<security-realm name="default">
<!-- groups-attribute configures the "groups.properties" file to contain security authorization roles. -->
<properties-realm groups-attribute="Roles">
<user-properties path="users.properties"
relative-to="infinispan.server.config.path"
plain-text="true"/>
<group-properties path="groups.properties"
relative-to="infinispan.server.config.path"/>
</properties-realm>
</security-realm>
</security-realms>
</security>
</server>
JSON
{
"server": {
"security": {
"security-realms": [{
"name": "default",
"properties-realm": {
"groups-attribute": "Roles",
"user-properties": {
"digest-realm-name": "default",
"path": "users.properties",
"relative-to": "infinispan.server.config.path",
"plain-text": true
},
"group-properties": {
"path": "groups.properties",
"relative-to": "infinispan.server.config.path"
}
}
}]
}
}
}
YAML
server:
security:
securityRealms:
- name: "default"
propertiesRealm:
# groupsAttribute configures the "groups.properties" file
# to contain security authorization roles.
groupsAttribute: "Roles"
userProperties:
digestRealmName: "default"
path: "users.properties"
relative-to: 'infinispan.server.config.path'
plainText: "true"
groupProperties:
path: "groups.properties"
relative-to: 'infinispan.server.config.path'
5.3.1. 属性 realm 文件结构 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
用户属性文件的结构如下:
users.properties 结构
#$REALM_NAME=default$
#$ALGORITHM=encrypted$
#Wed Jul 31 08:32:08 CEST 2024
admin=algorithm-1\:hash-1;algorithm-2\:hash-2;...
前三行是特殊的注释,用于定义域的名称($REALM_NAME)、密码是否 以明文 格式存储($ALGORITHM),以及最近更新的时间戳。
用户凭据以传统键/值格式存储:键对应于用户名,值则对应于密码。加密的密码以分号分隔的算法/哈希对形式表示,使用以 Base64 编码的哈希来表示。
凭据使用域名加密。更改 realm 的名称需要重新加密所有密码。使用 Data Grid CLI 为文件输入正确的安全域名称。