SPNEGO Web 認証を使用した HTTP 要求のシングル・サインオン

Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) を WebSphere® Application Server の Web 認証として使用することにより、WebSphere Application Server 内の保護されたリソースの HTTP 要求を安全にネゴシエーションし、認証することができます。

注: WebSphere Application Server バージョン 6.1 では、Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) を使用して、保護されたリソースに関する HTTP 要求を安全にネゴシエーションして認証する、トラスト・アソシエーション・インターセプター (TAI) が導入されました。この機能は WebSphere Application Server バージョン 7.0 で非推奨になりました。代わりに SPNEGO Web 認証が導入され、以下の機能拡張が提供されるようになりました。
  • 管理コンソールを使用して、WebSphere Application Server 上の SPNEGO Web 認証およびフィルターを構成して使用可能にすることができます。
  • WebSphere Application Server を停止して再始動しなくても、SPNEGO の動的再ロードが行われます。
  • SPNEGO Web 認証に失敗した場合は、アプリケーション・ログイン・メソッドへのフォールバックが行われます。
  • SPNEGO は、WebSphere セキュリティー・ドメイン・レベルでカスタマイズすることができます。詳しくは、複数のセキュリティー・ドメインを参照してください。

SPNEGO TAI または SPNEGO Web 認証のいずれかを使用可能にすることはできますが、両方を使用可能にすることはできません。

以下のセクションでは、SPNEGO Web 認証について詳しく説明されています。

SPNEGO とは

SPNEGO は、『The Simple and Protected GSS-API Negotiation Mechanism (IETF RFC 2478)』で定義された標準規格です。

WebSphere Application Server のグローバルおよびアプリケーション・セキュリティーが使用可能な場合、SPNEGO Web 認証は使用可能で、最初のインバウンド HTTP 要求が処理される際に SPNEGO が初期化されます。次に、Web オーセンティケーター・コンポーネントが SPNEGO と対話します。これは、セキュリティー構成リポジトリーで定義されて使用可能になります。フィルター基準が満たされると、 SPNEGO は、HTTP 要求内で識別される保護されたリソースへのアクセスの認証を担当します。

SPNEGO の操作を使用可能にするには、WebSphere Application Server セキュリティー・ランタイム・サービスに加えて、いくつかの外部コンポーネントが必要になります。これらの外部コンポーネントには、以下のものが含まれます。
  • [Windows]Active Directory ドメインおよび関連する Kerberos Key Distribution Center (KDC) を備えた Microsoft Windows Server。 サポートされる Microsoft Windows Server については、WebSphere Application Server バージョン 9.0 on Windows のシステム要件を参照してください。
  • クライアント・アプリケーション (例えば、Microsoft .NET、または IETF RFC 2478 で定義されている SPNEGO Web 認証メカニズムをサポートする Web サービスおよび J2EE クライアント)。Microsoft Internet Explorer バージョン 5.5 またはそれ以降および Mozilla Firefox バージョン 1.0 は、ブラウザーの例です。どのブラウザーも、SPNEGO Web 認証メカニズムを使用するように構成する必要があります。この構成の実行について詳しくは、SPNEGO を使用するためのクライアント・ブラウザーの構成を 参照してください。

HTTP 要求の認証は、要求側 (クライアント・サイド) によって起動され、SPNEGO トークンを生成します。WebSphere Application Server は、このトークンを受信します。特に、SPNEGO Web 認証は、要求元 ID をデコードし、SPNEGO トークンから取得します。この ID は、要求元 とアプリケーション・サーバー間でコンテキストの保護を確立するために使用します。

SPNEGO Web 認証は、WebSphere Application Server のサーバー・サイドのソリューションです。クライアント・サイド・アプリケーションは、SPNEGO Web 認証が使用する SPNEGO トークンの生成を担当します。WebSphere Application Server セキュリティー・レジストリーにあるリクエスト側 ID は、SPNEGO Web 認証が取得する ID と同一である必要があります。Microsoft Windows Active Directory サーバーが、WebSphere Application Server で使用される Lightweight Directory Access Protocol (LDAP) サーバーである場合、ID が一致する必要はありません。Active Directory から WebSphere Application Server セキュリティー・レジストリーへの ID のカスタム・マッピングをサポートするプラグインとして、カスタム・ログイン・モジュールが使用可能です。

