イベントとログを使用した Active Directory フェデレーション サービス (AD FS) のトラブルシューティング

Active Directory フェデレーション サービス (AD FS) には、トラブルシューティングに使用できる 2 つのプライマリ ログがあります。 これらは次のとおりです。

  • 管理者ログ。
  • Tracelog。

管理者ログを表示する

管理者ログには、発生している問題に関する概要情報が提供され、既定で有効になっています。 管理者ログを表示するには、次のようにします。

  1. イベント ビューアーを開きます。

  2. アプリケーションとサービス ログを拡張します。

  3. AD FS を展開します。

  4. 管理 を選択します。

    Screenshot of the Event Viewer with the Admin option called out.

Tracelog を使用する

Tracelog は、詳細なメッセージが記録される場所であり、トラブルシューティングを行うときに最も役に立つログです。 短い時間で大量の Tracelog 情報が生成される可能性があり、システムのパフォーマンスに影響を与える可能性があるため、既定ではログは無効になっています。

Tracelog を有効にして表示する

  1. イベント ビューアーを開き、[アプリケーションとサービス ログ] を展開します。

  2. [アプリケーションとサービス ログ] を右クリックし、[表示] を選択します。 [分析およびデバッグ ログの表示] を選びます。 このウィンドウには、より多くのノードが表示されます。

    Screenshot of the Event Viewer showing that the user right-clicked Applications and Services Log and selected View with the Show Analytic and Debug Logs option called out.

  3. [AD FS Tracing] (AD FS トレース) を展開します。

  4. [デバッグ] を右クリックして、[ログを有効にする] を選びます。

    Screenshot of the Event Viewer showing that the user right-clicked Debug with the Enable Log option called out.

Windows Server 2016 の AD FS に関するイベント監査情報

既定では、Windows Server 2016 の AD FS では、基本レベルの監査が有効になっています。 基本的な監査では、管理者に表示されるイベントは、1 つの要求に対して 5 つ以下です。 この情報により、1 つの要求を調べるために管理者が確認する必要があるイベントの数が大幅に減少します。 PowerShell コマンドレットを使用して、監査レベルを上げたり下げたりできます。

Set-AdfsProperties -AuditLevel

次の表で、使用可能な監査レベルについて説明します。

監査レベル PowerShell 構文 説明
なし Set-AdfsProperties -AuditLevel None 監査は無効になり、イベントがログに記録されません。
基本 (既定) Set-AdfsProperties -AuditLevel Basic 1 つの要求に対してログされるイベントは 5 つ以下です。
"詳細" Set-AdfsProperties -AuditLevel Verbose すべてのイベントがログに記録されます。 このレベルでは、要求ごとに大量の情報がログされます。

現在の監査レベルを表示するには、PowerShell コマンドレット Get-AdfsProperties を使用します。

Screenshot of the PowerShell window showing the results of the Get-AdfsProperties cmdlet with the Audit Level property called out.

PowerShell コマンドレット Set-AdfsProperties -AuditLevel を使用して、監査レベルを上げたり下げたりできます。

Screenshot of the PowerShell window showing the Set-AdfsProperties -AuditLevel Verbose cmdlet typed in the command prompt.

イベントの種類

AD FS によって処理されたさまざまな種類の要求に基づいて、AD FS イベントの種類を変えることができます。 各種類のイベントには、特定のデータが関連付けられています。 イベントの種類は、ログイン要求とシステム要求の間で区別できます。 ログイン要求はトークン要求の場合があり、システム要求はサーバー間の呼び出し (構成情報のフェッチを含む) である可能性があります。

次の表で、イベントの基本的な種類について説明します。

イベントの種類 イベント ID 説明
新しい資格情報の検証の成功 1202 要求でフェデレーション サービスが新しい資格情報を正常に検証しました。 このイベントには、WS-Trust、WS-Federation、SAML-P (SSO の生成の最初のレッグ) と OAuth 認可エンドポイントが含まれます。
新しい資格情報の検証エラー 1203 フェデレーション サービスで新しい資格情報の検証が失敗した要求。 このイベントには、WS-Trust、WS-Fed、SAML-P (SSO の生成の最初のレッグ) と OAuth 認可エンドポイントが含まれます。
アプリケーション トークンの成功 1200 要求でフェデレーション サービスがセキュリティ トークンを正常に発行しました。 WS-Federation と SAML-P の場合、要求が SSO アーティファクト (SSO Cookie など) を使用して処理されると、このイベントがログに記録されます。
アプリケーション トークンの失敗 1201 フェデレーション サービスでセキュリティ トークンの発行が失敗した要求。 WS-Federation と SAML-P の場合、要求が SSO アーティファクト (SSO Cookie など) を使用して処理されると、このイベントがログに記録されます。
パスワード変更リクエストの成功 1204 フェデレーション サービスによりパスワード変更要求が正常に処理されたトランザクション。
パスワード変更リクエストのエラー 1205 フェデレーション サービスによりパスワード変更要求の処理が失敗したトランザクション。
サインアウト成功 1206 サインアウト要求の成功について記述します。
サインアウトの失敗 1207 失敗したサインアウト要求について記述します。

セキュリティ監査

AD FS サービス アカウントのセキュリティ監査は、パスワードの更新、要求と応答のログ、要求コンテンツ ヘッダー、デバイスの登録結果に関する問題を追跡するときに役立つ場合があります。 AD FS サービス アカウントの監査は、既定では無効になっています。

