ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverの保護
11g リリース1(10.3.6)
B61617-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 Microsoftのクライアントに対するシングル・サインオンの構成

次の項では、SPNEGO (Simple and Protected Negotiate)メカニズムとKerberosプロトコルに基づく統合Windows認証をWebLogicネゴシエーションIDアサーション・プロバイダと併用して、Microsoftクライアントでのシングル・サインオン(SSO)を設定する方法について説明します。

Microsoftのクライアントに対するシングル・サインオンの概要

Microsoftクライアントでシングル・サインオン(Single sign-on: SSO)を利用すると、WebLogicドメインで動作するWebアプリケーションまたはWebサービスと、Microsoftドメイン内の.NET Webサービス・クライアントまたはブラウザ・クライアント(Internet Explorerなど)の間でクロス・プラットフォーム認証を実行できます。Microsoftのクライアントでは、SPNEGO (Simple and Protected Negotiate)メカニズムに基づいた統合Windows認証を使用する必要があります。

プラットフォームを越えた認証は、元々Windowsシステム間で行われているKerberosプロトコルを使用した認証サービスをエミュレートすることで実現されます。クロス・プラットフォーム認証を適切に実行するには、非Windowsのサーバー(ここではWebLogic Server)側でSPNEGOトークンを解析し、認証に使用されるKerberosトークンを展開する必要があります。

WindowsおよびKerberosの詳細は、http://technet.microsoft.com/en-us/library/bb742431.aspxを参照してください。

Microsoftのクライアントを含むSSOに必要なシステム要件

MicrosoftのクライアントでSSOを使用するには、次の各項で説明している要件を満たす必要があります。

MicrosoftクライアントでSSOをサポートするためのホスト・コンピュータ要件

MicrosoftクライアントのSSOをサポートするホスト・コンピュータは、次のシステム要件を満たす必要があります。

  • Windows Server 2000、2003または2008 R2がインストールされています。

  • Active Directoryによる認証サービスが完全に構成されています。Active Directoryの要件は以下のとおりです。

    • Kerberosサービスをマッピングするためのユーザー・アカウント群。

    • それらのアカウント用のサービス・プリンシパル名(Service Principal Names : SPNs)。

    • キータブ・ファイルが作成され、WebLogicドメインの起動ディレクトリにコピーされています。

  • WebLogic Serverがインストールされ、JDK 1.6.0_24以降で、この章の説明のとおりKerberosを使った認証を行うように適切に構成されています。

WebLogic ServerホストでKerberosサービスにマップされるユーザー・アカウントを暗号化することをお薦めします。ただし、これらのアカウントを暗号化できるようにするには、さらに要件を満たす必要があります。この特定の要件は、表6-1に示すとおり、使用する暗号化アルゴリズムに依存します。

表6-1 暗号化されたユーザー・アカウントを使用するためのクライアント・タイプの要件

暗号化 サポートされるクライアント・タイプ Active Directoryプラットフォーム

DES

  • Internet Explorer 6.01以上

  • Mozilla FireFox

  • .NET Webサービス

  • Java SEクライアント

Windows 2003以降

AES-128、AES-256およびRC4

  • Internet Explorer 8.0

  • Mozilla FireFox 7.0.1

  • Java SEクライアント脚注1

Windows 2008-R2以降


脚注1Java SEクライアントでアクセスされるユーザー・アカウントは、DES、AES-128、AES-256およびRC4で暗号化し、Windows 2003プラットフォームで実行されるActive Directoryで定義することもできます。

SSOを使用するMicrosoftクライアントをサポートするためのクライアント・コンピュータの要件