[AIX Solaris HP-UX Linux Windows][IBM i]このカスタム・ログイン・モジュールの使用法について詳しくは、[AIX Solaris HP-UX Linux Windows][IBM i]WebSphere ユーザー・レジストリー ID へのクライアント Kerberos プリンシパル名の マッピングを参照してください。

WebSphere Application Server により、セキュリティー・レジストリーに対して ID の検証が行われます。妥当性検査が成功した場合、 クライアント Kerberos チケットおよび GSS 代行認証が取得され、クライアント・サブジェクト内に 配置されます。これにより、Lightweight Third Party Authentication (LTPA) セキュリティー・トークンが作成されます。これにより、 HTTP 応答内に要求者に対する Cookie が配置され戻されます。この同じ要求者から WebSphere Application Server の追加の保護されたリソース・アクセスへの次の HTTP 要求では、以前に作成された LTPA セキュリティー・トークンが使用され、ログイン試行が繰り返されるのを防止します。

Web 管理者は、以下の図で示すように、次の SPNEGO セキュリティー・コンポーネントおよび関連付けられた構成データへのアクセス権を持っています。

図 1. SPNEGO Web 認証およびセキュリティー構成要素Web 管理者は、SPNEGO セキュリティー・コンポーネントおよび関連付けられた構成データへのアクセス権を持っています。SPNEGO セキュリティー・コンポーネントには、Web 認証モジュール、SPNEGO トラスト・アソシエーション・インターセプター、JGSS および SPNEGO セキュリティー・プロバイダー、Kerberos 構成と Kerberos キータブ・ファイル、SPNEGO TAI 構成プロパティー、および JVM システム・プロパティーがあります。

SPNEGO Web 認証の利点

WebSphere Application Server が SPNEGO を WebSphere Application Server の Web 認証サービスとして使用する利点には、以下のようなものがあります。

  • [Windows]Active Directory ドメインを使用する Microsoft Windows Servers との統合シングル・サインオン環境が確立されます。
  • 多数の ID およびパスワードの管理コストが削減されます。
  • Web ブラウザーまたは Microsoft .NET クライアントからのセキュリティー・クレデンシャルの送信を保護し、相互認証します。
  • SPNEGO 認証を使用する Web サービスおよび Microsoft .NET または Web サービス・アプリケーションとの、トランスポート・レベルでのインターオペラビリティーを実現します。
  • Kerberos 認証サポートを使用すると、SPNEGO Web 認証で Kerberos ソリューションへのエンドツーエンド SPNEGO が提供され、クライアントからの Kerberos クレデンシャルを保存することができます。

単一 Kerberos レルム内での SPNEGO Web 認証

SPNEGO Web 認証は、単一 Kerberos レルムでサポートされます。以下の図に、ユーザー確認のための質問への応答ハンドシェーク・プロセスを示します。

図 2. 単一 Kerberos レルム内での SPNEGO Web 認証SPNEGO Web 認証は、単一 Kerberos レルムでサポートされます。チャレンジ応答ハンドシェーク・プロセスが示されています。

上の図では、以下のイベントが発生します。

  1. クライアントは、HTTP/Post/Get/Web-Service 要求を WebSphere Application Server に送信します。
  2. WebSphere Application Server は、HTTP 401 認証/ネゴシエーションを戻します。
  3. クライアントは、チケット許可チケット (TGT) を取得します。
  4. クライアントは、サービス・チケット (TGS_REQ) を要求します。
  5. クライアントは、サービス・チケット (TGS_REP) を取得します。
  6. クライアントは、HTTP/Post/Get/Web-Service および許可 SPNEGO トークンを WebSphere Application Server に送信します。
  7. WebSphere Application Server は、SPNEGO トークンの妥当性検査を行います。妥当性検査が成功した場合、ユーザー ID と GSS 代行クレデンシャルが SPNEGO トークンから取得されます。クライアント Kerberos クレデンシャルを使用して KRBAuthnToken を作成します。
  8. WebSphere Application Server は、WebSphere ユーザー・レジストリーのユーザー ID の妥当性検査を行い、LTPA トークンを作成します。
  9. WebSphere Application Server は、クライアントに HTTP 200、コンテンツ、および LTPA トークンを戻します。
