第4章 Data Grid Server へのアクセスのセキュリティー保護
認証および暗号化メカニズムを設定して、Data Grid Server へのアクセスをセキュリティー保護し、データを保護します。
4.1. Data Grid サーバーのセキュリティーレルムの定義 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーレルムは、ID、暗号化、認証、および承認情報を Data Grid サーバーエンドポイントに提供します。
4.1.1. プロパティーレルム リンクのコピーリンクがクリップボードにコピーされました!
プロパティーレルムはプロパティーファイルを使用して、ユーザーおよびグループを定義します。
users.properties は、ユーザー名をプレーンテキスト形式でパスワードにマッピングします。DIGEST-MD5 SASL メカニズムまたは Digest HTTP メカニズムを使用する場合は、パスワードを事前にダイジェストすることもできます。
myuser=a_password
user2=another_password
groups.properties はユーザーをロールにマッピングします。
myuser=supervisor,reader,writer
user2=supervisor
プロパティーレルム設定
<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
xmlns="urn:infinispan:server:11.0">
<security-realms>
<security-realm name="default">
<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>
サポート対象の認証メカニズム
プロパティーレルムは、以下の認証メカニズムをサポートします。
-
SASL:
PLAIN、DIGEST-*、およびSCRAM-* -
HTTP(REST):
BasicおよびDigest
4.1.1.1. ユーザーの作成と変更 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Server では、デフォルトのプロパティーレルムに対してユーザーを認証する必要があります。Data Grid Server にアクセスする前に、少なくとも 1 人のユーザーとパスワードを作成して認証情報を追加する必要があります。ユーザーが属するセキュリティー承認グループを追加および変更することもできます。
手順
-
$RHDG_HOMEでターミナルを開きます。 -
userコマンドを使用して Data Grid ユーザーを作成および変更します。
このコマンドの使用方法の詳細は、help user を実行してください。
ユーザーとパスワードの作成
Linux
$ bin/cli.sh user create myuser -p "qwer1234!"Microsoft Windows
$ bin\cli.bat user create myuser -p "qwer1234!"
グループメンバーシップを持つユーザーの作成
Linux
$ bin/cli.sh user create myuser -p "qwer1234!" -g supervisor,reader,writerMicrosoft Windows
$ bin\cli.bat user create myuser -p "qwer1234!" -g supervisor,reader,writer
4.1.2. LDAP レルム リンクのコピーリンクがクリップボードにコピーされました!
LDAP レルムは、OpenLDAP、Red Hat Directory Server、Apache Directory Server、Microsoft Active Directory などの LDAP サーバーに接続して、ユーザーを認証し、メンバーシップ情報を取得します。
LDAP サーバーは、サーバーのタイプとデプロイメントに応じて、異なるエントリーレイアウトを持つことができます。このため、LDAP レルム設定は複雑です。すべてのポジションの設定の例を提供するために、本書では扱いません。
LDAP レルム設定
<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
xmlns="urn:infinispan:server:11.0">
<security-realms>
<security-realm name="default">
<ldap-realm name="ldap"
url="ldap://my-ldap-server:10389"
principal="uid=admin,ou=People,dc=infinispan,dc=org"
credential="strongPassword"
connection-timeout="3000" read-timeout="30000"
connection-pooling="true" referral-mode="ignore"
page-size="30"
direct-verification="true">
<identity-mapping rdn-identifier="uid"
search-dn="ou=People,dc=infinispan,dc=org">
<attribute-mapping>
<attribute from="cn"
to="Roles"
filter="(&(objectClass=groupOfNames)(member={1}))"
filter-dn="ou=Roles,dc=infinispan,dc=org"/>
</attribute-mapping>
</identity-mapping>
</ldap-realm>
</security-realm>
</security-realms>
</security>
- 1
- LDAP レルムに名前を付けます。
- 2
- LDAP サーバー接続 URL を指定します。
- 3
- LDAP サーバーに接続するためのプリンシパルおよび認証情報を指定します。重要
LDAP 接続のプリンシパルには、LDAP クエリーを実行し、特定の属性にアクセスするために必要な権限が必要です。
- 4
- 必要に応じて、接続タイムアウトなどを指定して LDAP サーバー接続を調整します。
- 5
- ユーザーの認証情報を検証します。Data Grid は設定済みの認証情報を使用して LDAP サーバーへの接続を試みます。または、パスワードを指定する
user-password-mapper要素を使用することもできます。 - 6
- LDAP エントリーをアイデンティティーにマッピングします。
rdn-identifierは、指定された識別子 (通常はユーザー名) をもとにユーザーエントリーを検索する LDAP 属性を指定します (例:uidまたはsAMAccountName属性)。 - 7
- ユーザーエントリーを含む LDAP サブツリーへの検索を制限する開始コンテキストを定義します。
- 8
- ユーザーがメンバーとなっている全グループを取得します。通常、メンバーシップ情報を保存する方法は 2 つあります。
-
通常、
member属性にクラスgroupOfNamesを持つグループエントリーの下。この場合は、前述の設定例にあるように、属性フィルターを使用できます。このフィルターは、提供されたフィルターに一致するエントリーを検索します。フィルターは、ユーザーの DN と等しいmember属性を持つグループを検索します。次に、フィルターは、fromで指定されたグループエントリーの CN を抽出し、それをユーザーのRolesに追加します。 memberOf属性のユーザーエントリー。この場合、以下のような属性参照を使用する必要があります。<attribute-reference reference="memberOf" from="cn" to="Roles" />この参照は、ユーザーエントリーからすべての
memberOf属性を取得し、fromで指定された CN を抽出し、それらをユーザーのRolesに追加します。
-
通常、
サポート対象の認証メカニズム
LDAP レルムは、以下の認証メカニズムを直接サポートします。
-
SASL:
PLAIN、DIGEST-*、およびSCRAM-* -
HTTP(REST):
BasicおよびDigest
4.1.2.1. LDAP レルムプリンシパルの書き換え リンクのコピーリンクがクリップボードにコピーされました!
GSSAPI、GS2-KRB5、Negotiate などの一部の SASL 認証メカニズムでは、LDAP サーバーの検索に使用する前に クリーンアップ する必要のあるユーザー名を提供します。
<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
xmlns="urn:infinispan:server:11.0">
<security-realms>
<security-realm name="default">
<ldap-realm name="ldap"
url="ldap://${org.infinispan.test.host.address}:10389"
principal="uid=admin,ou=People,dc=infinispan,dc=org"
credential="strongPassword">
<name-rewriter>
<regex-principal-transformer name="domain-remover"
pattern="(.*)@INFINISPAN\.ORG"
replacement="$1"/>
</name-rewriter>
<identity-mapping rdn-identifier="uid"
search-dn="ou=People,dc=infinispan,dc=org">
<attribute-mapping>
<attribute from="cn" to="Roles"
filter="(&(objectClass=groupOfNames)(member={1}))"
filter-dn="ou=Roles,dc=infinispan,dc=org" />
</attribute-mapping>
<user-password-mapper from="userPassword" />
</identity-mapping>
</ldap-realm>
</security-realm>
</security-realms>
</security>
- 1
- 正規表現を使用してプリンシパルからユーザー名を抽出するリライトを定義します。
4.1.3. トラストストアレルム リンクのコピーリンクがクリップボードにコピーされました!
トラストストアレルムは、Data Grid サーバーへの接続が許可されるすべてのクライアントのパブリック証明書が含まれるキーストアを使用します。
<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
xmlns="urn:infinispan:server:11.0">
<security-realms>
<security-realm name="default">
<server-identities>
<ssl>
<keystore path="server.p12"
relative-to="infinispan.server.config.path"
keystore-password="secret"
alias="server"/>
</ssl>
</server-identities>
<truststore-realm path="trust.p12"
relative-to="infinispan.server.config.path"
keystore-password="secret"/>
</security-realm>
</security-realms>
</security>
サポート対象の認証メカニズム
トラストストアレルムは、クライアント証明書の認証メカニズムと連携します。
-
SASL:
EXTERNAL -
HTTP (REST):
CLIENT_CERT
4.1.4. トークンレルム リンクのコピーリンクがクリップボードにコピーされました!
トークンレルムは外部サービスを使用してトークンを検証し、Red Hat SSO などの RFC-7662 (OAuth2 トークンイントロスペクション) と互換性のあるプロバイダーを必要とします。
<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
xmlns="urn:infinispan:server:11.0">
<security-realms>
<security-realm name="default">
<token-realm name="token"
auth-server-url="https://oauth-server/auth/">
<oauth2-introspection
introspection-url="https://oauth-server/auth/realms/infinispan/protocol/openid-connect/token/introspect"
client-id="infinispan-server"
client-secret="1fdca4ec-c416-47e0-867a-3d471af7050f"/>
</token-realm>
</security-realm>
</security-realms>
</security>
サポート対象の認証メカニズム
トークンレルムは、以下の認証メカニズムをサポートします。
-
SASL:
OAUTHBEARER -
HTTP (REST):
Bearer