SSOを使用するMicrosoftクライアントをホストするコンピュータは、次の要件を満たす必要があります。

  • Windows 2000 Professional SP2以降がインストールされています。


    注意:

    Active Directoryで定義され、AES-128、AES-256またはRC4で暗号化されたユーザー・アカウントにアクセスするInternet Explorer 8.0クライアントおよびFireFox 7.0.1クライアントがWindows 7 Enterpriseプラットフォームで動作することが保証されています。

  • 次のいずれかのタイプのクライアントがホストされています。

    クライアントはWindows 2000のドメインにログオンしていて、そのドメイン内のActive Directoryサーバーから取得したKerberosの資格証明を保持している必要があります。ローカル・ログインは機能しません。

Microsoftのクライアントに対するシングル・サインオン:主な手順

MicrosoftのクライアントにSSOを構成するには、Microsoft Active Directory、クライアント、およびWebLogicドメインでの設定手続きが必要です。この手順についてこれ以降の項で説明します。

Microsoftのクライアントに対するSSOは次のように構成します。

  1. Kerberosを使用するようにネットワーク・ドメインを構成します。「Kerberosを使用するためのネットワーク・ドメインの構成」を参照してください。

  2. WebLogic Server用にKerberos IDを作成します。

    1. WebLogic Serverの動作するホスト用にActive Directoryのユーザー・アカウントを作成します。

    2. 作成したアカウント用にサービス・プリンシパル名(SPN)を作成します。

    3. 作成したアカウント用にユーザー・マッピングとキータブ・ファイルを作成します。

    「WebLogic Server用のKerberos IDの作成」を参照してください。

  3. Microsoftのクライアント(Webサービスまたはブラウザ)またはJava SEクライアントを選択し、統合Windows認証を使用するように構成します。「Microsoftのクライアントで統合Windows認証を使用するための構成」を参照してください。

  4. WebLogicドメインでKerberos認証を使用するように設定します。

    1. MicrosoftドメインのActive Directoryサーバーおよびステップ1で作成したキータブ・ファイルを指し示すJAASログイン・ファイルを作成します。「JAASログイン・ファイルの作成」を参照してください。

    2. WebLogic Serverのセキュリティ・レルムにネゴシエートIDアサーション・プロバイダを構成します。「ネゴシエートIDアサーション・プロバイダの構成」を参照してください。

  5. WebLogic Serverを特定の起動引数を使用して起動します。「WebLogic ServerでのKerberos認証における起動引数の使用」を参照してください。

これらの手順について以下の節で詳細に説明します。

Kerberosを使用するためのネットワーク・ドメインの構成

Windowsドメイン・コントローラは、Kerberosベース・クライアントおよびホスト・システムのKerberosキー配布センター(KDC)・サーバーとして機能します。どのドメイン・コントローラでも、Active DirectoryサービスおよびKerberosサービスは自動的に実行されます。

Java GSSでは、Kerberos構成ファイルが必要になります。Kerberos構成ファイルのデフォルトのファイル名と格納場所は、使用しているオペレーティング・システムによって異なります。Java GSSでは、次の順序でデフォルトの構成ファイルが検索されます。

  1. Javaプロパティjava.security.krb5.confで参照されているファイル

  2. ${java.home}/lib/security/krb5.conf.

  3. Microsoft Windowsプラットフォームの場合は%windir%\krb5.ini

  4. Solarisプラットフォームの場合は/etc/krb5/krb5.conf

  5. 他のUNIXプラットフォームの場合は/etc/krb5.conf

Windowsドメイン・コントローラでKerberosを構成するには、Kerberosレルムと使用可能なKDCサーバーを特定するように、KDCにアクセスする各マシンを構成する必要があります。例:

例6-1 サンプルkrb5.iniファイル

[libdefaults]
default_realm = MYDOM.COM (Identifies the default realm. Set its value to your Kerberos realm)
default_tkt_enctypes = des-cbc-crc
default_tgs_enctypes = des-cbc-crc
ticket_lifetime = 600

[realms]

MYDOM.COM = {
kdc = <IP address for MachineA> (host running the KDC)
(For UNIX systems, you need to specify port 88, as in <IP-address>:88)
admin_server = MachineA
default_domain = MYDOM.COM
}