セキュリティ監査を有効にする

  1. [スタート] を選択します。 次に、[プログラム]>[管理ツール] に移動し、[ローカル セキュリティ ポリシー] を選択します。

  2. [セキュリティの設定]、[ローカル ポリシー]、[ユーザー権利の割り当て] フォルダーに移動し、[セキュリティ監査の生成] をダブルクリックします。

  3. [ローカル セキュリティの設定] タブで、AD FS サービス アカウントが表示されていることを確認します。 存在しない場合は、[ユーザーまたはグループの追加] を選んで一覧に追加します。 [OK] をクリックします。

  4. 昇格された特権でコマンド プロンプトを開き、次のコマンドを実行して監査を有効にします。auditpol.exe /set /subcategory:"Application Generated" /failure:enable /success:enable

  5. ローカル セキュリティ ポリシーを閉じて、AD FS 管理スナップインを開きます。

  6. AD FS 管理スナップインを開くには、[スタート] を選択します。 [プログラム]>[管理ツール] に移動し、[AD FS 管理] を選択します。

  7. 操作ペインで、 [フェデレーション サービス プロパティの編集] を選択します。

  8. [フェデレーション サービス プロパティ] ダイアログ ボックスの [イベント] タブを選択します。

  9. [成功の監査] チェック ボックスと [失敗の監査] チェック ボックスをオンにします。

  10. [OK] を選択します。

    Screenshot of the Events tab of the Federation Service Properties dialog box showing that the Success audits and Failure audits options are selected.

Note

前の手順は、AD FS がスタンドアロン メンバー サーバーにある場合にのみ使用されます。 ドメイン コントローラー上で AD FS が実行されている場合は、ローカル セキュリティ ポリシーではなく、[グループ ポリシーの管理]、[フォレスト]、[ドメイン]、[ドメイン コントローラー] にある [既定のドメイン コントローラー ポリシー] を使用します。 [編集] を選択して、Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\User Rights Management に移動します。

Windows Communication Foundation と Windows Identity Foundation のメッセージ

トレース ログに加えて、問題のトラブルシューティングを行うために、Windows Communication Foundation (WCF) および Windows Identity Foundation (WIF) のメッセージを確認する必要がある場合があります。 これらのメッセージを表示するには、AD FS サーバー上の Microsoft.IdentityServer.ServiceHost.Exe.Config ファイルを変更します。

このファイルは<%system root%>\Windows\ADFS にあり、XML 形式です。 ファイルの関連部分を次のサンプルに示します。

<!-- To enable WIF tracing, change the following switchValue to the desired trace level - Verbose, Information, Warning, Error, Critical -->

<source name="Microsoft.IdentityModel" switchValue="Off"> … </source>

<!-- To enable WCF tracing, change the following switchValue to the desired trace level - Verbose, Information, Warning, Error, Critical -->

<source name="System.ServiceModel" switchValue="Off" > … </source>

これらの変更を適用した後、構成を保存し、AD FS サービスを再起動します。 適切なスイッチを設定してこれらのトレースを有効にすると、Windows イベント ビューアーの AD FS Tracelog に表示されます。

イベントの関連付け

トラブルシューティングを行うときに最も難しいことの 1 つは、大量のエラーまたはデバッグ イベントを生成するアクセスの問題です。

これを支援するために、AD FS では、管理者ログとデバッグ ログの両方で、イベント ビューアーに記録されたすべてイベントを相関付けています。 これらの各ログは、アクティビティ ID と呼ばれる一意のグローバル一意識別子 (GUID) を使用して、特定の要求に対応しています。 AD FS は、パッシブ リクエスタ プロファイルを使用するアプリケーションの Web アプリケーションにトークン発行要求を提示するときに、この ID を生成します。 AD FS は、WS-Trust を使用するアプリケーションのクレーム プロバイダーに直接要求を送信するときにも ID を生成します。

Screenshot of the Details tab of the event Properties dialog box with the ActivityID value called out.

このアクティビティ ID は、要求の期間全体にわたって同じままであり、その要求についてイベント ビューアーに記録されるすべてのイベントの一部として記録されます。 これは、以下を意味します。

  • このアクティビティ ID を使用してイベント ビューアーをフィルター処理または検索すると、トークン要求に対応するすべての関連イベントを追跡するのに役立ちます。
  • 同じアクティビティ ID が異なるコンピューターに記録されます。これにより、フェデレーション サーバー プロキシ (FSP) などの複数のコンピューター間のユーザー要求のトラブルシューティングを行うことができます。
  • このアクティビティ ID は、AD FS 要求が何らかの理由で失敗した場合にもユーザーのブラウザーに表示されるため、ユーザーはこの ID をヘルプデスクまたは IT サポートに伝えることができます。

Screenshot of the Details tab of the event Properties dialog box with the client request ID value called out.

トラブルシューティング プロセスを支援するために、AD FS サーバーでトークン発行プロセスが失敗するたびに、AD FS では呼び出し元 ID イベントもログに記録します。 このイベントには、この情報がトークン要求の一部としてフェデレーション サービスに渡されたと仮定した場合の、次のいずれかの要求の種類と値が含まれます:

  • https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountnameh
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upnh
  • https://schemas.microsoft.com/ws/2008/06/identity/claims/upn
  • http://schemas.xmlsoap.org/claims/UPN
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressh
  • https://schemas.microsoft.com/ws/2008/06/identity/claims/emailaddress
  • http://schemas.xmlsoap.org/claims/EmailAddress
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
  • https://schemas.microsoft.com/ws/2008/06/identity/claims/name
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier

呼び出し元 ID イベントは、アクティビティ ID をログに記録して、特定の要求のイベントログをフィルター処理または検索するためにアクティビティ ID を使用できるようにします。

次の手順