管理コンソールを使用した SPNEGO Web 認証の使用可能化および構成

管理コンソールを使用することにより、アプリケーション・サーバーの Web オーセンティケーターとして Simple and Protected GSS-API Negotiation (SPNEGO) を使用可能化および構成することができます。

始める前に

注: 管理コンソールを使用して SPNEGO Web 認証を使用可能化する前に、 SPNEGO Web 認証を使用した HTTP 要求のシングル・サインオンの作成に記述されているステップを完了している必要があります。

HTTP 要求を処理するすべての WebSphere Application Server の場合、Kerberos サービス・プリンシパル名、HTTP/<完全修飾ホスト名>@KerberosRealm を含む Kerberos キータブ・ファイル (krb5.keytab) が存在している必要があります。

手順

  1. 管理コンソールで、「セキュリティー」>「グローバル・セキュリティー」とクリックします。
  2. 「認証」の下で、「Web および SIP セキュリティー (Web and SIP Security)」を展開して、 「SPNEGO Web 認証 (SPNEGO Web authentication)」をクリックします。
    注: SPNEGO Web 認証を使用可能にする前に、フィルターを構成する必要があります。
  3. オプション: SPNEGO 変更がアプリケーション・サーバーを再始動しないで行われる場合に、 SPNEGO ランタイムの更新を動的に行うには、「SPNEGO の動的更新 (Dynamically update SPNEGO)」オプションを選択します。
  4. SPNEGO の使用可能化」を選択して WebSphere Application Server の Web オーセンティケーターとして Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) を使用可能にします。SPNEGO の使用可能化」を選択しない場合、 「SPNEGO の動的更新 (Dynamically update SPNEGO)」および「アプリケーション認証メカニズムへ戻るのを許可」オプションは使用不可になっています。
  5. オプション: アプリケーション認証メカニズムへ戻るのを許可」を選択している場合に、SPNEGO 認証が失敗すると、アプリケーション・アセンブリー時に定義された認証メカニズムが使用されます。
  6. Kerberos 構成ファイル名を絶対パスで入力するか、または「参照」をクリックして場所指定します。 Kerberos クライアント構成ファイル krb5.conf または krb5.ini には、対象となるレルム用の鍵配布センター (KDC) の ロケーションを含む、Kerberos の構成情報が入っています。 krb5.conf ファイルは、Windows オペレーティング・システム (krb5.ini ファイルを使用する) 以外のすべてのプラットフォームで使用されるデフォルト名です。
  7. オプション: Kerberos キータブ・ファイル名を絶対パスで入力するか、または「参照」をクリックして場所指定します。 Kerberos キータブ・ファイルには 1 つ以上の Kerberos サービス・プリンシパル名およびキーがあります。デフォルトのキータブ・ファイルは krb5.keytab です。ホストでは、Kerberos キータブ・ファイルをローカル・ディスクに保管し、許可ユーザーのみが読み取れるようにして、このファイルを保護することが重要です。詳しくは、Kerberos サービス・プリンシパル名とキータブ・ファイルの作成を参照してください。このパラメーターを指定しない場合は、Kerberos 構成ファイルにあるデフォルトの Kerberos レルム名が使用されます。
  8. SPNEGO フィルターから、既存のホスト名を選択して編集するか、「新規」を選択して新たに作成します。 規則により、Kerberos サービス・プリンシパル名 (SPN) は、プライマリー、インスタンス、 および Kerberos レルム名の 3 つの部分に分割されています。SPNEGO サービス名は HTTP でなければなりません。 したがって、SPNEGO Web の Kerberos サービス・プリンシパル名は HTTP/<完全修飾ホスト名>@KERBEROS_REALM です。 SPN は、着信 SPNEGO トークンの妥当性検査と、リクエスターとのセキュリティー・コンテキストの確立に使用されます。
    1. 必須: 次のページで、「ホスト名」フィールドに完全修飾ホスト名を入力します。 ホスト名は、Kerberos セキュア・コンテキストを確立するために SPNEGO が使用する Kerberos サービス・プリンシパル名 (SPN) HTTP/<完全修飾ホスト名> の一部です。 フィルター・エントリーごとに、 構成コードで、Kerberos サービス・プリンシパルを HTTP/<完全修飾ホスト名>@KERBEROS_REALM (次のステップで指定する Kerberos レルム) として形成します。Kerberos キータブには、 この Kerberos サービス・プリンシパルとそのキーが含まれている必要があります。
    2. オプション: Kerberos レルム名」フィールドで、Kerberos レルム名を入力します。 ほとんどの場合、レルムはドメイン・ネームを大文字にしたものです。例えば、 ドメイン名が test.austin.ibm.com のマシンの Kerberos レルム名は、通常は AUSTIN.IBM.COM です。 このパラメーターを指定しない場合は、Kerberos 構成ファイルにあるデフォルトの Kerberos レルム名が使用されます。
    3. フィルター基準」フィールドにフィルター基準を入力します。 フィルター基準は、SPNEGO が使用する Java™ クラスによって使用されるフィルター・パラメーターです。 使用される実装クラスにとって意味のある任意の基準を定義します。

      com.ibm.ws.security.spnego.HTTPHeaderFilter デフォルト実装クラスはこのプロパティーを使用して、HTTP 要求が SPNEGO 認証に対して選択されているかどうかを判別するために、HTTP 要求 ヘッダーに対して突き合わせる条件を表す選択ルールのリストを定義します。

      各条件は、セミコロンで区切られたキーと値のペアで指定されます。 これらの条件は、指定プロパティーでの表示順に左から右へ向かって評価されます。 すべての条件に適合する場合、その HTTP 要求が SPNEGO 認証用に選択されます。

      キーと値のペアのキーと値は、どの条件を検査するかを定義する演算子によって区切られます。 このキーは、要求から抽出する HTTP 要求ヘッダーを識別し、この値が演算子の指定に従ってキー値に指定されている値と比較されます。 このキーによって識別されたヘッダーが HTTP 要求に存在しない場合、条件は不適合と見なされます。

      すべての標準 HTTP 要求ヘッダーを、キーと値のペアのキーとして使用できます。 有効なヘッダーのリストについては、HTTP 仕様を参照してください。 また、標準 HTTP 要求ヘッダーでは使用できない 2 つのキーが、要求から情報を抽出するために定義されています。これは、選択基準としても便利です。 remote-address キーは、HTTP 要求を送信したクライアント・アプリケーションのリモート TCP/IP アドレスを取得するための疑似ヘッダーとして使用されます。 request-URL キーは、クライアント・アプリケーションが要求を行うために使用する URL を取得するための疑似ヘッダーとして使用されます。 インターセプターは、javax.servlet.http.HttpServletRequest インターフェースの getRequestURL オペレーションの結果を使用して、Web アドレスを構成します。 照会ストリングが存在する場合は、同じインターフェースの getQueryString オペレーションの結果も使用されます。 この場合、完全な URL は以下のように構成されます。
      String url = request.getRequestURL() + ‘?' + request.getQueryString();
      表 1. フィルター条件およびオペレーション.

      この表では、フィルター基準条件とオペレーションについて説明します。

      条件 オペレーター
      正確に一致 ==

      引数が等しいかどうかが比較されます。

      host==host.my.company.com
      部分的に一致 (含む) %=

      部分的な一致を有効なものとして引数を比較します。

      user-agent%=IE 6
      部分的に一致 (複数の中の 1 つ) ^=

      指定された多くの引数の中の 1 つと一致する部分一致を有効なものとして比較します。

      request-url^=webApp1|webApp2|webApp3
      一致しない !=

      引数が等しくないかどうかが比較されます。

      request-url!=noSPNEGO
      より大きい >

      引数が辞書的により大きいかどうかが比較されます。

      remote-address>192.168.255.130
      より小さい <

      引数が辞書的により小さいかどうかが比較されます。

      remote-address<192.168.255.135
    4. フィルター・クラス」フィールドで、SPNEGO が SPNEGO Web 認証の対象の HTTP 要求を選択するのに使用する Java クラスの名前を入力します。 このパラメーターを指定しない場合、デフォルトのフィルター・クラス com.ibm.ws.security.spnego.HTTPHeaderFilter が使用されます。
    5. オプション: SPNEGO がサポートされないエラー・ページ URL (SPNEGO not supported error page URL)」フィールドで、SPNEGO が HTTP 応答に組み込む内容を含むリソースの URL をオプションで入力することができます。 この内容は、(ブラウザー) クライアント・アプリケーションが SPNEGO 認証をサポートしていない場合に、そのアプリケーションによって表示されます。 このプロパティーは Web (http://) またはファイル (file://) のリソースを指定できます。
      SPNEGO がサポートされないエラー・ページ URL (SPNEGO not supported error page URL)」フィールドを指定しないか、認証された SPNEGO が指定されたリソースを発見できない場合は、次のコンテキストが使用されます。
      <html><head><title>SPNEGO authentication is not supported</title></head>
      <body>SPNEGO authentication is not supported on this client</body></html>;
    6. オプション: NTLM トークン受信済みエラー・ページ URL (NTLM token received error page URL)」フィールドで、SPNEGO が HTTP 応答に組み込む内容を含むリソースの URL をオプションで指定することができます。この内容は、ブラウザー・ クライアント・アプリケーションによって表示されます。 ブラウザー・クライアント・アプリケーションにこの HTTP 応答が表示されるのは、 ユーザー確認のための質問への応答ハンドシェーク時に、ブラウザー・クライアントが、予想された SPNEGO トークンの代わりに NT LAN manager (NTLM) トークンを送信する場合です。
      NTLM トークンが受信されないエラー・ページ URL (NTLM token received error page URL)」フィールドを指定しないか、認証された SPNEGO が指定されたリソースを発見できない場合は、次のコンテキストが使用されます。
      <html><head><title>An NTLM Token was received.</title></head>
      <body>Your browser configuration is correct, but you have not logged into a supported
      Microsoft(R) Windows(R) Domain.
      <p>Please login to the application using the normal login page.</html>
    7. オプション: プリンシパル名から Kerberos レルムを切り取る」を選択し、SPNEGO が Kerberos レルム名に先行する、 「@」で始まるプリンシパル・ユーザー名のサフィックスを除去するかどうかを指定します。 このオプションを選択すると、プリンシパル・ユーザー名の サフィックスは除去されます。この属性を選択しない場合、プリンシパル名のサフィックスは保存されます。 デフォルトでは、このオプションは選択されていません。

    8. オプション: Kerberos クレデンシャルの委任を使用可能にする」を選択し、Kerberos 委任クレデンシャルを SPNEGO Web 認証で保管するかどうかを指示します。 クライアントが Kerberos 委任クレデンシャルに送信されると、 SPNEGO は GSSCredential を取り出してサブジェクトに保存します。クライアントが Kerberos 委任クレデンシャルを要求の一部として送信した場合、クライアントの Kerberos プリンシパル名を使用して KRBAuthnToken が作成され、 Kerberos チケットを委任します。GSSCredential は、シリアライズ可能ではないため、 ダウンストリーム・サーバーに伝搬できず、シリアライゼーションおよびデシリアライゼーション時に喪失します。 しかし、KRBAuthnToken は、シリアライズ可能で、ダウンストリーム・サーバーに伝搬することができます。 カスタム・アプリケーションでバックエンド・リソースまたはダウンストリーム・サーバーでの認証に GSSCredential クレデンシャルが必要な場合には、com.ibm.wsspi.wssecurity.platform.token.KRBAuthnToken.getGSSCredential() メソッドを使用して KRBAuthnToken から GSSCredential を取得し、サブジェクト内に配置する必要があります。
      注: このオプションにチェック・マークを付けない場合、KRBAuthnToken には、Kerberos プリンシパル名のみが入ります。
  9. 適用」をクリックします。 フィルター基準およびフィルター・クラスは、指定されている場合に、妥当性検査が行われます。
  10. OK」をクリックします。 これで、「SPNEGO Web 認証」ページの設定が 完了しました。

タスクの結果

これで、SPNEGO はアプリケーション・サーバーの Web オーセンティケーターとして使用可能になります。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_SPNEGO_config
ファイル名:tsec_SPNEGO_config.html