[domain_realm]
.mydom.com = MYDOM.COM

[appdefaults]
autologin = true
forward = true
forwardable = true
encrypt = true

WebLogic Server用のKerberos IDの作成

Active Directoryでは、Kerberos認証の主要なコンポーネントであるサービス・プリンシパル名(service principal names: SPN)がサポートされています。SPNは、サーバー上で動作しているサービスに対する一意のIDです。Kerberos認証を使用するすべてのサービスは各自のSPNのセットを保持する必要があり、それによってクライアント側でのネットワーク上のサービスの識別が可能になります。SPNは通常、name@YOUR.REALMのようになっています。KerberosレルムのWebLogic Serverを表すSPNを定義する必要があります。サービスにSPNが設定されていないと、クライアントではそのサービスの場所を特定できません。つまり、SPNが正しく設定されていなければKerberos認証は不可能だということになります。一連のSPNを格納するメカニズムとしてキータブ・ファイルがあります。キータブ・ファイルはWebLogicドメインにコピーして、ログイン・プロセスで使用します。この構成手順では、WebLogic Server用のSPN、ユーザー・マッピング、およびキータブ・ファイルの作成方法について説明します。

この構成手順では、次のActive Directoryユーティリティを使用します。

Kerberos IDの作成プロセスは次のとおりです。

ステップ1: ホスト・コンピュータのユーザー・アカウントの作成

Active DirectoryサーバーにWebLogic Serverが動作するホスト・コンピュータのユーザー・アカウントを作成します(「新規作成」>「コンピュータ」ではなく、「新規作成」>「ユーザー」を選択します)。

ユーザー・アカウントを作成する際には、シンプルなコンピュータ名を使用してください。たとえば、ホスト名がmyhost.example.comの場合、Active Directoryのユーザーはmyhostのような名前にします。

ユーザー・アカウントの作成時に定義したパスワードを書き留めておいてください。「ステップ3: サービス・プリンシパル名の定義とサービスのキータブの作成」で説明する手順にこのパスワードが必要になります。「ユーザーは次回ログオン時にパスワードの変更が必要」オプションやその他のパスワード・オプションを選択しないでください。

ステップ2: Kerberosに準拠するユーザー・アカウントの構成

Kerberosプロトコルに準拠するように新しく作成したユーザー・アカウントを構成します。ユーザー・アカウントの暗号タイプは少なくともDESにする必要があり、アカウントはKerberos事前認証を必要とします。AES-128、AES-256、RC4など、より強力な暗号タイプがサポートされます。

  1. 左ペインの「ユーザー」ツリーでユーザー・アカウント名を右クリックして、「プロパティ」を選択します。

  2. 「アカウント」タブを選択してから、次のチェック・ボックスを選択します。

    • DES暗号化を使用する場合、「このアカウントにDES暗号化を使う」チェック・ボックスを選択します。


      注意:

      DES暗号化ではActive DirectoryがWindows Server 2003以降で動作している必要があります。

    • AES暗号化を使用する場合、「このアカウントでKerberos AES 128ビット暗号化をサポートする」および「このアカウントでKerberos AES 256ビット暗号化をサポートする」のチェック・ボックスを選択し、Kerberos DES暗号化を使うのチェックを解除します。


      注意:

      AES-128およびAES-256の暗号化ではActive DirectoryがWindows Server 2008-R2以降で動作している必要があります。

    その他のボックス(特にKerberos事前認証を必要としないボックス)が選択されていないことを確認します。

  3. 「OK」をクリックします。


警告:

暗号タイプを設定すると、パスワードが破損するおそれがあります。そのため、ユーザー・パスワードをリセットする必要があります。ユーザー・アカウントの名前を右クリックして「パスワードのリセット」を選択し、「ステップ1: ホスト・コンピュータのユーザー・アカウントの作成」で作成したパスワードと同じパスワードを再入力してください。

