Kerberos 認証の設定

Kerberos 認証は、クライアントとサーバのホスト環境に応じて、さまざまな設定シナリオをサポートします。各シナリオは、わずかに異なりますが、Kerberos 認証を実装するには、管理者が以下のタスクを実行する必要があります。
casso1283
Kerberos 認証は、クライアントとサーバのホスト環境に応じて、さまざまな設定シナリオをサポートします。各シナリオは、わずかに異なりますが、Kerberos 認証を実装するには、管理者が以下のタスクを実行する必要があります。
  1. Key Distribution Center (KDC)の設定
  2. Kerberos 認証用のポリシー サーバの設定
  3. Kerberos 認証用の Web エージェントの設定
  4. Kerberos 設定ファイルの作成
  5. Kerberos 認証情報を送信するためのブラウザの有効化
  6. (オプション)UNIX KDC およびレルムに通信するための Windows ホストの有効化
以下のセクションでは、KDC のセットアップ方法について説明します。
3
Kerberos 認証用の Key Distribution Center (KDC)の設定
Key Distribution Center (KDC)は、ネットワーク サービスです。特に、KDC は、ユーザとサービスを認証する認証サービス(AS)、およびサービスにアクセスするためのチケットを発行するチケット交付サービス(TGS)を提供します。Active Directory は、KDC として使用できるサービスの例です。サービスおよびアプリケーションをホストするサーバは、クライアントから Kerberos 認証リクエストを受け取るエンドポイントです。
以下の図は、Kerberos のトランザクションの概要を示しています。
Kerberos 環境
Kerberos Environment
  1. クライアントは認証サービスにリクエストを送信し、認証されます。
  2. 認証サービスは、TGS に対するチケットに応答します。
  3. クライアントは、特定のサーバ用のチケットをリクエストします。
  4. TGS は、適切なチケットと共にレスポンスを返します。
  5. クライアントは、サーバ ホストからサービスをリクエストします。
  6. サービスが応答し、アクセスが許可されます。
KDC 設定のサンプル データ
Windows および UNIX で KDC を設定する手順では、以下のサンプル サーバおよびアカウント名を使用します。
サーバ
名前
Active Directory ドメイン
例(これは Web ドメインではなく、AD ドメインです)
Kerberos レルム
EXAMPLE.COM
KDC (例: Active Directory コントローラ、または UNIX KDC)
kdc.example.com
ポリシー サーバ
pserver.example.com
ポリシー サーバ サービス プリンシパル名
HTTP サービスをホストする Web サーバ
webagentname.example.com
Web エージェントのサービス プリンシパル名
重要:
サービス プリンシパル名(SPN)では大文字と小文字が区別され、以下の形式に従う必要があります。
service_type
/
fqdn
_service
_host_name
@
KERBEROS
_
REALM
。ホスト名は小文字で、Kerberos レルム名は大文字で指定します。
アカウント
名前
ユーザ アカウント
testkrb
ポリシー サーバ サービス アカウント
krbsvc-smps
Web エージェント サービス アカウント
krbsvc-smwa
Kerberos の規則では、ホスト ドメイン名を Kerberos レルム名と同じにします。唯一の違いは、レルムはすべて大文字であることです。上記の表では、ドメイン
example.com
内のホストは Kerberos レルム
EXAMPLE.COM
内にあります。
Windows での KDC 設定
以下の手順では、Windows システムで KDC を設定する方法について説明します。サンプル値は、この手順全体で使用されます。
この手順では、2 つの keytab ファイルを作成します。Kerberos 認証には keytab ファイルが必要です。このファイルによって、サービス アカウントは、パスワードの入力を促されることなく、KDC で認証できます。Windows プラットフォームでは、
ktpass
サポート ツールで keytab ファイルが作成されます。ktpass ツールは、Active Directory サーバをドメイン コントローラに昇格させた後に、使用できます。
以下の手順に従います。
  1. Windows の Active Directory ドメイン内に、ユーザ アカウント(testkrb)を作成します。このアカウントのパスワードを提供します。
    [ユーザは次回ログオン時にパスワード変更が必要]
    オプションをオフにします。Windows ワークステーションは、このアカウントを使用してドメイン example.com にログインします。
  2. ポリシー サーバのサービス アカウントを作成します(krbsvc-smps)。このアカウントのパスワードを提供します。[
    ユーザは次回ログオン時にパスワード変更が必要
    ]オプションをオフにします
  3. Web エージェント(krbsvc-smwa)のサービス アカウントを作成します。このアカウントのパスワードを提供します。[
    ユーザは次回ログオン時にパスワード変更が必要
    ]オプションをオフにします
  4. ポリシー サーバ ホスト用の keytab ファイルを作成します。keytab ファイルによって、ポリシー サーバ サービス アカウント(krbsvc-smps)がポリシー サーバ サービス プリンシパル名(smps/[email protected])に関連付けられます。
    keytab ファイルを作成するには、以下の ktpass コマンドを入力します。
    ktpass -out c:\krbsvc-smps.keytab -princ smps/[email protected] -ptype KRB5_NT_PRINCIPAL
    -mapuser EXAMPLE\krbsvc-smps -mapOp set -pass "*"
    パスワードは、ポリシー サーバ用のサービス アカウントを作成する際に使用されるものと同じです。
    Kerberos サービス タイプは通常すべて大文字で指定されますが、
    smps
    サービス タイプは小文字である必要があります。
  5. Web エージェント用の keytab ファイルを作成します。keytab ファイルによって、Web エージェントのサービス アカウント(krbsvc-smwa)が Web エージェントのサービス プリンシパル名(HTTP/[email protected]) と関連付けられます。
    以下の ktpass コマンドを入力します。
    ktpass -out C:\krbsvc-smwa.keytab -princ HTTP/[email protected] -ptype KRB5_NT_PRINCIPAL
    -mapuser EXAMPLE\krbsvc-smwa -mapOp set -pass "*"
    パスワードは、Web サーバ用のサービス アカウントを作成する際に使用されるものと同じです。
    キータブ ファイルのデフォルトの暗号化タイプは RC4-HMAC です。コマンド プロンプトで「
    ktpass /?
    」と入力して、タイプを確認します。
  6. 委任に対して信頼され、アカウントに委任された認証情報を表示できるように、Web エージェント サービス アカウントを設定します。Web エージェントのアカウントには、他のユーザの代行として他のネットワーク サービスを使用するための権限が必要です。委任を設定するには、Active Directory ユーザーとコンピュータ(ADUC)管理ツールを使用します。以下の手順に従います。
    1. Web エージェント サービス アカウント krbsvc-smwa を右クリックして、
      [プロパティ]
      を選択します。
    2. [委任]
      タブを選択します。
    3. [任意のサービスへの委任でこのユーザを信頼する(Kerberos のみ)]
      オプションを選択します。このオプションが使用できない場合、
      [指定されたサービスへの委任でのみこのコンピュータを信頼する]
      オプションを選択し、サービス名として「」と入力します。
