Kerberos 構成の前提条件

以下は、 Kerberos/SPNEGO SSO を構成する前に完了しておく必要がある前提条件です。

Kerberos/SPNEGO SSO の暗号化

Kerberos には、使用される暗号化アルゴリズムに関する制約事項はありません。 Kerberos 構成ファイル、 Kerberos キータブ・ファイル、 Kerberos SPN、および Kerberos クライアントに共通の暗号化タイプがあることを確認します。

例えば、 Kerberos クライアントが RC4-HMAC 暗号化を使用する場合、ターゲット・サーバーは RC4-HMAC 暗号化もサポートする必要があります。 また、 Kerberos 構成ファイルでは、 RC4-HMAC を default_tgt_enctypes パラメーターと default_tkt_enctypes パラメーターの先頭にリストする必要があります。

Microsoft ® Active Directory は、以下の暗号化をサポートしています。
  • DES-CBC-CRC-互換性のために使用
  • DES-CBC-MD5 -MIT 実装により密接に対応し、互換性のために使用されます。
  • RC4-HMAC -128 ビット暗号化を使用します。
  • AES256-SHA1 - AES256-CTS-HMAC-SHA1-96 暗号化を採用します。
  • AES128-SHA1 - AES128-CTS-HMAC-SHA1-96 暗号化を採用します。

Microsoft® Active Directory ( LDAP で構成済み)

Kerberos/SPNEGO 認証には、鍵配布センター (KDC) と認証サーバーが必要です。

IBM® Engineering Lifecycle Management は、 Microsoft Windows Server システム上でのみ実行される Microsoft ® Active Directory ドメイン・コントローラーを使用したデプロイメントをサポートします。 それぞれの Active Directory ドメイン・コントローラーは、Kerberos KDC および認証サーバーとして機能します。 Active Directory は、LDAP サーバーとしても機能します。

Engineering Lifecycle Management サーバーは Kerberos ドメインの一部でなければなりません。

Engineering Lifecycle Management アプリケーションを SPNEGO で実行するには、そのアプリケーションをホストするサーバーが Kerberos ドメインの一部である必要があります。

多くの場合、デプロイメントには、信頼関係を持つ複数の Microsoft Active Directory ドメイン・コントローラーが存在します。 通常、これらの信頼関係は双方向であり、Kerberos フォレストの内部と外部の両方で構成できます。

標準的なデプロイメントでは、 WebSphere® Liberty サーバー ・サーバーは 1 つのドメイン・コントローラー上で構成され、クライアント・コンピューターは別のドメイン・コントローラー上で構成されます。 信頼関係を使用すると、ブラウザー・クライアントおよびリッチ・クライアントは、クロスレルム認証を使用して、 WebSphere Liberty サーバー上で実行されている Engineering Lifecycle Management アプリケーションにアクセスできます。 複数の Active Directory ドメイン コントローラーの展開に関する詳細については、 「ドメインとフォレストの信頼の管理」 を参照してください。

Engineering Lifecycle Management のプリンシパル名、Keytab、および Kerberos 構成ファイル

Kerberos/SPENGO を使用して Engineering Lifecycle Management を構成するには、 Engineering Lifecycle Management Server 専用のサービス・アカウントが必要です。これは、サービス・アカウントのプリンシパル名としてパブリック URI にマップされます。 次に、サービス・アカウントに対して構成される Keytab ファイルと、 Engineering Lifecycle Management アプリケーションをホストする WebSphere Liberty サーバー ・サーバーによって使用される Kerberos 構成ファイルを作成する必要があります。

Active Directory サービス・アカウントをサービス・プリンシパル名 (SPN) にマップします。
プリンシパル名は、 Engineering Lifecycle Management サーバー用に計画されたパブリック URI と一致する必要があります。 Engineering Lifecycle Management が分散トポロジーにデプロイされている場合、パブリック URI は理想的には IBM HTTP Server または任意のリバース・プロキシーです。

SPNを作成する際に指定するホスト名は、'Engineering Lifecycle Managementの公開URIと一致する必要があります。これは、あなたのウェブサーバ(IBM HTTP Server)または'自由サーバであることを意味します。

例えば、以下のコマンドでは、 elm.example.comEngineering Lifecycle Management アプリケーションのパブリック URI として使用され、 krbelm_userという名前のドメイン・ユーザーにマップされるプリンシパル名として使用する必要があります。

C:\> setspn -a HTTP/elm.example.com krbelm_user
Registering ServicePrincipalNames for
CN=krbelm_user,CN=Users,DC=MYDOMAIN,DC=EXAMPLE,DC=COM
HTTP/elm.example.com
Updated object
Engineering Lifecycle Management の Kerberos キータブ・ファイルのパブリック URI を作成します。
Active Directory ドメイン・コントローラー・サーバー (KDC サーバー) で Microsoft ツールの ktpass コマンドを使用するキータブ・ファイルを生成します。

このコマンドの例では、ホスト名は elm.example.com で、ドメイン・コントローラー・ホストは myAd.example.comです。 ドメイン・コントローラー名は mydomain.example.com で、 Kerberos レルム名は MYDOMAIN.EXAMPLE.COMです。これは、すべて大文字のドメイン・コントローラー名です。

C:\> ktpass -out krb5.keytab -princ
HTTP/elm.example.com@MYDOMAIN.EXAMPLE.COM -mapUser krbelm_user -mapOp set -
pass security -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL
Targeting domain controller myAd.MYDOMAIN.EXAMPLE.COM
Using legacy password setting method
Successfully mapped HTTP/elm.example.com to krbelm_user.
Key created.
Output keytab to krb5.keytab:
Keytab version: 0x502
keysize 107 HTTP/elm.example.com@MYDOMAIN.EXAMPLE.COM ptype
1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x12 (AES256-SHA1) keylength
32(0x148d643db283327d3f3d44547da67gj688hh668cade)
Kerberos 構成ファイルを作成します。
Kerberosコンフィギュレーション・ファイルには、クライアント・コンフィギュレーション情報が含まれている。 この情報には、対象レルムのKDCの場所、現在のKerberosレルムのデフォルト、Kerberosレルムへのホスト名のマッピングが含まれる。 Libertyサーバーの場合は、このファイルを手動で作成する必要があります。
  • default_realm: クライアントの Kerberos レルムを識別します (すべて大文字)。
  • default_keytab_name: Kerberos キータブ・ファイルのファイル・システム・ロケーションを指定します。
  • default_tgs_enctypes: TGS-REQ の作成時にクライアントが要求する必要があるセッション鍵暗号化タイプのサポートされるリストを識別します。
  • default_tkt_enctypes: AS-REQ の作成時にクライアントが要求する必要があるセッション鍵暗号化タイプのサポートされるリストを識別します。
  • kdc: このレルムおよびポート番号の Kerberos 鍵配布センター (KDC) のホスト名のリストを指定します。
  • domain_realm: このセクションでは、ドメイン・ネームまたはホスト名から Kerberos レルム名への変換を行います。
[libdefaults]
    default_realm = MYDOMAIN.EXAMPLE.COM
    default_keytab_name = FILE:C:\krb5.keytab
    default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac
    default_tas_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac
    forwardable = true
    renewable = true
    noaddresses = true
    clockskew = 300
[realms]
    MYDOMAIN.EXAMPLE.COM = {
       kdc = maAd.example.com:88
       default_domain = example.com
    }
[domain_realm]
    .example.com = MYDOMAIN.EXAMPLE.COM
注: キータブと構成ファイルは、 Engineering Lifecycle Management アプリケーションをホストしているすべてのサーバーにコピーしてください。