ステップ3: サービス・プリンシパル名の定義とサービスのキータブの作成

「WebLogic ServerのKerberos IDの作成」で示すように、SPNは、サービスのインスタンスを識別する一意の名前で、サービス・インスタンスが実行するログオン・アカウントに関連付けられます。SPNは、特定のサービスをホストするクライアントとサーバー間の相互認証のプロセスで使用されます。接続しようとするサービスのSPNに基づきクライアントがコンピュータ・アカウントを検出します。そのため、特定のプロジェクトでは、WebLogicクライアントから呼び出されるサービスと、WebLogic Serverに定義したアカウントを結び付ける必要があります。たとえば、WebLogicブラウザ・クライアントで呼び出されるサービスHTTP/myhost.example.comは、myhostアカウントと結び付ける必要があります。

Windowsアカウント名はKerberosプリンシパル名としてのマルチパートではありません。このため、名前HTTP/hostname.dns.comを使用してアカウントを直接作成することはできません。このようなプリンシパル・インスタンスは、SPNマッピングによって作成されます。この場合、アカウントは意味のある名前hostnameで作成され、SPNマッピングはHTTP/hostname.dns.comに対して追加されます。

SPNを定義してサービスのキータブを作成する固有の手順は、WebLogic Serverが実行している基盤のプラットフォームによって異なります。これらについては次の項で説明します。

WindowsシステムでのSPNの定義とキータブの作成

WebLogic ServerがWindowsシステムで実行する場合、次の手順を実行します。

  1. setspnユーティリティを使用して、ステップ1で作成されたWebLogic ServerアカウントのHTTPサービスのSPNを作成します。例:

    setspn -A HTTP/myhost.example.com myhost
    
  2. setspn -Lコマンドを入力して、ユーザー・アカウントに関連付けられるSPNを特定します。例:

    setspn -L myhost
    

    ヒント:

    前述の手順は重要です。同じサービスがActive Directoryサーバーの異なるアカウントに結び付けられている場合、クライアントはサーバーにKerberosチケットを送信しません。

  3. ktabユーティリティを使用して、WebLogic Serverマシンにエクスポートされるキータブを作成します。ktabユーティリティを実行するコマンドの構文は次のとおりです(Kerberosレルム名はすべて大文字で入力してください)。

    ktab -k keytab-file-name -a account-name@REALM.NAME
    

    例:

    ktab -k mykeytab -a myhost@MYDOM.COM
    

    パスワードが求められた場合、ステップ1で作成したパスワードを入力します。

  4. キータブ・ファイルを安全な場所に保存し、そのファイルをWebLogic Serverインスタンスのドメイン・ディレクトリ(myhostなど)にエクスポートします。

UNIXシステムでのSPNの定義とキータブの作成

WebLogic ServerがUNIXシステムで実行する場合、ktpassコマンドライン・ツールを使用して、WebLogic ServerアカウントのHTTPサービスのサービス・プリンシパル名(SPN)とキータブ・ファイルを作成します。このツールを使用すると、管理者はWindows Server Active Directoryのセキュリティ・プリンシパルとしてWindows Server以外のKerberosサービスを構成できます。

ktpassコマンドは、Active DirectoryでサービスのSPNを構成し、サービスの共有秘密鍵を含むKerberosキータブ・ファイルを生成します。ツールを使用すると、Kerberos認証をサポートするUNIXベースのサービスでは、Windows Server Kerberos KDCサービスで提供される相互運用機能を使用できます。

ktpassコマンドの構文は次のようになります。

ktpass -princ HTTP/hostname@REALM-NAME -mapuser account-name -pass password -out keytab-file-name -crypto algorithm -ptype KRB5_NT_PRINCIPAL

前述の構文で、algorithmは使用する暗号化アルゴリズムを示します。AESを使用する場合、AES128-SHA1またはAES256-SHA1を指定します。例:

