第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"> 1
            <user-properties path="users.properties" 2
                             relative-to="infinispan.server.config.path" 3
                             plain-text="true"/> 4
            <group-properties path="groups.properties" 5
                              relative-to="infinispan.server.config.path"/>
         </properties-realm>
      </security-realm>
   </security-realms>
</security>

1
グループを Data Grid Server の承認用のロールとして定義します。
2
users.properties ファイルを指定します。
3
ファイルが $ISPN_HOME/server/conf ディレクトリーに相対されることを指定します。
4
users.properties のパスワードがプレーンテキスト形式であることを指定します。
5
groups.properties ファイルを指定します。

サポート対象の認証メカニズム

プロパティーレルムは、以下の認証メカニズムをサポートします。

  • SASL: PLAINDIGEST-*、および SCRAM-*
  • HTTP(REST): Basic および Digest

4.1.1.1. ユーザーの作成と変更

Data Grid Server では、デフォルトのプロパティーレルムに対してユーザーを認証する必要があります。Data Grid Server にアクセスする前に、少なくとも 1 人のユーザーとパスワードを作成して認証情報を追加する必要があります。ユーザーが属するセキュリティー承認グループを追加および変更することもできます。

手順

  1. $RHDG_HOME でターミナルを開きます。
  2. 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,writer
  • Microsoft 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" 1
                    url="ldap://my-ldap-server:10389" 2
                    principal="uid=admin,ou=People,dc=infinispan,dc=org" 3
                    credential="strongPassword"
                    connection-timeout="3000" read-timeout="30000" 4
                    connection-pooling="true" referral-mode="ignore"
                    page-size="30"
                    direct-verification="true"> 5
            <identity-mapping rdn-identifier="uid" 6
                              search-dn="ou=People,dc=infinispan,dc=org"> 7
               <attribute-mapping> 8
                  <attribute from="cn"
                             to="Roles"
                             filter="(&amp;(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: PLAINDIGEST-*、および SCRAM-*
  • HTTP(REST): Basic および Digest

4.1.2.1. LDAP レルムプリンシパルの書き換え

GSSAPIGS2-KRB5Negotiate などの一部の 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> 1
               <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="(&amp;(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" 1
                         relative-to="infinispan.server.config.path" 2
                         keystore-password="secret" 3
                         alias="server"/> 4
            </ssl>
         </server-identities>
         <truststore-realm path="trust.p12" 5
                           relative-to="infinispan.server.config.path"
                           keystore-password="secret"/>
      </security-realm>
   </security-realms>
</security>
1
サーバー証明書が含まれるキーストアを使用して SSL サーバーアイデンティティーを提供します。
2
ファイルが $ISPN_HOME/server/conf ディレクトリーに相対されることを指定します。
3
キーストアパスワードを指定します。
4
キーストアエイリアスを指定します。
5
すべてのクライアントのパブリック証明書が含まれるキーストアを提供します。

サポート対象の認証メカニズム

トラストストアレルムは、クライアント証明書の認証メカニズムと連携します。

  • 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/"> 1
            <oauth2-introspection
                    introspection-url="https://oauth-server/auth/realms/infinispan/protocol/openid-connect/token/introspect" 2
                    client-id="infinispan-server" 3
                    client-secret="1fdca4ec-c416-47e0-867a-3d471af7050f"/> 4
         </token-realm>
      </security-realm>
   </security-realms>
</security>
1
認証サーバーの URL を指定します。
2
トークンイントロスペクションエンドポイントの URL を指定します。
3
Data Grid サーバーのクライアント識別子に名前を付けます。
4
Data Grid サーバーのクライアントシークレットを指定します。

サポート対象の認証メカニズム

トークンレルムは、以下の認証メカニズムをサポートします。

  • SASL: OAUTHBEARER
  • HTTP (REST): Bearer
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.