注: SPNEGO をサポートする他のクライアント (例えば、Web サービス、.NET、J2EE など) は、上で示した ユーザー確認のための質問への応答ハンドシェーク・プロセスに従う必要はありません。これらのクライアントは、ターゲット・サーバーのチケット許可チケット (TGT) および Kerberos サービス・チケットを取得して、SPNEGO トークンを作成し、 そのトークンを HTTP ヘッダーに挿入し、次に HTTP 要求を作成する標準プロセスを実行することができます。

トラステッド Kerberos レルム内での SPNEGO Web 認証

SPNEGO Web 認証は、トラステッド Kerberos レルムでもサポートされます。以下の図に、ユーザー確認のための質問への応答ハンドシェーク・プロセスを示します。

図 3. トラステッド Kerberos レルム内での SPNEGO Web 認証SPNEGO Web 認証は、トラステッド Kerberos レルムでもサポートされます。チャレンジ応答ハンドシェーク・プロセスが示されています。

上の図では、以下のイベントが発生します。

  1. クライアントは、HTTP/Post/Get/Web-Service 要求を WebSphere Application Server に送信します。
  2. WebSphere Application Server は、HTTP 401 認証/ネゴシエーションを戻します。
  3. クライアントは、チケット許可チケット (TGT) を取得します。
  4. クライアントは、REALM1 KDC から REALM2 の相互レルム・チケット (TGS_REQ) を要求します。
  5. クライアントは、ステップ 4 の相互レルム・チケットを使用して、REALM2 KDC からサービス・チケットを要求します。
  6. クライアントは、HTTP/Post/Get/Web-Service および許可 SPNEGO トークンを WebSphere Application Server に送信します。
  7. WebSphere Application Server は、SPNEGO トークンの妥当性検査を行います。妥当性検査が成功した場合、ユーザー ID と GSS 代行クレデンシャルが SPNEGO トークンから取得されます。クライアント Kerberos クレデンシャルを使用して KRBAuthnToken を作成します。
  8. WebSphere Application Server は、WebSphere ユーザー・レジストリーのユーザー ID の妥当性検査を行い、LTPA トークンを作成します。
  9. WebSphere Application Server は、クライアントに HTTP 200、コンテンツ、および LTPA トークンを戻します。

トラステッド Kerberos レルム環境では、以下の点に注意してください。

  • Kerberos トラステッド・レルムのセットアップは、各 Kerberos KDC で実行する必要があります。Kerberos トラステッド・レルムのセットアップ方法について詳しくは、「Kerberos 管理者およびユーザーズ・ガイド」を参照してください。
  • SPNEGO トークンの Kerberos クライアント・プリンシパル名は、 WebSphere ユーザー・レジストリーに 存在する必要はありません。 WebSphere ユーザー・レジストリーへの Kerberos プリンシパル・マッピングで、この名前は必要ありません。

    [AIX Solaris HP-UX Linux Windows][IBM i]詳しくは、[AIX Solaris HP-UX Linux Windows][IBM i]WebSphere ユーザー・レジストリー ID へのクライアント Kerberos プリンシパル名の マッピングを参照してください。

HTTP プロトコルを使用した Java™ クライアントでの SPNEGO Web 認証のサポート情報

次のシナリオがサポートされています。
  • 同じフォレスト内のドメイン信頼
  • 異なるフォレスト内のドメイン間での外部ドメイン直接信頼
  • Kerberos レルム信頼
次のシナリオはサポートされていません。
  • クロス・フォレスト・トラスト
  • フォレストの外部信頼

ブラウザー・クライアントを使用した SPNEGO Web 認証のサポート情報

次のシナリオがサポートされています。
  • 双方向のフォレスト信頼
  • 同じフォレスト内のドメイン信頼
  • Kerberos レルム・トラスト
次のシナリオはサポートされていません。
  • フォレスト外部トラスト
  • ドメイン外部信頼

WebSphere Application Server の Web 認証メカニズムとして SPNEGO をセットアップ

管理コンソールまたは wsadmin コマンドを使用して SPNEGO Web 認証をセットアップする前に、SPNEGO Web 認証を使用した HTTP 要求のシングル・サインオンの作成 にリストされているステップを実行して、WebSphere Application Server 用に SPNEGO Web 認証をセットアップする必要があります。
注: サーバー・サイドでの SPNEGO Web 認証は、システム管理者が行う必要があります。 Kerberos キータブ・ファイルは、保護される必要があります。

トピックのタイプを示すアイコン 概念トピック



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