セキュリティー API

WebSphere® eXtreme Scale は、オープン・セキュリティー・アーキテクチャーを採用しています。認証、許可、およびトランスポート・セキュリティーの基本的なセキュリティー・フレームワークを提供し、さらに セキュリティー・インフラストラクチャーを完全なものにするためにユーザーにプラグインの実装を求めています。

次の図は、eXtreme Scale サーバーにおけるクライアントの認証および許可の基本的フローを示しています。

図 1. クライアントの認証および許可のフロー
1. クライアントが資格情報生成プログラムに資格情報を要求 2. 生成された資格情報をサーバー・ランタイムに送信
3. 資格情報をサーバー・ランタイムに送信
4. 資格情報をオーセンティケーターに送信
5. 資格情報をユーザー権限に送信 6. 認証をサーバー・ランタイムに送信
7. ランタイムは、ObjectGrid 許可にサブジェクトとアクセス権を送信
8. ObjectGrid 許可がサブジェクトとアクセス権を許可サービスに送信

認証フローと許可フローは、以下のようになります。

認証フロー

  1. 認証フローは、eXtreme Scale クライアントの資格情報取得で始まります。 これは、com.ibm.websphere.objectgrid.security.plugins.CredentialGenerator プラグインにより実行されます。
  2. CredentialGenerator オブジェクトは、有効なクライアント資格情報 (例えば、ユーザー ID とパスワードのペア、Kerberos チケットなど) の生成方法を認識しています。 生成されたこの資格情報は、クライアントに送り戻されます。
  3. クライアントが CredentialGenerator オブジェクトを使用して Credential オブジェクトを取得すると、この Credential オブジェクトは、eXtreme Scale サーバーに eXtreme Scale 要求と共に送信されます。
  4. eXtreme Scale サーバーは、eXtreme Scale 要求を処理する前に、 Credential オブジェクトの認証を行います。 その後、サーバーは Authenticator プラグインを使用して Credential オブジェクトを認証します。
  5. Authenticator プラグインは、ユーザー・レジストリーへのインターフェース (例えば、Lightweight Directory Access Protocol (LDAP) サーバーまたはオペレーティング・システムの ユーザー・レジストリーなど) になります。Authenticator は、ユーザー・レジストリーを参考にして、認証の決定をします。
  6. 正常に認証されると、このクライアントを表す Subject オブジェクトが戻されます。

    許可フロー

    WebSphere eXtreme Scale は、アクセス権ベースの許可メカニズムを採用し、 各種の許可クラスによって表されるさまざまな許可カテゴリーがあります。 例えば、com.ibm.websphere.objectgrid.security.MapPermission オブジェクトは、ObjectMap のデータ・エントリーの読み取り、書き込み、挿入、無効化、および除去の許可を 表します。 WebSphere eXtreme Scale は、Java 認証および承認サービス (JAAS) 許可をそのままサポートするため、許可ポリシーを指定すれば JAAS を使用して許可を処理できます。

    また、eXtreme Scale は、カスタム許可もサポートします。 カスタム許可は、プラグイン com.ibm.websphere.objectgrid.security.plugins.ObjectGridAuthorization によって組み込まれます。 カスタム許可のフローは以下のとおりです。

  7. サーバー・ランタイムが Subject オブジェクトと必要なアクセス権を許可プラグインに送信します。
  8. 許可プラグインは、許可サービスを参照して、許可決定を下します。 この Subject オブジェクトに対してアクセス権が許可される場合、 値 true が戻されて、そうでない場合は false が戻されます。
  9. この true または false の許可決定がサーバー・ランタイムに戻されます。

セキュリティーの実装

このセクションのトピックでは、 セキュアな WebSphere eXtreme Scale デプロイメントのプログラム化とプラグイン実装のプログラム化方法について説明します。 このセクションは、さまざまなセキュリティー機能を基にして編成されています。 各サブトピックで、関係するプラグインとそのプラグインの実装方法を説明します。 認証のセクションでは、WebSphere eXtreme Scale のセキュアなデプロイメント環境への接続方法を示します。

クライアント認証: クライアント認証のトピックでは、WebSphere eXtreme Scale クライアントがどのように資格情報を取得し、サーバーがどのようにクライアントを認証するかについて説明します。 また、WebSphere eXtreme Scale クライアントが WebSphere eXtreme Scale のセキュアなサーバーに接続する方法についても説明します。

許可: 許可のトピックでは、JAAS 許可の他にカスタム許可を行うためにどのように ObjectGridAuthorization を使用するかを説明します。

グリッド認証: データ・グリッド認証のトピックでは、サーバー秘密のセキュア・トランスポートのためにどのように SecureTokenManager を使用できるかについて解説します。

Java Management Extensions (JMX) プログラミング: WebSphere eXtreme Scale サーバーを保護する際、JMX クライアントが、サーバーに JMX 資格情報を送信する必要がある場合があります。