第 3 章 Security Realms


安全域为 Data Grid Server 端点定义身份、加密、身份验证和授权配置。

3.1. 属性 Realms

属性域使用属性文件来定义用户和组。

users.properties 以纯文本格式将用户名映射到密码。如果您使用 DIGEST-MD5 SASL 机制或 Digest HTTP 机制,也可以预先提取密码。

myuser=a_password
user2=another_password

groups.properties 将用户映射到角色。

myuser=supervisor,reader,writer
user2=supervisor

端点身份验证机制

当您将 Data Grid Server 配置为使用属性域时,您可以将端点配置为使用以下身份验证机制:

  • hot Rod (SASL): PLAIN,DIGEST114, 和 SCRAM114
  • REST (HTTP): BasicDigest

属性域配置

<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:infinispan:server:12.1 https://infinispan.org/schemas/infinispan-server-12.1.xsd"
          xmlns="urn:infinispan:server:12.1">
   <security-realms>
      <security-realm name="default">
         <!-- Defines groups as roles for server authorization. -->
         <properties-realm groups-attribute="Roles">
            <!-- Specifies the properties file that holds usernames and passwords. -->
            <!-- The plain-text="true" attribute stores passwords in plain text. -->
            <user-properties path="users.properties"
                             relative-to="infinispan.server.config.path"
                             plain-text="true"/>
            <!-- Specifies the properties file that defines roles for users. -->
            <group-properties path="groups.properties"
                              relative-to="infinispan.server.config.path"/>
         </properties-realm>
      </security-realm>
   </security-realms>
</security>

3.1.1. 创建和修改用户

添加 Data Grid 用户凭证并分配权限以控制对数据的访问。

Data Grid 服务器安装使用属性域来验证 Hot Rod 和 REST 端点的用户。这意味着,您需要在访问 Data Grid 前至少创建一个用户。

默认情况下,用户还需要具有访问缓存的权限并与 Data Grid 资源交互的角色。您可以单独为用户分配角色,或将用户添加到具有角色权限的组中。

您可以在 Data Grid 命令行界面(CLI)中使用 user 命令创建用户并分配角色。

提示

从 CLI 会话运行 help user 以获取完整的命令详情。

3.1.1.1. 添加凭证

您需要一个 admin 用户用于 Data Grid 控制台,并对数据网格环境进行完全控制。因此,您应该在第一次添加凭证时创建带有 admin 权限的用户。

流程

  1. $RHDG_HOME 中打开一个终端。
  2. 在 CLI 中,使用 user create 命令创建 admin 用户。

    $ bin/cli.sh user create myuser -p changeme -g admin

    或者,用户名 "admin" 会自动获得 admin 权限。

    $ bin/cli.sh user create admin -p changeme
  3. 使用任何文本编辑器打开 user.propertiesgroups.properties,以验证用户和组。

    $ cat server/conf/users.properties
    
    #$REALM_NAME=default$
    #$ALGORITHM=encrypted$
    myuser=scram-sha-1\:BYGcIAwvf6b...
    
    $ cat server/conf/groups.properties
    
    myuser=admin

3.1.1.2. 为用户分配角色

为用户分配角色,以便他们具有访问数据和修改数据和修改数据的正确权限。

流程

  1. 使用 admin 用户启动 CLI 会话。

    $ bin/cli.sh
  2. deployer 角色分配给 "katie"。

    [//containers/default]> user roles grant --roles=deployer katie
  3. 列出 "katie" 的角色。

    [//containers/default]> user roles ls katie
    ["deployer"]

3.1.1.3. 在组中添加用户

组可让您更改多个用户的权限。您可以为组分配角色,然后将用户添加到该组。用户从组角色继承权限。

流程

  1. 使用 admin 用户启动 CLI 会话。
  2. 使用 user create 命令创建组。

    1. 使用 --groups 参数指定"developers"作为组名称。
    2. 为组设置用户名和密码。

      在属性域中,组是特殊类型的用户,它还需要用户名和密码。

      [//containers/default]> user create --groups=developers developers -p changeme
  3. 列出组。

    [//containers/default]> user ls --groups
    ["developers"]
  4. application 角色分配给"developers"组。

    [//containers/default]> user roles grant --roles=application developers
  5. 列出"developers"组的角色。

    [//containers/default]> user roles ls developers
    ["application"]
  6. 根据需要向组添加现有用户。

    [//containers/default]> user groups john --groups=developers
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.