ktpass -princ HTTP/myhost.example.com@MYDOM.COM -mapuser myhost -pass welcome1 -out mykeytab -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL

注意:

UNIXシステムでは、DESまたはAESの暗号化アルゴリズムを使用するSPNの作成は、JDK 1.6.0_24以降でサポートされます。

SPNおよびキータブ・ファイルが正しく設定されていることを確認するには、次の操作を行います。

  • setspn -lコマンドを使用して、SPNが正常にマップされていることを確認します。

  • klistコマンドを使用して、AES-128の場合Key type: 17、AES-256の場合Key type: 18を表示します。例:

    -klist -e -k keytab-file-name
    
  • kinitコマンドを使用して、Kerberos設定およびキータブが有効であることを確認します。


注意:

ktpassコマンドは、Active Directoryサーバーでプリンシパル名を、account-nameからHTTP/account-nameに変更します。その結果、HTTP/account-nameというプリンシパルに対してキータブ・ファイルが生成されます。ただし、名前が変更されない場合があります。変更されない場合、Active Directoryサーバーで名前を手動で変更する必要があります。変更を行わない場合、生成したキータブは適切に機能しません。

ユーザー・ログオン名を手動で変更するには、次の操作を行います。

  1. ユーザー・ノードを右クリックして 「プロパティ」を選択し、「アカウント」タブをクリックします。

  2. WebLogicドメイン・ディレクトリのWebLogic ServerをホストするUNIXマシンに、生成されたキータブ・ファイルをエクスポートします。


ステップ4: 正しい設定の検証

次のユーティリティを使用して、SPNとキータブ・ファイルが正常に設定されていることを確認します。

  • setspn -lコマンドを使用して、SPNが正常にマップされていることを確認します。

  • klistコマンドを使用して、キー・タイプを確認します。例:

    -klist -e -k keytab-file-name
    

    AES 128の場合、このコマンドによりKey type: 17と表示されます。AES 256の場合、Key type: 18と表示されます。

  • kinitユーティリティを使用して、Kerberosが正しく設定されていることと、プリンシパルおよびキータブが有効であることを検証します。

    JREで提供されるkinitユーティリティを使用して、Kerberosチケット許可チケットを取得およびキャッシュできます。kinitユーティリティを実行するには、次のコマンドを入力します。

    kinit -k -t keytab-file account-name
    

    出力は次のようになります。

    New ticket is stored in cache file C:\Documents and Settings\Username\krb5cc_myhost
    

ステップ5: デフォルトのJDKセキュリティ・ポリシー・ファイルの更新

AES-256では、Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6が必要です。これは次のURLで入手できます。

http://www.oracle.com/technetwork/java/javase/downloads/index.html

AES暗号化を使用する場合、次の手順に従います。

  1. 前述のURLからJCE Unlimited Strength Jurisdiction Policy Filesをダウンロードします。

  2. 管轄ポリシー・ファイルを圧縮解除し、抽出します。

  3. 含まれているREADME.txtファイルで説明されているインストール手順を完了させます。

Microsoftのクライアントで統合Windows認証を使用するための構成

シングル・サインオンを利用するMicrosoftのクライアントでは、必ず統合Windows認証を使用するように構成します。次の各項では、.NET Webサーバー、Internet Explorerブラウザ・クライアント、Mozilla FirefoxクライアントおよびJava SEクライアントで、統合Windows認証を使用するように構成する方法を説明します。


注意:

KerberosチケットがマップされているWebLogic Serverホストでユーザー・アカウントのSPNがDESやAES-256の暗号化を使用するように構成されている場合(「ステップ2: Kerberosに準拠するユーザー・アカウントの構成」を参照)、クライアントはJDK 1.6.0_24以降で実行される必要があります。

.NET Webサービスの構成

