Java 認証・承認サービス向けのシステム・ログイン構成エントリーの設定このページを使用して、Java Authentication Authorization Service (JAAS) システム・ログイン構成のリストを指定します。
この管理コンソール・ページを表示するには、「セキュリティー」> 「JAAS 構成」>「System logins」の順にクリックします。
WebSphere Application Server セキュリティー・ランタイムの認証用の追加ログイン・モジュールの定義を開始する前に、『Java 認証・承認サービス』をご覧ください。以下のシステム・ログイン・モジュールは除去しないようにしてください。
これら 3 つのログイン構成は、これらの構成内のログイン・モジュールによって処理される、以下のコールバック情報で渡すことができます。これらのコールバックは、同時には渡されません。ただし、これらのコールバックの組み合わせにより、WebSphere Application Server がユーザーを認証する仕方が決定されます。
| コールバック | 役割 |
|---|---|
| callbacks[0] = new javax.security.auth.callback.NameCallback("Username: "); | ログイン時に指定されたユーザー名を収集します。この情報は、以下のタイプのログイン用のユーザー名です。
|
| callbacks[1] = new javax.security.auth.callback.PasswordCallback("Password: ", false); | ログイン時に指定されたパスワードを収集します。 |
| callbacks[2] = new com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl("Credential Token: "); | ログイン時の Lightweight Third Party Authentication (LTPA) トークン (または他のトークン・タイプ) を収集します。一般に、ユーザー名とパスワードが存在しないときに、この情報があります。 |
| callbacks[3] = new com.ibm.wsspi.security.auth.callback.WSTokenHolderCallback("Authz Token List: "); | WSOpaqueTokenHelper への呼び出しから戻された TokenHolder オブジェクトの ArrayList を収集します。入力データとして Common Secure Interoperability バージョン 2 (CSIv2) 許可トークンを使用した createTokenHolderListFromOpaqueToken () メソッド。 |
システム・ログイン構成では、WebSphere Application Server は、コールバックによって収集した情報を基にしてユーザーを認証します。ただし、カスタム・ログイン・モジュールは、これらのコールバックを操作する必要はありません。以下のリストで、これらのコールバックの標準的組み合わせを説明します。
このコールバックは、CSIv2 ID アサーション、Web、CSIv2 X509 証明書ログイン、旧式のトラスト・アソシエーション・インターセプター・ログインなどで、使用されます。 CSIv2 X.509 証明書ログインでは、WebSphere Application Server は証明書をユーザー名にマップします。このコールバックは、ユーザー名だけを使用してトラストを確立するログイン・タイプで使用されます。
このコールバックの組み合わせは、基本認証ログインの場合に一般的に使用されます。ほとんどのユーザー認証は、これら 2 つのコールバックを使用して行われます。
このコールバックは一般に、ダウンストリーム・サーバーが Lightweight Third Party Authentication (LTPA) トークンを検証するために使用されます。 WebSphere Application Server から要求が発信された場合は常に、純粋なクライアントではなく LTPA トークンが一般にターゲット・サーバーに流れます。シングル・サインオン (SSO) の場合、LTPA トークンが Cookie で受信され、そのトークンがログインに使用されます。カスタム・ログイン・モジュールで LTPA トークンからユーザー名を抽出する必要がある場合、モジュールは、com.ibm.wsspi.security.token.WSSecurityPropagationHelper.validateLTPAToken(byte[]) メソッドを使用して、トークンから uniqueID を取り出すことができます。uniqueID の抽出後に、com.ibm.wsspi.security.token.WSSecurityPropagationHelper.getUserFromUniqueID(uniqueID) メソッドを使用して、ユーザー名を取得します。
このコールバックは、いくつかの伝搬された属性がサーバーに届いたことを示します。伝搬された属性では、さらに、以下のいずれかの認証メソッドのいずれかが必要となります。
それらの属性が純粋クライアントからの Subject に追加された場合、NameCallback および PasswordCallback コールバックはその情報を認証し、トークン・ホルダーに直列化されているオブジェクトが認証済みの Subject に追加されます。
CSIv2 ID アサーションと伝搬が両方とも使用可能になっている場合、WebSphere Application Server は NameCallback およびトークン・ホルダー (伝搬されたすべての属性を含む) を使用して、ほとんどのオブジェクトを非直列化します。 WebSphere Application Server は NameCallback だけを使用します。これは、信頼された CSIv2 サーバーのリストでユーザーが指定したサーバーによってトラストが確立されるためです。トラステッド・サーバーを指定するには、 「セキュリティー」>「認証プロトコル」>「CSIv2 インバウンド認証」の順にクリックします。
カスタマイズした直列化を使用する場合は、カスタム・ログイン・モジュールでのみ処理する必要があります。詳細については、『セキュリティー属性の伝搬』を参照してください。
前に定義したコールバックのほかに、WEB_INBOUND ログイン構成にのみ以下の追加のコールバックを含むことができます。
| コールバック | 役割 |
|---|---|
| callbacks[4] = new com.ibm.websphere.security.auth.callback.WSServletRequestCallback("HttpServletRequest: "); | HTTP サーブレット要求オブジェクトを収集します (存在する場合)。このコールバックにより、ログイン・モジュールは HTTP 要求から、ログイン時に使用する情報を抽出することができます。 |
| callbacks[5] = new com.ibm.websphere.security.auth.callback.WSServletResponseCallback("HttpServletResponse: "); | HTTP サーブレット応答オブジェクトを収集します (存在する場合)。このコールバックにより、ログイン・モジュールは、ログインの結果として HTTP 応答に情報を追加できます。例えば、ログイン・モジュールは応答に SingleSignonCookie を追加する可能性があります。 |
| callbacks[6] = new com.ibm.websphere.security.auth.callback.WSAppContextCallback("ApplicationContextCallback: "); | ログイン時に使用された Web アプリケーション・コンテキストを収集します。このコールバックは、アプリケーション名とリダイレクト Web アドレスを含む HashMap から構成されます (存在する場合)。 |
以下のログイン・モジュールは、RMI_INBOUND、WEB_INBOUND、および DEFAULT システム・ログイン構成のために事前定義されています。これらのログイン・モジュールの前、間、または後に、カスタム・ログイン・モジュールを追加することはできますが、これらの事前定義のログイン・モジュールを除去することはできません。
このログイン・モジュールは、属性の伝搬が使用可能または使用不可のときに、基本ログインを実行します。基本ログインでは、ユーザー ID およびパスワード、LTPA トークン、またはトラスト・アソシエーション・インターセプター (TAI) および証明書識別名 (DN) などの標準認証情報を使用します。以下のいずれかのシナリオが当てはまる場合、このログイン・モジュールは使用されず、com.ibm.ws.security.server.lm.wsMapInboundLoginModule によって基本ログインが実行されます。
このログイン・モジュールは、以下のいずれかの条件が当てはまる場合に、標準認証情報を使用して基本ログインを実行します。
java.util.Hashtable オブジェクトが存在する場合、このログイン・モジュールは、オブジェクト属性を有効な Subject にマップします。 WSTokenHolderCallback が存在する場合、このログイン・モジュールは、バイト・トークン・オブジェクトを非直列化し、直列化 Subject コンテンツを再生成します。 java.util.Hashtable は、他のすべての形式のログインよりも優先されます。そのため、WebSphere Application Server によって以前に伝搬されたものが重複または指定変更されないように注意してください。
これらのプロパティーは、CSIv2 認証パネルで設定されます。このパネルにアクセスするには、「セキュリティー」>「認証プロトコル」>「CSIv2 アウトバウンド認証」の順にクリックします。 com.ibm.CSI.rmiOutboundLoginEnabled プロパティーを設定するために、「Custom outbound mapping」を選択します。 com.ibm.CSIOutboundPropagationEnabled プロパティーを設定するために、「Security attribute propagation」を選択します。
このログイン構成により、ターゲット・サーバーとそのセキュリティー・ドメインのセキュリティー機能が決定されます。たとえば、WebSphere Application Server バージョン 5.1.1 がバージョン 5.x のアプリケーション・サーバーと通信する場合、バージョン 5.1.1 アプリケーション・サーバーは、LTPA トークンを使用して、認証情報をバージョン 5.x アプリケーション・サーバーに送信します。ただし、WebSphere Application Server バージョン 5.1.1 がバージョン 5.1.x アプリケーション・サーバーと通信する場合は、送信側サーバーと受信側サーバーの両方で伝搬が使用可能になっていれば、認証および許可情報は受信側アプリケーション・サーバーに送信されます。
RMI_OUTBOUND ログイン構成では、以下のコールバックが使用可能です。このコールバックによって戻された com.ibm.wsspi.security.csiv2.CSIv2PerformPolicy オブジェクトを使用して、この特定アウトバウンド要求のセキュリティー・ポリシーを照会することができます。これを照会することは、ターゲット・レルムが、現行レルムと異なるかどうか、および WebSphere Application Server がそのレルムをマップする必要があるかどうかを判別するために役立ちます。詳しくは、『異なるターゲット・レルムへのアウトバウンド・マッピングの構成』を参照してください。
| コールバック | 役割 |
|---|---|
| callbacks[0] = new WSProtocolPolicyCallback("Protocol Policy Callback: "); |
このアウトバウンド呼び出しでのログイン・モジュール用のプロトコル特有のポリシー情報を提供します。この情報は、ターゲット・レルム、ターゲット・セキュリティー要件、および結合セキュリティー要件を含む、セキュリティー・レベルの判別に使用されます。 次のメソッドにより、この特定ログイン・モジュールから CSIv2PerformPolicy を取得します。 csiv2PerformPolicy = (CSIv2PerformPolicy) ((WSProtocolPolicyCallback)callbacks[0]).getProtocolPolicy(); RMI 以外の別のプロトコルでは、異なるタイプのポリシー・オブジェクトが使用される可能性があります。 |
RMI_OUTBOUND ログイン構成では、以下のログイン・モジュールが事前定義されています。これらのログイン・モジュールの前、間、または後に、カスタム・ログイン・モジュールを追加することはできますが、これらの事前定義のログイン・モジュールを除去することはできません。
このログイン・モジュールの前にカスタム・ログイン・モジュールを使用して、証明書マッピングを実行することができます。ただし、このログイン・モジュールを使用して、ログイン・フェーズ時に渡された Subject のコンテンツを変更することをお勧めします。この推奨事項に従った場合、このログイン・モジュールの後に処理されたログイン・モジュールが、新規の Subject コンテンツを操作します。
Simple WebSphere Authentication Mechanism (SWAM) では、転送可能な証明書はサポートされません。認証方式が SWAM であるとき、WebSphere Application Server は、サーバーからサーバーへ要求を送信できません。この場合は、LTPA を使用する必要があります。
このログイン構成は、WebSphere Application Server バージョン 5.1 以前のバージョンで使用されます。
com.ibm.ws.security.web.AuthenLoginModule ログイン・モジュールは、LTPA ログイン構成で事前定義されています。 LTPA_WEB ログイン構成でこのモジュールの前または後に、カスタム・ログイン・モジュールを追加することができます。
LTPA_WEB ログイン構成は、コールバック・ハンドラーを使用して渡された HttpServletRequest オブジェクト、HttpServletResponse オブジェクト、および Web アプリケーション名を処理できます。詳しくは、この資料の『サーバー・サイドの Java 認証・承認サービスの認証およびログイン構成のカスタマイズ』を参照してください。
このログイン構成は、WebSphere Application Server バージョン 5.1 以前のバージョンで使用されます。
com.ibm.ws.security.server.lm.ltpaLoginModule ログイン・モジュールは、LTPA ログイン構成で事前定義されています。LTPA ログイン構成でこのモジュールの前または後に、カスタム・ログイン・モジュールを追加することができます。詳しくは、この資料の『サーバー・サイドの Java 認証・承認サービスの認証およびログイン構成のカスタマイズ』を参照してください。