Windows プラットフォーム上で KDC が設定されます。
UNIX システムでの KDC の設定
以下のプロセスでは、UNIX ホストで KDC を設定する方法を示します。この手順では、MIT Kerberos の使用を前提としています。これは、
SiteMinder
に同梱されています。
この手順では、2 つの keytab ファイルを作成します。Kerberos 認証には keytab ファイルが必要です。このファイルによって、サービス アカウントは、パスワードの入力を促されることなく、KDC で認証できます。UNIX プラットフォームでは、
ktadd
ツールを使用して、keytab ファイルが作成されます。
以下の手順に従います。
  1. Kerberos レルムをまだ作成していない場合は、以下の kdb5_util コマンドを入力します。
    kdb5_util create -r EXAMPLE.COM -s
    上記のコマンドの
    -s
    引数によって、stash ファイルが作成されます。stash ファイルおよび keytab ファイルは、潜在的なセキュリティ脆弱性ポイントです。stash ファイルをインストールする場合、それは root によってのみ読み取り可能でなければならず、バックアップされてはならず、KDC ローカル ディスクにのみ存在する必要があります。stash ファイルを望まない場合は、
    -s
    オプションなしで kdb5_util を実行します。
  2. KDC が配置されているドメイン内に、ユーザ アカウント(testkrb)を作成します。
  3. ポリシー サーバ ホストでは、以下を作成します。
    • ユーザ プリンシパル(testpskrb)
    • ポリシー サーバ サービス プリンシパル(smps/pserver.example.com)
    • ポリシー サーバ ホストのポリシー サーバ サービス アカウント(krbsvc-smps)。このアカウントのパスワードを提供します。
    サービス プリンシパル名の Kerberos レルムを指定する必要はありません。UNIX プラットフォームの場合は、それは暗示されます。
  4. ポリシー サーバ サービス プリンシパル用の keytab ファイルを作成します。以下の
    kadmin
    コマンドを入力します。
    kadmin.local -q "ktadd -k krbsvc-smps.keytab smps/[email protected]"
  5. Web サーバ ホスト上の Web エージェントについては、以下を作成します。
    • ユーザ プリンシパル名(testwakrb)
    • Web エージェントのサービス プリンシパル(HTTP/[email protected]
    • Web エージェント サービス アカウント(krbsvc-smwa)
    • Web エージェント サービス アカウントのパスワード。
  6. keytab ファイルを作成し、Web エージェントのサービス プリンシパルを keytab ファイルに追加します。以下の
    kadmin
    コマンドを入力します
    kadmin.local -q "ktadd -k krbsvc-smwa.keytab HTTP/[email protected]"
  7. それぞれが委任用に信頼され、アカウントに委任された認証情報を表示できるように、ポリシー サーバおよび Web サーバ サービス アカウントを設定します。ポリシー サーバと Web エージェントのアカウントには、他のユーザの代行として他のネットワーク サービスを使用するための権限が必要です。以下のコマンドを入力します。
    ポリシー サーバ サービス アカウント:
    kadmin.local -q "modify_principal +ok_to_auth_as_delegate smps/[email protected]"
    Web エージェント サービス アカウント:
    kadmin.local -q "modify_principal +ok_to_auth_as_delegate HTTP/www.exampl[email protected]"
KDC が UNIX ホスト上で設定されます。