次の方法で共有


Kerberos の制約付き委任に関する問題のトラブルシューティング

Von Bedeutung

この記事の手順を使用する前に、Kerberos のトラブルシューティング チェックリストの手順に従ってください。 Kerberos の問題の最も一般的な原因は、インフラストラクチャの問題とサービス プリンシパル名 (SPN) の問題です。 チェックリストは、このような問題を特定するのに役立ちます。

ターゲット サービスに個別のフロントエンド コンポーネントとバックエンド コンポーネントがある場合、Kerberos はクライアント資格情報 (アクセス許可を含む) をサービス アカウントに委任できます。 簡単に言うと、最初にクライアントがフロントエンド サービスにアクセスし、次にフロントエンド サービスがクライアントの代わりにバックエンド サービスにアクセスします。 制約付き委任の場合、フロントエンド サービスは、クライアントの代わりにアクセスできるサービスの一覧を保持します。

構成の詳細は、フロントエンド サービスが使用するアカウントの種類によって異なります。 この記事では、さまざまな種類のサービス アカウントに対して個別の手順について説明します。

組み込みのサービス アカウントを使用している場合の Kerberos の制約付き委任のトラブルシューティング

ローカル コンピューターのコンピューター アカウントなど、組み込みアカウントのセキュリティ コンテキストでフロントエンド サービスが実行される場合は、次の手順に従います。 また、ローカル システムやネットワーク サービスなど、コンピューター アカウントに関連するセキュリティ コンテキストのいずれかでフロントエンド サービスが実行される場合は、次の手順に従います。

手順 1: トポロジの種類を確認する

制約付き委任を使用するには、フロントエンド サービスとバックエンド サービスが同じドメインに属している必要があります。 これらのサービスが異なるドメインまたは異なる信頼されたフォレストにある場合は、代わりにリソース ベースの制約付き委任 (RBCD) を使用する必要があります。 詳細については、「 Kerberos 認証のトラブルシューティング ガイダンス: サポートされているトポロジの種類」を参照してください。

手順 2. コンピューター アカウントの委任設定を確認する

次の手順では、Active Directory ユーザーとコンピューター ([サーバー マネージャー ツール] メニューで使用可能) を使用します。

  1. Active Directory ユーザーとコンピューターで、[コンピューター] を選択 します。 フロントエンド コンピューターのアカウントを右クリックし、[プロパティ] >[委任] を選択します。
  2. [指定したサービスへの委任に対してのみこのユーザーを信頼する] が選択されていることを確認します。
  3. 選択されている認証オプションが、Web サービスにアクセスするユーザーに適していることを確認します。
  4. サービスの一覧にバックエンド サービス (またはバックエンド サーバーの HOST などの共通サービス クラス) が含まれていることを確認します。 必要に応じて、[ 追加] を選択してサービスを一覧に追加します。
  5. [OK] を選択.

手順 3. IIS で、アプリケーション プールの構成を確認します

インターネット インフォメーション サービス (IIS) ツール ([サーバー マネージャー ツール ] メニューで使用可能) を使用して、アプリケーション プールの設定を確認します。

  1. IIS コンソールで、IIS サーバーを展開し、[ アプリケーション プール] を選択します。 右側のウィンドウで、 DefaultAppPool を右クリックし、[ 詳細設定] を選択します。
  2. プロセス モデル>Identity を選択します。 組み込みアカウントが選択されていること、および適切な組み込みアカウント (NetworkService など) が選択されていることを確認します。 [ OK] を 選択してプロパティの一覧に戻ります。
  3. [ ユーザー プロファイルの読み込み][True] に設定されていることを確認します。 [ OK] を 選択してプロパティの一覧を閉じます。
  4. 設定を変更した場合は、IIS サービスを再起動します。
  5. もう一度認証してみてください。

カスタム サービス アカウントを使用する場合の Kerberos 制約付き委任のトラブルシューティング

フロントエンド サービスがカスタム アカウントのセキュリティ コンテキストで実行される場合は、次の手順に従います。

手順 1: トポロジの種類を確認する

制約付き委任を使用するには、フロントエンド サービスとバックエンド サービスが同じドメインに属している必要があります。 これらのサービスが異なるドメインまたは異なる信頼されたフォレストにある場合は、代わりにリソース ベースの制約付き委任 (RBCD) を使用する必要があります。 詳細については、「 Kerberos 認証のトラブルシューティング ガイダンス: サポートされているトポロジの種類」を参照してください。

手順 2. サービス アカウントのアクセス許可を確認する

サービス アカウントが、Web サーバー上のローカル管理者またはIIS_Users グループのいずれかに含まれていることを確認します。

手順 3. サービス アカウントの委任設定を確認する

次の手順では、 Active Directory ユーザーとコンピューター ([サーバー マネージャー ツール] メニューで使用可能) を使用します。

  1. Active Directory ユーザーとコンピューターで、サービス アカウント (通常は Users コンテナー内) を右クリックし、プロパティ>Delegation を選択します。
  2. [指定したサービスへの委任に対してのみこのユーザーを信頼する] が選択されていることを確認します。
  3. 選択されている認証オプションが、Web サービスにアクセスするユーザーに適していることを確認します。
  4. サービスの一覧にバックエンド サービス (またはバックエンド サーバーの HOST などの共通サービス クラス) が含まれていることを確認します。 必要に応じて、[ 追加] を選択してサービスを一覧に追加します。
  5. [ アカウント] を選択し、[ アカウント オプション ] の設定を確認します。 アカウントが機密で委任不可が選択されていないことを確認します。
  6. [OK] を選択.

手順 4. フロントエンド サーバーのコンピューター アカウントの委任構成を確認する

カスタム サービス アカウントに加えて、フロントエンド サーバーのコンピューター アカウントも委任用に構成する必要があります。

  1. [Active Directory ユーザーとコンピューター] で、[コンピューター] を選択し、フロントエンド コンピューターのアカウントを右クリックし、[プロパティ] の [委任] を選択します。
  2. 指定したサービスへの委任に対してのみこのユーザーを信頼するが選択されていることと、下位オプションである [任意の認証プロトコルを使用する] も選択されていることを確認します。
  3. サービスの一覧にバックエンド サービス (またはバックエンド サーバーの HOST などの共通サービス クラス) が含まれていることを確認します。 必要に応じて、[ 追加] を選択してサービスを一覧に追加します。
  4. [OK] を選択.

ステップ 5. IIS で、アプリケーション プールの構成を確認します

インターネット インフォメーション サービス (IIS) ツール ([サーバー マネージャー ツール ] メニューで使用可能) を使用して、アプリケーション プールの設定を確認します。

  1. IIS コンソールで、IIS サーバーを展開し、[ アプリケーション プール] を選択します。 右側のウィンドウで、 DefaultAppPool を右クリックし、[ 詳細設定] を選択します。
  2. プロセス モデル>Identity を選択します。 [カスタム アカウント] が選択され、サービス アカウントが選択されていることを確認します。 [ OK] を 選択してプロパティの一覧に戻ります。
  3. [ ユーザー プロファイルの読み込み][True] に設定されていることを確認します。 [ OK] を 選択してプロパティの一覧を閉じます。
  4. IIS サービスを再起動します。
  5. もう一度認証してみてください。