ADFS 2.0 エラー: アクセスが拒否されました

この記事では、Active Directory フェデレーション サービス (AD FS) 2.0 エラーを修正するソリューションを提供します。

適用対象: Windows Server 2012 R2
元の KB 番号: 3044977

概要

ほとんどの AD FS 2.0 の問題は、次のメインカテゴリのいずれかに属しています。 この記事では、要求ルールの問題のトラブルシューティングを行う手順について説明します。

現象

  • AD FS サービスによって発行されたトークンには、アプリケーションへのユーザー アクセスを承認するための適切な要求がありません。

  • AD FS サーバーは、次のエラー メッセージを返します。

    アクセスが拒否されました

  • トラブルシューティング用の ADFS サーバーの構成」 トピックを使用して AD FS 監査を有効にすると、イベント ログに次のエラーが記録されます。

    イベント ID 325
    フェデレーション サービスは、呼び出し元のトークン発行を承認できませんでした。

解決方法

この問題を解決するには、次の手順を指定した順序で実行します。 これらの手順は、問題の原因を特定するのに役立ちます。 すべてのステップの後で問題が解決されるかどうかをチェックしてください。

手順 1: 必要な要求に関する詳細を取得する

  • 証明書利用者の所有者から SAML トークンに必要な要求の種類を決定します。
  • ユーザーの認証に使用されたクレーム プロバイダーを決定します。

例:

  • 証明書利用者プロバイダーは、ユーザーのEmail名前およびロールの値を指定することを示す場合があります。

  • この状況の要求プロバイダーが "Active Directory" の場合は、"Active Directory" レベルで同意要求規則を構成する必要があります。

    注:

    要求プロバイダーが別のセキュリティ トークン サービス (STS) の場合は、証明書利用者に渡される要求の種類をローカルで定義した要求の種類に格納する要求値を受け入れるために、パススルーまたは変換要求規則を作成する必要があります。

  • 証明書利用者レベルで、これらの要求のパススルー要求を作成します。

手順 2: AD FS が承認規則に基づいてトークンを拒否しているかどうかを確認する

これを行うには、証明書利用者を右クリックし、[ 要求規則の編集] をクリックし、[ 発行承認規則 ] タブをクリックします。ルール情報を調べるときは、次のガイドラインを考慮してください。

  • すべての承認要求ルールが処理されます。
  • ルールが定義されていない場合、AD FS サーバーはすべてのユーザーを拒否します。
  • 許可リストの方法は、[すべて許可] ルールを使用する代わりに使用することもできます。 この状況では、ユーザーにトークンを発行する必要がある条件を指定する一連のルールを定義します。
  • ブロックリスト アプローチでは、条件に基づく 1 つ以上の拒否ルールと共に、1 つの [すべて許可] ルールが必要です。
  • 拒否ルールは常に許可ルールをオーバーライドします。 つまり、ユーザーに対して [許可] と [拒否] の両方の要求条件が true の場合、拒否ルールが従います。
  • 他の要求値に基づいてトークンを許可または拒否する承認規則の場合、これらの要求は要求プロバイダーの信頼レベルから要求パイプラインに既にプッシュされている必要があります。

手順 3: Fiddler トレースをキャプチャする

Fiddler Web Debugger トレースをキャプチャして、AD FS サービスへの通信をキャプチャし、SAML トークンが発行されたかどうかを判断します。 SAML トークンが発行された場合は、トークンをデコードして、正しい要求セットが発行されているかどうかを判断します。

このプロセスの詳細については、「 AD FS 2.0: Fiddler Web デバッガーを使用して WS-Federation パッシブ サインインを分析する方法」を参照してください。

AD FS サービスによって発行された SAML トークンを検索するには、

  • fiddler トレースで、AD FS からの応答を確認して、AD FS サービスが MSISAuth と MSISAuthenticated Cookie を設定している場所を確認します。 または、AD FS が MSISAuth Cookie と MSISAuthenticated Cookie を設定した後で要求を確認します。
  • トークンを選択し、Fiddler で TextWizard を起動します。 RSTR (WS-Fed) の場合は URLDecode、SAML 2.0 プロトコル応答には FromDeflatedSAML を使用します。

手順 4: ADFS 監査を有効にし、トークンが発行または拒否されたかどうかを、処理中の要求の一覧と共にチェックする

AD FS イベントの監査をセキュリティ ログに記録するように AD FS サーバーを構成します。 AD FS イベントの監査をサポートするようにWindows セキュリティ ログを構成するには、次の手順に従います。

  1. [ スタート] をクリックし、[ 管理ツール] をポイントし、[ ローカル セキュリティ ポリシー] をクリックします。
  2. [ローカル ポリシー] をダブルクリックし、[監査ポリシー] をクリックします。
  3. 詳細ウィンドウで、[ Audit object access]\(オブジェクト アクセスの監査\) をダブルクリックします。
  4. [ Audit object access Properties]\(オブジェクト アクセスのプロパティの監査 \) ページで、[ 成功 ] または [ 失敗 ] のいずれか、またはその両方を選択し、[OK] をクリックします。
  5. [ローカル セキュリティ設定] スナップインを閉じます。
  6. コマンド プロンプトで「 gpupdate /force」と入力し、Enter キーを押してローカル ポリシーをすぐに更新します。

次の GPO を使用して、Windows セキュリティ ログを構成することもできます。

Computer Configuration\Policies\Windows Settings\Security Settings\Advanced Audit Policy Configuration\Audit Policies\Object Access\Audit Application Generated - 成功と失敗 ADFS の構成

これは、AD FS がユーザーに対するトークンを拒否したシナリオで役立ちます。 AD FS 監査プロセスは、トークンが拒否される前に生成されたイベントと要求を報告します。 これは、拒否規則を適用する原因となった要求を特定するのに役立ちます。 特に、イベント ID 299、500、501、325 についてセキュリティ イベント ログを調べます。

手順 5: カスタム要求が必要かどうかを判断する

要求の発行要件を既定の要求規則テンプレートで満たすことができない場合は、カスタム要求を記述する必要がある場合があります。 詳細については、「 AD FS 2.0 & 以降の要求規則言語について」を参照してください。

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。