.NET Webサービスで統合Windows認証を使用するようにするには、次のように構成します。

  1. Webサービスのweb.configファイルで、IISおよびASP.NETの認証モードを次のようにWindowsに設定します。

    <authentication mode="Windows" />
    

    通常、これはデフォルトの設定です。

  2. Webサービス・クライアントがプロキシWebサービス・オブジェクトに渡されるために必要な文を追加して、SOAPを介して資格証明が送られるようにします。

    たとえば、プロキシ・オブジェクトconvで表されるWebサービスに対するWebサービス・クライアントの場合、次のような構文になります。

    /*
    * Explicitly pass credentials to the Web Service
    */
    conv.Credentials =
    System.Net.CredentialCache.DefaultCredentials;
    

Internet Explorerブラウザの構成

Internet Explorerブラウザが統合Windows認証を使用するように構成するには、次の項で説明する手順を完了します。

ローカル・イントラネット・ドメインの構成

Internet Explorerで:

  1. 「ツール」>「インターネット・オプション」を選択します。

  2. 「セキュリティ」タブを選択します。

  3. 「イントラネット」を選択し、「サイト」をクリックします。

  4. 「イントラネット」ポップアップ・ウィンドウで「プロキシ サーバーを使用しないサイトをすべて含める」オプションおよび「ほかのゾーンにないローカル (イントラネット) のサイトをすべて含める」オプションが選択されていることを確認します。

  5. 「詳細設定」をクリックします。

  6. 「イントラネット」ダイアログ・ボックスで、SSO構成に参加するWebLogic Serverインスタンスに対して使用されるすべての関連ドメインの名前(例: myhost.example.com)を追加し、「OK」をクリックします。

イントラネット認証の構成

Internet Explorerで:

  1. 「ツール」>「インターネット・オプション」を選択します。

  2. 「セキュリティ」タブを選択します。

  3. 「イントラネット」を選択し、「レベルのカスタマイズ...」をクリックします。

  4. 「セキュリティの設定」ダイアログ・ボックスでスクロールして「ユーザー認証」セクションを見つけます。

  5. 「イントラネット・ゾーンでのみ自動的にログインする」オプションを選択します。このオプションを選択すると、ログオン用の資格証明を再入力する必要がなくなります。これがこのソリューションの重要な部分です。

  6. 「OK」をクリックします。

プロキシ設定の検証

プロキシ・サーバーを有効にしている場合には、以下の手順を実行します。

  1. Internet Explorerで、「ツール」>「インターネット・オプション」の順に選択します。

  2. 「接続」タブを選択し、「LANの設定」をクリックします。

  3. プロキシ・サーバーのアドレスとポート番号が正しいかどうかを検証します。

  4. 「詳細設定」をクリックします。

  5. 「プロキシの設定」ダイアログ・ボックスで、「例外」フィールドに目的とするドメイン名がすべて入力されていることを確認します。

  6. 「OK」をクリックして「プロキシの設定」ダイアログ・ボックスを閉じます。

Internet Explorer 6.0用の統合認証の設定

構成するInternet Explorerのバージョンが6.0の場合、次の手順も完了する必要があります。

  1. Internet Explorerで、「ツール」>「インターネット・オプション」の順に選択します。

  2. 「詳細設定」タブを選択します。

  3. スクロールして「セキュリティ」セクションを見つけます。

  4. 「統合Windows認証を使用する」オプションがチェックされていることを確認し、「OK」をクリックします。

    このオプションにチェックマークが入っていない場合、チェックマークを入れ、「OK」をクリックしてコンピュータを再起動します。

Mozilla Firefoxブラウザの構成

