アプリケーション・クライアントの認証は、クライアント/サーバー・セキュリティーおよび資格情報認証の使用可能化と、オーセンティケーターおよびシステム資格情報生成プログラムの構成からなります。
ObjectGrid による認証を正常に行うには、クライアントとサーバーの両方でセキュリティーを使用可能にする必要があります。
クライアント・セキュリティーの使用可能化
WebSphere® eXtreme Scale は、クライアント・プロパティー・サンプル・ファイル (sampleClient.properties ファイル) を WebSphere Application Server インストール済み環境では was_root/optionalLibraries/ObjectGrid/properties ディレクトリー内、混合サーバー・インストール済み環境では /ObjectGrid/properties ディレクトリー内に提供しています。 このテンプレート・ファイルを、適切な値で変更することができます。objectgridClient.properties ファイル内の securityEnabled プロパティーを true に設定してください。securityEnabled プロパティーは、セキュリティーが有効かどうかを示します。クライアントがサーバーに接続されている場合、クライアント・サイドとサーバー・サイドのこの値は、両方とも true か、両方とも false である必要があります。例えば、接続されているサーバーのセキュリティーが有効な場合、クライアントがサーバーに接続するには、このプロパティー値をクライアント・サイドで true に設定する必要があります。
com.ibm.websphere.objectgrid.security.config.ClientSecurityConfiguration インターフェースは、security.ogclient.props ファイルを表しています。com.ibm.websphere.objectgrid.security.config.ClientSecurityConfigurationFactory public API を使用して、このインターフェースのインスタンスをデフォルト値で作成することができます。または ObjectGrid クライアント・セキュリティー・プロパティー・ファイルを渡して、インスタンスを作成することもできます。 security.ogclient.props ファイルには、その他のプロパティーが含まれています。詳しくは、ClientSecurityConfiguration API 資料および ClientSecurityConfigurationFactory API 資料を参照してください。
サーバー・セキュリティーの使用可能化
サーバー・サイドでセキュリティーを使用可能にするには、security.xml ファイル内の securityEnabled プロパティーを true に設定します。セキュリティー記述子 XML ファイルを使用してデータ・グリッドのセキュリティー構成を指定し、グリッド全体のセキュリティー構成を非セキュリティー構成から分離します。
eXtreme Scale クライアントが CredentialGenerator オブジェクトを使用して Credential オブジェクトを取得すると、この Credential オブジェクトがクライアント要求とともに eXtreme Scale サーバーに送信されます。サーバーは、要求の処理前に Credential オブジェクトの認証を行います。 Credential オブジェクトが正常に認証されると、この Credential オブジェクトを表す Subject オブジェクトが戻されます。その後、この Subject オブジェクトは要求の認証に使用されます。
クライアントおよびサーバーのプロパティー・ファイルで credentialAuthentication プロパティーを設定して、資格情報認証を使用可能にします。詳しくは、クライアント・プロパティー・ファイルおよびサーバー・プロパティー・ファイルを参照してください。
以下の 2 つの表に、さまざまな設定で、いずれの認証メカニズムが使用されるかを示します。
クライアント資格情報認証 | サーバー資格情報認証 | 結果 |
---|---|---|
いいえ | 常になし | 使用不可 |
いいえ | サポートされる | 使用不可 |
いいえ | 必須 | Error case |
サポートされる | 常になし | 使用不可 |
サポートされる | サポートされる | 使用可能 |
サポートされる | 必須 | 使用可能 |
必須 | 常になし | Error case |
必須 | サポートされる | 使用可能 |
必須 | 必須 | 使用可能 |
eXtreme Scale サーバーは、Authenticator プラグインを使用して、Credential オブジェクトの認証を行います。Authenticator インターフェースの実装では、Credential オブジェクトを取得し、Lightweight Directory Access Protocol (LDAP) サーバーなどのユーザー・レジストリーに対してこのオブジェクトを認証します。eXtreme Scale は、レジストリー構成を提供しません。 ユーザー・レジストリーへの接続およびユーザー・レジストリーに対する認証は、 このプラグインで実装する必要があります。
例えば、1 つの Authenticator 実装では、資格情報からユーザー ID とパスワードが抽出され、このユーザー ID とパスワードを使用して、LDAP サーバーに対する接続と検証が行われます。認証の結果として、Subject オブジェクトが作成されます。この実装では、Java 認証・承認サービス (JAAS) ログイン・モジュールを使用できます。認証の結果として、Subject オブジェクトが戻されます。
<?xml version="1.0" encoding="UTF-8"?>
<securityConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config/security ../objectGridSecurity.xsd"
xmlns="http://ibm.com/ws/objectgrid/config/security">
<security securityEnabled="true"
loginSessionExpirationTime="300">
<authenticator className ="com.ibm.websphere.objectgrid.security.plugins.builtins.KeyStoreLoginAuthenticator">
</authenticator>
</security>
</securityConfig>
セキュア・サーバーを開始して、セキュリティー XML ファイルを設定する場合は、-clusterSecurityFile オプションを使用します。セキュア・サーバーを開始する方法の例については、Java SE セキュリティー・チュートリアル - ステップ 2を参照してください。
<systemCredentialGenerator className ="com.ibm.websphere.objectgrid.security.plugins.
builtins.UserPasswordCredentialGenerator">
<property name="properties" type="java.lang.String" value="manager manager1"
description="username password" />
</systemCredentialGenerator>
デモンストレーション用のため、ユーザー名およびパスワードは平文で保管されます。実稼働環境では、ユーザー名
およびパスワードは平文で保管しないでください。WebSphere eXtreme Scale が 提供するデフォルトのシステム資格情報生成プログラムは、サーバー資格情報を使用します。 システム資格情報生成プログラムを明示的に指定しないと、 このデフォルトのシステム資格情報生成プログラムが使用されます。