4.2. Data Grid サーバーのアイデンティティーの作成
サーバーアイデンティティーはセキュリティーレルムで定義され、Data Grid サーバーがアイデンティティーをクライアントに証明できるようにします。
4.2.1. SSL アイデンティティーの設定
SSL ID は、証明書または証明書のチェーンのいずれかが含まれるキーストアを使用します。
セキュリティーレルムに SSL アイデンティティーが含まれる場合、Data Grid サーバーはこれらのセキュリティーレルムを使用するエンドポイントの暗号化を自動的に有効にします。
手順
Data Grid サーバーのキーストアを作成します。
重要Data Grid サーバーは JKS、JCEKS、PKCS12、BKS、BCFKS、および UBER のキーストア形式をサポートします。
実稼働環境では、サーバー証明書は Root または Intermediate CA のいずれかの信頼される認証局によって署名される必要があります。
-
キーストアを
$ISPN_HOME/server/conf
ディレクトリーに追加します。 -
server-identities
定義を Data Grid サーバーのセキュリティーレルムに追加します。 - パスワードおよびエイリアスとともにキーストアの名前を指定します。
4.2.1.1. SSL Identity 設定
以下の例では、Data Grid サーバーの SSL アイデンティティーを設定します。
<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> 1 <ssl> 2 <keystore path="server.p12" 3 relative-to="infinispan.server.config.path" 4 keystore-password="secret" 5 alias="server"/> 6 </ssl> </server-identities> </security-realm> </security-realms> </security>
4.2.1.2. キーストアの自動生成
Data Grid サーバーを設定し、起動時にキーストアを自動的に生成します。
自動生成されたキーストア:
- 実稼働環境では使用しないでください。
- 必要に応じて生成されます。たとえば、クライアントから最初の接続を取得する際などに生成されます。
- Hot Rod クライアントで直接使用可能な証明書が含まれます。
手順
-
サーバー設定に
keystore
要素のgenerate-self-signed-certificate-host
属性を含めます。 - サーバー証明書のホスト名を値として指定します。
生成されたキーストアを持つ SSL サーバーアイデンティティー
<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"
generate-self-signed-certificate-host="localhost"/> 1
</ssl>
</server-identities>
</security-realm>
</security-realms>
</security>
- 1
localhost
を使用してキーストアを生成します。
4.2.1.3. SSL プロトコルおよび暗号スイートの調整
特定のプロトコルと暗号を使用するように、Data Grid サーバーの SSL アイデンティティー経由で SSL エンジンを設定できます。
使用するプロトコル機能に正しい暗号を設定していることを確認する必要があります。たとえば、HTTP/2ALPN です。
手順
-
engine
要素を Data Grid サーバーの SSL アイデンティティーに追加します。 -
enabled-protocols
およびenabled-ciphersuites
属性を使用して SSL エンジンを設定します。
SSL エンジンの設定
<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"/> <engine enabled-protocols="TLSv1.2 TLSv1.1" 1 enabled-ciphersuites="SSL_RSA_WITH_AES_128_GCM_SHA256 2 SSL_RSA_WITH_AES_128_CBC_SHA256"/> </ssl> </server-identities> </security-realm> </security-realms> </security>
4.2.2. Kerberos アイデンティティーの設定
Kerberos アイデンティティーは、Kerberos パスワードから派生するサービスプリンシパル名と暗号化鍵が含まれる キータブ ファイルを使用します。
キータブ ファイルには、ユーザーとサービスのアカウントプリンシパルの両方を含めることができます。ただし、Data Grid サーバーは、サービスアカウントのプリンシパルのみを使用します。その結果、Data Grid サーバーはクライアントに ID を提供でき、これによりクライアントが Kerberos サーバーで認証できるようになります。
ほとんどの場合、Hot Rod および REST コネクターに一意のプリンシパルを作成します。たとえば、INFINISPAN.ORG ドメインに datagrid サーバーがあるとします。この場合、以下のサービスプリンシパルを作成する必要があります。
-
hotrod/datagrid@INFINISPAN.ORG
は Hot Rod サービスを特定します。 -
HTTP/datagrid@INFINISPAN.ORG
は REST サービスを識別します。
手順
Hot Rod および REST サービスのキータブファイルを作成します。
- Linux
$ ktutil ktutil: addent -password -p datagrid@INFINISPAN.ORG -k 1 -e aes256-cts Password for datagrid@INFINISPAN.ORG: [enter your password] ktutil: wkt http.keytab ktutil: quit
- Microsoft Windows
$ ktpass -princ HTTP/datagrid@INFINISPAN.ORG -pass * -mapuser INFINISPAN\USER_NAME $ ktab -k http.keytab -a HTTP/datagrid@INFINISPAN.ORG
-
キータブファイルを
$ISPN_HOME/server/conf
ディレクトリーにコピーします。 -
server-identities
定義を Data Grid サーバーのセキュリティーレルムに追加します。 - Hot Rod および REST コネクターにサービスプリンシパルを提供するキータブファイルの場所を指定します。
- Kerberos サービスプリンシパルに名前を付けます。
4.2.2.1. Kerberos ID 設定
以下の例では、Data Grid サーバーの Kerberos ID を設定します。
<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> 1 <kerberos keytab-path="hotrod.keytab" 2 principal="hotrod/datagrid@INFINISPAN.ORG" 3 required="true"/> 4 <kerberos keytab-path="http.keytab" 5 principal="HTTP/localhost@INFINISPAN.ORG" 6 required="true"/> </server-identities> </security-realm> </security-realms> </security>