RSA トークン認証メカニズム
柔軟な管理トポロジーのセキュリティー環境の単純化には Rivest Shamir Adleman (RSA) 認証メカニズムが使用されます。このメカニズムは、新規のサーバーを柔軟な管理トポロジーに安全かつ簡単に登録する機能をサポートしています。柔軟な管理トポロジーを使用すると、アプリケーションを管理し、製品の保守を実行し、構成を変更し、アプリケーション・サーバー・ランタイムを制御するジョブ・マネージャーを使用して、ローカルであるかリモートであるかに関係なく、管理ジョブをサブミットし、管理することができます。RSA 認証メカニズムは、管理コネクターやファイル転送要求などのサーバー間の管理認証にのみ使用されます。 RSA 認証メカニズムは、アプリケーションによる LTPA または Kerboros の使用を置き換えるものではありません。
認証 は、クライアントが特定のコンテキストにおいて、 主張する本人または物であるかという、本人性を確立するプロセスです。 クライアントは、エンド・ユーザー、マシン、アプリケーションのいずれかです。 一般的に、WebSphere® Application Server の認証メカニズムは、ユーザー・レジストリー と密接に関係しています。 ユーザー・レジストリーはユーザーおよびグループのアカウントのリポジトリーで、 認証の実行時に認証メカニズムによって使用されます。 認証メカニズムは、 正常に認証されたクライアント・ユーザーの内部製品表記である信任状 の作成を担当します。 すべてのクレデンシャルが同等に作成されるわけではありません。 クレデンシャルの能力は、構成される認証メカニズムで決まります。
認証プロセス
RSA トークン認証メカニズムにより、RSA ルート署名者証明書 (15 年の存続期間) が 2 つの管理プロセス間で交換された後は、それぞれ異なるプロファイル間で管理要求のためにセキュリティー情報を同期する必要がなくなります。 RSA 個人証明書 (1 年の存続期間) は、RSA トークンで暗号操作を実行するために使用し、長期間有効な RSA ルートにより検証できます。RSA トークン認証は LTPA とは異なります。LTPA ではキーが共有され、一方が変更されると、その他すべても変更が必要になります。 RSA トークン認証は PKI インフラストラクチャーに基づいているため、大規模なトポロジー内でこのテクノロジーのスケーラビリティーおよび管理容易性のメリットを得ることができます。
RSA トークンには、LTPA より高度なセキュリティー・フィーチャーがあります。これには、一回限りの使用トークンとする nonce 値、短い有効期限 (一回限りの使用トークンにより)、およびターゲット RSA トラストストア内の証明書に基づいて確立されるトラストが含まれます。
- バージョン
- nonce
- 有効期限
- レルム
- プリンシパル
- アクセス ID
- ロール (現在は使用されません)
- グループ
- カスタム・データ
import com.ibm.websphere.security.cred.WSCredential;
java.util.Properties props = new java.util.Properties();
props.setProperty("myAttribute", "myValue");
WSCredential.put ("customRSAProperties", props);
ターゲット・プロセスでサブジェクトが作成されると、以下のようにこれらの属性にアクセスできます。
java.util.Properties props = (java.util.Properties) WSCredential.get("customRSAProperties");
このデータは、ターゲット側でハッシュ・テーブルに格納され、ハッシュ・テーブルは Java™ Authentication and Authorization Service (JAAS) ログインで使用されます。これにより、RSA トークンからの同じ属性を含むサブジェクトをターゲットで取得します。 RSA トークンからの同じ属性を含むターゲットで、ターゲットが使用する同じレルムからではないサブジェクトをターゲット側で使用できます。 この認証を正常に行うには、ID がトラステッド・サーバー ID でない限り、管理許可テーブル内でレルム相互マッピングが必要です。
このセクション内で後に示す図は、RSA トークン認証メカニズムの概要であり、クライアントとしてのサーバーからターゲット・サーバーに要求が送信される場合に行われるプロセスを示しています。 クライアントとしてのサーバーには、RSA トークン作成のための入力として使用される管理サブジェクトがスレッド上にあります。必要なその他の情報としては、ターゲット・サーバーの RSA パブリック証明書があります。 実際の要求を送信する前に、ターゲット・プロセスに対して「ブートストラップ」MBean 要求を行うことで、この証明書を取得する必要があります。 ターゲット・ブートストラップ要求は、ターゲット・プロセスから公開証明書を取得します。 RSA トークンを作成する場合、ターゲットの公開証明書を取得する主な目的は、秘密鍵を暗号化することです。 ターゲットのみが、ユーザー・データの暗号化に使用されている秘密鍵を暗号化解除できます。

クライアントの秘密鍵は、秘密鍵およびユーザー・データの両方の署名に使用されます。 クライアントの公開鍵は RSA トークンに埋め込まれ、ターゲットで検証されます。 ターゲットで CertPath API を呼び出すときにクライアントの公開鍵が信頼されていない場合、RSA トークン検証を続行することはできません。クライアントの公開鍵が信頼されていれば、秘密鍵およびユーザー・データ署名の検証に使用できます。
基本的な目標は、必要な情報を安全に伝搬することで、クライアント・サブジェクトをターゲットでのサブジェクトに変換することです。 サブジェクトがターゲットで生成されると、RSA 認証メカニズム・プロセスが完了します。