Liberty でのアウトバウンド SPNEGO トークンの Kerberos 制約付き委任の構成

アウトバウンド SPNEGO トークンに対して Kerberos 制約付き委任をサポートするように Liberty サーバーを構成できます。

始める前に

SPNEGO Web 認証を構成済みであることを確認してください。

IBM® JDK 1.8 以降のみがサポートされます。

このタスクについて

S4U (Services for Users) という名前の Kerberos v5 拡張機能は制約付き委任とも呼ばれ、次の 2 つのパートからなります。
S4U2self

Liberty サーバーがユーザーの代わりにそれ自体へのサービス・チケットを取得できるようにします。これは、Liberty でサポートされる任意の形式の認証で使用できます。 S4U2self は、「Kerberos プロトコル遷移」拡張機能です。

S4U2proxy

Liberty サーバーがユーザーの代わりにトラステッド・サービスへのサービス・チケットを取得できるようにします。これらのサービス・チケットは、 Liberty サービスへのユーザーのサービス・チケットを使用して取得されます。サービスは、Kerberos 鍵配布センター (KDC) 管理者によって制約されます。 S4U2proxy は、「Kerberos 制約付き委任」拡張機能です。

制約付き委任フィーチャーは、.NET サーバーやその他の Liberty サーバーなど、 SPNEGO 認証をサポートするバックエンド・サービス向けのアウトバウンド SPNEGO トークンを作成するために、以下の API を提供します。
  • S4U2self API: com.ibm.websphere.security.s4u2proxy.SpnegoHelper.buildS4U2proxyAuthorizationUsingS4U2self()
  • S4U2proxy API: com.ibm.websphere.security.s4u2proxy.SpnegoHelper.buildS4U2proxyAuthorization()

以下の手順で使用されているシステム・セットアップ例は、『Liberty での SPNEGO 認証の構成』で使用され、『SPNEGO Web 認証を使用した HTTP 要求のシングル・サインオン』に図示されているものと同じです。

手順

  1. Microsoft ドメイン・コントローラー myAdMachine.example.com で、 着信 SPNEGO トークンを検証するために使用するサービス・プリンシパル名 (SPN) を更新します。例えば、 HTTP/myLibertyMachine.example.com SPN を次のように更新します。
    1. S4U2self を使用するには、以下のステップを実行します。
      1. 委任 SPN にマップされたユーザー・アカウントを開きます。
      2. 「属性エディター」タブを開きます。
      3. userAccountControl プロパティーを次のように変更します。
        • 認証委任用に信頼される (0x1000000 または TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION enum) は true でなければなりません。
      4. トラステッド・サービスを設定します。
        • ユーザー・アカウントの「委任」タブを開きます。
        • 「指定されたサービスへの委任でのみこのユーザーを信頼する」ラジオ・ボタンを選択します。
        • 「任意の認証プロトコルを使う」ラジオ・ボタンを選択します。
        • トラステッド・サービスを追加するため、「追加」をクリックします。
        • 「ユーザーとコンピューター」をクリックします。
        • トラステッド・サービスに使用する SPN を入力します。
        • 「名前の確認」をクリックし、適切なオブジェクト名が検出されたことを検証します。
        • 「OK」をクリックします。
        • 「指定された SPN (SPN specified)」を選択して、「OK」をクリックします。
    2. S4U2proxy を使用するには、以下のステップを実行します。
      1. 委任 SPN にマップされたユーザー・アカウントを開きます。
      2. 「属性エディター」タブを開きます。
      3. userAccountControl プロパティーを次のように変更します。
        • 認証委任用に信頼される (0x1000000 または TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION enum) は true でなければなりません。
      4. トラステッド・サービスを設定します。
        • ユーザー・アカウントの「委任」タブを開きます。
        • 「指定されたサービスへの委任でのみこのユーザーを信頼する」ラジオ・ボタンを選択します。
        • トラステッド・サービスを追加するため、「追加」をクリックします。
        • 「ユーザーとコンピューター」をクリックします。
        • トラステッド・サービスに使用する SPN を入力します。
        • 「名前の確認」をクリックし、適切なオブジェクト名が検出されたことを検証します。
        • 「OK」をクリックします。
        • 「指定された SPN (SPN specified)」を選択して、「OK」をクリックします。
  2. Liberty サーバー・マシン (myLibertyMachine.example.com) の server.xml ファイルで、 featureManagerconstrianedDelegation-1.0 を追加することによって制約付き委任フィーチャーを有効にし、 JAAS Kerberos ログイン・モジュールを構成します。
    <featureManager>
            <feature>spnego-1.0</feature>
            <feature>contrainedDelegation-1.0</feature>
            ...
    </featuremanager>
    <jaasLoginContextEntry id="com.ibm.security.jgss.krb5.accept" name="com.ibm.security.jgss.krb5.accept" loginModuleRef="useKeytab" />
    	 <jaasLoginModule id="useKeytab" className="com.ibm.security.auth.module.Krb5LoginModule" controlFlag="REQUIRED" libraryRef="jaasSharedLib">
                    <options 
                            credsType="both"
                            debug="true" 
                            useDefaultCcache="false"
                            tryFirstPass="true"
                            forwardable ="true"                    
                            principal="HTTP/myLibertyMachine.example.com"
                            useKeytab="${server.config.dir}/resources/security/kerberos/krb5.keytab">
                    </options>		 		 		 		  
            </jaasLoginModule>
    
    
    <library id="jaasSharedLib" apiTypeVisibility="spec, ibm-api, api">
          <fileset dir="${server.config.dir}/lib/global/" includes="*" />
    </library>
    constrainedDelegation-1.0 フィーチャーが有効になっていると、以下の構成が暗黙指定されます。
    <constrainedDelegation id="defaultConstrainedDelegation" s4U2selfEnabled="false" />
    S4U2self を使用するには、 server.xml ファイルに以下の構成が必要です。
    <constrainedDelegation s4U2selfEnabled = "true" id="defaultConstrainedDelegation"/>
    注: S4U2proxy API を使用する場合、jaasLoginContextEntry の id および name と com.ibm.security.jgss.krb5.accept は変更できません。
    注: デフォルトでは、 S4U2proxy が有効になり、S4U2self が無効になります。server.xml ファイル内の s4U2selfEnabled 属性を変更することによって、 S4U2self 拡張機能を有効または無効にすることができます。

タスクの結果

アプリケーションは制約付き委任フィーチャーによって提供される API を呼び出す準備ができました。

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



タイム・スタンプ・アイコン 最終更新: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_config_kerb_constrained_del
ファイル名: twlp_config_kerb_constrained_del.html