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

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

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

統合 Windows 認証が失敗する主な理由は 3 つあります。 これらは、サービス プリンシパル名 (SPN) の構成の誤り、 チャネル バインド トークン、Internet Explorer 構成です。

SPN の構成の誤り

サービス プリンシパル名 (SPN) は、サービス インスタンスの一意の識別子です。 SPN は、サービス インスタンスをサービス ログオン アカウントに関連付けるために Kerberos 認証によって使用されます。 これにより、クライアント アプリケーションは、クライアントにアカウント名がなくても、サービスでアカウントを認証することを要求できます。

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

  1. Web ブラウザーから Active Directory に対し、sts.contoso.com を実行しているサービス アカウントを特定するためのクエリを実行します。
  2. Active Directory からブラウザーに、それが AD FS サービス アカウントであることが通知されます。
  3. ブラウザーでは、AD FS サービス アカウントの Kerberos チケットが取得されます。

AD FS サービス アカウントの SPN に、構成の誤りや間違いがある場合は、問題が発生する可能性があります。 ネットワーク トレースを参照すると、KRB エラー: KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN のようなエラーが表示されていることがあります。

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

Screenshot of the Command Prompt window.

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

Screenshot of the Attribute Editor tab of the A D F S Service Account Properties dialog box showing the Service Principal Name value called out.

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

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

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

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

考えられる原因を以下に示します。

  • ブラウザーと AD FS の間に介在しているもの
  • Fiddler
  • SSL ブリッジングを実行するリバース プロキシ

既定では、AD FS ではこれが "許可" に設定されています。 この設定は、PowerShell コマンドレット Set-ADFSProperties -ExtendedProtectionTokenCheck None を使用して変更できます。

この詳細については、「AD FS のセキュリティを考慮した設計と展開のベスト プラクティス」を参照してください。

Internet Explorer の構成

注意

Chrome を使用している場合は、WIA のサポート対象ユーザー エージェントの一覧に追加します。

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

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

主に 2 つのことが、この実行の妨げとなる可能性があります。

  • IE のプロパティで [統合 Windows 認証を使用する] がオンになっていない。 これは、[インターネット オプション] -> [詳細設定] -> [セキュリティ] の下に表示されます。

    Screenshot of the Advanced tab of the Internet Options dialog box with the Enable Integrated Windows Authentication option called out.

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

    • FQDN がイントラネット ゾーン内にない

    • AD FS URL がイントラネット ゾーン内にない

      Screenshot of the Local intranet window in front of the Internet Options dialog box.

次のステップ