次の方法で共有


AD FS のトラブルシューティング: 統合 Windows 認証

統合 Windows 認証を使用すると、ユーザーは自分の Windows 資格情報でサインインし、Kerberos または NTLM を使用してシングル サインオン (SSO) を体験できます。

統合 Windows 認証が失敗する理由

統合 Windows 認証が失敗する主な理由は 3 つあります。

  • サービス プリンシパル名 (SPN) の構成ミス
  • チャネル バインド トークン
  • Internet Explorer の構成

SPN misconfiguration

SPN は、サービス インスタンスの一意の識別子です。 Kerberos 認証では、SPN を使用してサービス インスタンスをサービス サインオン アカウントに関連付けます。 この構成により、クライアント アプリケーションは、クライアントにアカウント名がない場合でも、アカウントの認証をサービスに要求できます。

AD FS で SPN を使用する方法の例を次に示します。

  • Web ブラウザーは Microsoft Entra に問い合わせ、 sts.contoso.com実行されているサービス アカウントを特定します。
  • Microsoft Entra は、それが AD FS サービス アカウントであることをブラウザーに通知します。
  • ブラウザーは、AD FS サービス アカウントの Kerberos チケットを取得します。

正しく構成されていない、または間違った SPN を持つ AD FS サービス アカウントでは、問題が発生する可能性があります。 ネットワーク トレースを見ると、 KRB Error: KRB5KDC_ERR_S_PRINCIPAL_UNKNOWNなどのエラーが表示されることがあります。

ネットワーク トレース (Wireshark など) を使用すると、ブラウザーが解決しようとしている SPN を特定できます。 その後、コマンド ライン ツールを使用して、その SPN を setspn - Q \<spn>し、検索を実行できます。 見つからないか、AD FS サービス アカウント以外の別のアカウントに割り当てられている可能性があります。

コマンド プロンプト ウィンドウを示すスクリーンショット。

SPN を確認するには、AD FS サービス アカウントのプロパティを確認します。

サービス プリンシパル名の値が呼び出されたことを示す [A D F S サービス アカウントのプロパティ] ダイアログの [属性エディター] タブを示すスクリーンショット。

チャネル バインド トークン

現在、クライアント アプリケーションが HTTPS を使用して Kerberos、Digest、または NTLM を使用してサーバーに対して自身を認証すると、トランスポート層セキュリティ (TLS) チャネルが最初に確立されます。 認証は、このチャネルを使用して行われます。

チャネル バインド トークンは、TLS で保護された外部チャネルのプロパティです。 これは、クライアント認証された内部チャネルを介して外部チャネルを会話にバインドするために使用されます。

中間者攻撃が発生し、SSL トラフィックが復号化および再暗号化された場合、キーは一致しません。 AD FS は、Web ブラウザーとそれ自体の間に何かが置かれていると判断します。 Kerberos 認証が失敗し、SSO エクスペリエンスではなく 401 ダイアログが表示されます。

この問題は、次の原因で発生する可能性があります。

  • ブラウザーと AD FS の間にあるもの
  • Fiddler
  • Secure Sockets Layer (SSL) ブリッジングを実行するリバース プロキシ

既定では、AD FS の設定は Allow。 この設定を変更するには、PowerShell コマンドレット Set-ADFSProperties -ExtendedProtectionTokenCheck Noneを使用します。

詳細については、「 AD FS の安全な計画とデプロイのベスト プラクティス」を参照してください。

Internet Explorer の構成

Note

Chrome を使用している場合は、Windows 統合認証でサポートされているユーザー エージェントの一覧に追加します。

既定では、Internet Explorer は次のように動作します。

  • Internet Explorer は、ヘッダーに NEGOTIATE という単語を含む 401 応答を AD FS から受信します。 この単語は、AD FS に返送する Kerberos または NTLM チケットを取得するように Web ブラウザーに指示します。
  • 既定では、NEGOTIATE という単語がヘッダーにある場合、Internet Explorer はユーザー操作なしでこのタスク (SPNEGO) を実行しようとします。 イントラネット サイトでのみ機能します。

この状況が発生するのを防ぐには、主に次の 2 つがあります。

  • Internet Explorer のプロパティで 、[統合 Windows 認証を有効にする ] チェック ボックスがオンになっていません。 This option is located under Security>Advanced>Internet Options.

    [統合 Windows 認証を有効にする] オプションが選択されている [インターネット オプション] ダイアログの [詳細設定] タブを示すスクリーンショット。

  • セキュリティ ゾーンが正しく構成されていません。

    • 完全修飾ドメイン名はイントラネット ゾーンにありません。

    • AD FS URL がイントラネット ゾーンにありません。

      [インターネット オプション] ダイアログの前にある [ローカル イントラネット] ウィンドウを示すスクリーンショット。