Windows統合認証を使用するようにFirefoxブラウザを構成するには、次の手順に従います。

  1. Firefoxを起動します。

  2. ロケーション・バーでabout:configを入力します。

  3. フィルタ文字列としてnetwork.negotiateと入力します。

  4. 各プリファレンスを表6-2のように設定します。

    表6-2 FirefoxでWindows統合認証を使用するために必要なプリファレンス

    プリファレンス名 ステータス タイプ
    network.negotiate-auth.allow-proxies
    
    default
    
    boolean
    
    true
    
    network.negotiate-auth.delegation-uris
    
    user set
    
    string
    
    http://,https://
    
    network.negotiate-auth.gsslib
    
    default
    
    string
    

    <blank>脚注1

    network.negotiate-auth.trusted-uris
    
    user set
    
    string
    
    http://,https://
    
    network.negotiate-auth.using-native-gsslib
    
    default
    
    boolean
    
    true
    

    脚注1network.negotiate-auth.gsslibプリファレンスの値は空白にしてください。

Java SEクライアント・アプリケーションの構成

統合Windows認証を使用するようにJava SEクライアント・アプリケーションを構成するには、次の手順に従います。

  1. Java SEクライアントがJDK 1.6.0_24以降で動作していることを確認します。

  2. Kerberosログイン・モジュール(com.sun.security.auth.module.Krb5LoginModule)を示すJAAS構成ファイルを作成します。この構成ファイルには、次の2つのログイン・エントリを定義します。

    • com.sun.security.jgss.krb5.initiate: Javaクライアントに対して呼び出されます。

    • com.sun.security.jgss.krb5.accept: KerberosのIDで表され、クライアントがアクセスするWebアプリケーションをホストするWebLogic Serverインスタンスに対して呼び出されます。

    各ログイン・エントリに対し、次のようなオプションが含まれます。

    • プリンシパルの認証が成功する必要があります(つまり、クライアント・アプリケーションのユーザーがMicrosoftドメインで定義されていること)。

    • useKeyTabtrueに設定します。これにより、プリンシパルのキーがキータブから取得されます。

    • キータブの名前を識別します。

    • storeKeytrueに設定します。これにより、プリンシパルのキーがサブジェクトに格納されます。

    • 必要に応じて、debugオプションをtrueに設定します。

    次のサンプルは、Active Directoryサーバーが実行されるMicrosoftドメインSECURITYQA.COMで定義されたnegotiatetesterプリンシパルで使用されるKerberosログイン・モジュールのJAAS構成ファイルを示しています。

    com.sun.security.jgss.krb5.initiate {
       com.sun.security.auth.module.Krb5LoginModule 
       required principal="negotiatetester@SECURITYQA.COM" 
       useKeyTab=true 
       keyTab=negotiatetester_keytab storeKey=true debug=true; };
     
    com.sun.security.jgss.krb5.accept {
       com.sun.security.auth.module.Krb5LoginModule 
       required principal="negotiatetester@SECURITYQA.COM" 
       useKeyTab=true keyTab=negotiatetester_keytab storeKey=true debug=true; };
    
  3. クライアント・アプリケーションを起動するJavaコマンドで、次の値を引数として渡します。

    • Active Directoryサーバーが実行されるMicrosoftドメイン

    • Kerberos Key Distribution Center(KDC)サーバーを実行するコンピュータのホスト名

    • Kerberosログイン・モジュールを識別するJAAS構成ファイル

    • javax.security.auth.useSubjectCredsOnly=falseプロパティ。これは、サブジェクトの資格証明ではない認証メカニズムの使用を認めることを指定します。

    • Java SEクライアント・クラスの名前

    • アクセスが要求されるWebアプリケーション・リソース

    例:

    java -Djava.security.krb5.realm = SECURITYQA.COM\
    -Djava.security.krb5.kdc = rno05089.example.com\
    -Djava.security.auth.login.config = negotiatetester_krb5Login.conf\
    -Djavax.security.auth.useSubjectCredsOnly = false\
    RunHttpSpnego http://myhost.example.com:7001/AuthenticatedServlet.jsp
    

JAASログイン・ファイルの作成

