26.2. ノードセキュリティーの設定 (ライブラリーモード)


ライブラリーモードでは、ノード認証は JGroups 設定で直接設定されます。JGroups を設定してノードがクラスターへの参加またはマージの際に相互に認証できるようにします。認証は SASL を使用し、SASL プロトコルを JGroups XML 設定に追加して有効にされます。
SASL は、認証ハンドシェイクに必要な特定の情報を取得するために、CallbackHandlers などの JAAS の概念に基づいています。ユーザーはクライアントとサーバーの両サイドに独自の CallbackHandlers を指定する必要があります。

重要

JAAS API はユーザー認証および承認の設定時にのみ利用でき、ノードのセキュリティー用には利用できません。

注記

この例では、CallbackHandler クラスは例示する目的でのみ使用されており、Red Hat JBoss Data Grid リリースには含まれていません。ユーザーは特定の LDAP 実装に適した CallbackHandler クラスを提供する必要があります。

例26.4 JGroups での SASL 認証のセットアップ

<SASL mech="DIGEST-MD5"
    client_name="node_user"
    client_password="node_password"
    server_callback_handler_class="org.example.infinispan.security.JGroupsSaslServerCallbackHandler"
    client_callback_handler_class="org.example.infinispan.security.JGroupsSaslClientCallbackHandler"
    sasl_props="com.sun.security.sasl.digest.realm=test_realm" />
Copy to Clipboard Toggle word wrap
上記の例は、DIGEST-MD5 メカニズムを使用します。各ノードは、クラスターへの参加時に使用するユーザーとパスワードを宣言する必要があります。

重要

認証を有効にするには、SASL プロトコルを GMS プロトコルの前に配置する必要があります。

26.2.1. 単純な承認コールバックハンドラー

複雑度の高い Kerberos や LDAP アプローチが不要な場合、SimpleAuthorizingCallbackHandler クラスを使用できます。これを有効にするには、以下の例にあるように server_callback_handlerclient_callback_handler の両方を org.jgroups.auth.sasl.SimpleAuthorizingCallbackHandler に設定します。
<SASL mech="DIGEST-MD5"
  client_name="node_user"
  client_password="node_password"
  server_callback_handler_class="org.jgroups.auth.sasl.SimpleAuthorizingCallbackHandler"
  client_callback_handler_class="org.jgroups.auth.sasl.SimpleAuthorizingCallbackHandler"
  sasl_props="com.sun.security.sasl.digest.realm=test_realm" />
Copy to Clipboard Toggle word wrap
SimpleAuthorizingCallbackHandler は、java.util.Properties のインスタンスにコンストラクターを渡すプログラムを用いた方法によるか、または -DpropertyName=propertyValue 表記を使用してコマンドラインに設定される標準的な Java システムプロパティーを使用して設定できます。以下のプロパティーを使用できます。
  • sasl.credentials.properties - principal=password として表されるプリンシパル/クレデンシャルのマッピングが含まれるプロパティーファイルへのパス。
  • sasl.local.principal - ローカルノードを識別するために使用されるプリンシパルの名前。これは sasl.credentials.properties ファイルに存在している必要があります。
  • sasl.roles.properties - (オプション) principal=role1,role2,role3 として表されるプリンシパル/ロールのマッピングが含まれるプロパティーファイルへのパス。
  • sasl.role - (オプション) プリンシパルがある場合にのみノードの参加を承認します (ある場合)。
  • sasl.realm - (オプション) SASL メカニズムが要求し、使用するレルムの名前。

26.2.2. ライブラリーモードのノード認証の設定 (DIGEST-MD5)

ノードの動作は、これがコーディネーターノードか他のノードかに応じて異なります。コーディネーターは SASL サーバーとして機能し、参加またはマージするノードは SASL クライアントとして機能します。ライブラリーモードで DIGEST-MD5 メカニズムを使用する場合、サーバーとクライアントのコールバックを指定し、サーバーとクライアントがクレデンシャルの取得方法を認識できるようにする必要があります。そのため、2 つの CallbackHandler が必要になります。
  • server_callback_handler_class はコーディネーターによって使用されます。
  • client_callback_handler_class は他のノードによって使用されます。
以下の例は、3 つの CallbackHandler を示しています。

例26.5 コールバックハンドラー

<SASL mech="DIGEST-MD5"
      client_name="node_name"
      client_password="node_password"
      client_callback_handler_class="${CLIENT_CALLBACK_HANDLER_IN_CLASSPATH}"
      server_callback_handler_class="${SERVER_CALLBACK_HANDLER_IN_CLASSPATH}"
      sasl_props="com.sun.security.sasl.digest.realm=test_realm"
/>
Copy to Clipboard Toggle word wrap
JGroups は、すべてのノードがクライアントの動作によってコーディネーターまたはクライアントとして機能できるように設計されています。そのため、現在のコーディネーターノードがダウンする場合、後続チェーンの次のノードがコーディネーターになります。この動作のために、サーバーとクライアントのコールバックハンドラーはどちらも Red Hat JBoss Data Grid 実装の SASL 内で指定される必要があります。

26.2.3. ライブラリーノードのノード認証の設定 (GSSAPI)

GSSAPI メカニズムを使用してライブラリーモードでノードの認証を実行する際に、login_module_namecallback の代わりに指定する必要があります。
このログインモジュールは、サーバーに対してクライアントを認証するために使用される、有効な Kerberos チケットを取得するために使用されます。また、クライアントプリンシパルも jgroups/$server_name@REALM として構成されるため、server_name を指定する必要もあります。

例26.6 コーディネーターノードでのログインモジュールおよびサーバーの指定

<SASL mech="GSSAPI"
         server_name="node0/clustered"
         login_module_name="krb-node0"
         server_callback_handler_class="org.infinispan.test.integration.security.utils.SaslPropCallbackHandler" />
Copy to Clipboard Toggle word wrap
コーディネーターノードでは、server_callback_handler_class をノードの承認用に指定する必要があります。これにより、認証された参加ノードがクラスターに参加するパーミッションを持つかどうかが決まります。

注記

サーバーのプリンシパルは常に jgroups/server_name として構成されるため、Kerberos のサーバープリンシパルも jgroups/server_name である必要があります。たとえば、Kerberos のサーバー名が jgroups/node1/mycache の場合、サーバー名は node1/mycache である必要があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat