第3章 セキュリティーレルム
セキュリティーレルムは、Data Grid Server エンドポイントの ID、暗号化、認証、および承認設定を定義します。
3.1. プロパティーレルム リンクのコピーリンクがクリップボードにコピーされました!
プロパティーレルムはプロパティーファイルを使用して、ユーザーおよびグループを定義します。
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、DIGEST-*、およびSCRAM-* -
REST(HTTP):
BasicおよびDigest
プロパティーレルム設定
<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 にアクセスする前に 1 人以上のユーザーを作成する必要があることを意味します。
デフォルトでは、ユーザーはキャッシュにアクセスして Data Grid リソースと対話するためのパーミッションを持つロールも必要です。ユーザーにロールを個別に割り当てたり、ロールパーミッションを持つグループにユーザーを追加したりすることができます。
Data Grid コマンドラインインターフェイス (CLI) の user コマンドを使用して、ユーザーを作成し、ロールを割り当てます。
CLI セッションから help user を実行し、コマンドの詳細を取得します。
3.1.1.1. 認証情報の追加 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Console の admin ユーザーと、Data Grid 環境を完全に制御する必要があります。このため、初めて認証情報を追加する時に admin パーミッションを持つユーザーを作成する必要があります。
手順
-
$RHDG_HOMEでターミナルを開きます。 CLI で
user createコマンドを使用してadminユーザーを作成します。$ bin/cli.sh user create myuser -p changeme -g adminまたは、ユーザー名 admin は自動的に
adminパーミッションを取得します。$ bin/cli.sh user create admin -p changeme任意のテキストエディターで、
user.propertiesおよびgroups.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. ユーザーへのロールの割り当て リンクのコピーリンクがクリップボードにコピーされました!
ユーザーにロールを割り当て、ユーザーがデータにアクセスし、Data Grid リソースを変更するための適切なパーミッションを持つようにします。
手順
adminユーザーで CLI セッションを開始します。$ bin/cli.shdeployerロールを katie に割り当てます。[//containers/default]> user roles grant --roles=deployer katiekatie のロールをリスト表示します。
[//containers/default]> user roles ls katie ["deployer"]
3.1.1.3. グループへのユーザーの追加 リンクのコピーリンクがクリップボードにコピーされました!
グループを使用すると、複数のユーザーのパーミッションを変更できます。グループにロールを割り当ててから、そのグループにユーザーを追加します。ユーザーは、グループロールからパーミッションを継承します。
手順
-
adminユーザーで CLI セッションを開始します。 user createコマンドを使用してグループを作成します。-
--groups引数を使用して、グループ名として developers を指定します。 グループのユーザー名とパスワードを設定します。
プロパティーレルムでは、グループは特別なタイプのユーザーで、ユーザー名とパスワードも必要です。
[//containers/default]> user create --groups=developers developers -p changeme
-
グループをリスト表示します。
[//containers/default]> user ls --groups ["developers"]applicationロールを developers グループに割り当てます。[//containers/default]> user roles grant --roles=application developersdevelopers グループのロールをリスト表示します。
[//containers/default]> user roles ls developers ["application"]必要に応じて、既存のユーザーを一度に 1 人ずつグループに追加します。
[//containers/default]> user groups john --groups=developers