WindowsまたはUNIXのプラットフォームでWebLogic Serverを実行している場合、JAASログイン・ファイルが必要です。また、JAASログイン・ファイルにはWebLogic ServerのKerberos ID情報の格納されたキータブ・ファイルの場所も定義します。このファイルの場所は、WebLogic Serverのjava.security.auth.login.config起動引数で指定します。「WebLogic ServerでのKerberos認証における起動引数の使用」を参照してください。


注意:

JDK 1.4およびJDK 5.0の場合、JAASログイン・エントリ名は、com.sun.security.jgss.initiateおよびcom.sun.security.jgss.acceptになります。

JDK 6.0の場合、JAASログイン・エントリ名は、com.sun.security.jgss.krb5.initiateおよびcom.sun.security.jgss.krb5.acceptに変更されました。


例6-2に、Kerberos認証用のJAASログイン・ファイルのサンプルを示します。重要な箇所は太字で示しています。

例6-2 Kerberos認証用のJAASログイン・ファイルのサンプル

com.sun.security.jgss.krb5.initiate {

     com.sun.security.auth.module.Krb5LoginModule required
     principal="myhost@Example.CORP" useKeyTab="true"
     keyTab="mykeytab" storeKey="true";
};

com.sun.security.jgss.krb5.accept {

     com.sun.security.auth.module.Krb5LoginModule required
     principal="myhost@Example.CORP" useKeyTab="true" 
     keyTab="mykeytab" storeKey="true";

};

プリンシパル・オプションには、サービスを実行しているアカウントのuserPrincipalName属性の値を指定します(間違ったユーザー・プリンシパル名を指定すると、「Unable to obtain password from user」などのエラーが発生します)。

keytabオプションに指定するキータブ・ファイルは、WebLogic Serverプロセスからアクセスできるファイルでなければなりません。適切な権限が設定されていることを確認してください。WebLogic Serverで使用されている検索パスが不明な場合は、ファイルへの絶対パスを指定します。パスは二重引用符で囲み、パス内のバックスラッシュ(\)は二重バックスラッシュ(\\)またはフォワード・スラッシュ(/)で置き換えてください。

IDアサーション・プロバイダの構成

WebLogic Serverには、Microsoftクライアントを使用したシングル・サインオン(SSO)をサポートするセキュリティ・プロバイダ、ネゴシエートIDアサーション・プロバイダがあります。このIDアサーション・プロバイダでは、SPNEGO (Simple and Protected Negotiate)のトークンをデコードしてKerberosのトークンを取得し、そのKerberosトークンを検証した後でWebLogicユーザーにマップします。Microsoftクライアントを使用したSSOを有効にするには、WebLogicセキュリティ・レルムでネゴシエートIDアサーション・プロバイダを構成する必要があります。「ネゴシエートIDアサーション・プロバイダの構成」、およびOracle WebLogic Server管理コンソール・オンライン・ヘルプの認証プロバイダおよびIDアサーション・プロバイダの構成に関する項を参照してください。

WebLogic ServerでのKerberos認証における起動引数の使用

WebLogic ServerでKerberos認証を使用するには、WebLogic Serverの起動時に以下の起動引数を使用します。

-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.auth.login.config=krb5Login.conf
-Djava.security.krb5.realm=Example.CORP 
-Djava.security.krb5.kdc=ADhostname 

説明:

Java GSSメッセージはトラブルシューティングで非常に役立つことが多いため、初期設定の段階で- Dsun.security.krb5.debug=trueを追加しておくとよいでしょう。

Microsoftのクライアントに対するSSOの構成の検証

Microsoftのクライアントを含むSSOが適切に構成されているかどうかを検証するには、使用するMicrosoftのWebアプリケーションまたはWebサービスをブラウザ(「Internet Explorerブラウザの構成」の説明に従って構成したもの)で指定します。Windowsドメインにログオンし、そのドメインのActive DirectoryサーバーからKerberos資格証明を取得している場合、ユーザー名とパスワードを指定せずにWebアプリケーションまたはWebサービスにアクセスできるはずです。