次の方法で共有


AD FS のトラブルシューティング: 要求規則の構文

要求とは、ある対象が自分自身または他の対象に対して行うステートメントのことです。 証明書利用者が要求を発行します。 1 つ以上の値が与えられ、Active Directory フェデレーション サービス (AD FS) サーバーが発行するセキュリティ トークンにパッケージ化されます。 この記事では、要求の構文と作成について説明します。 要求の発行の詳細については、「 AD FS のトラブルシューティング」を参照してください。

要求規則の処理方法

要求規則は、要求エンジンを使用して要求パイプラインを通じて処理されます。 クレーム エンジンは、ユーザーが提示する受信要求のセットを調べる AD FS の論理コンポーネントです。 各規則のロジックに応じて、要求の出力セットが生成されます。

要求規則の作成方法

要求規則は、AD FS 内のフェデレーション信頼関係ごとに個別に作成されます。 複数の信頼間で共有されることはありません。 次のようにすることができます。

要求規則言語のコンポーネント

要求規則言語は、次のコンポーネントで構成され、 " =>" 演算子で区切られます。

  • 条件は、入力要求を確認し、ルールの発行ステートメントを実行する必要があるかどうかを判断するために使用されます。 これは、ルール本文部分を実行するために true に評価する必要がある論理式を表します。
  • 発行ステートメント。

次に例を示します。

c:[type == "Name", value == "___domain user"] => issue(type = "Role", value = "employee");

この要求には次の内容があります。

  • 条件: c:[type == "Name", value == "___domain user"] は、Windows アカウント名がドメイン ユーザーであるかどうかを示す入力要求を評価します。
  • 発行: issue(type = "Role", value = "employee") は、条件が true の場合、従業員の役割を持つ入力要求に新しい要求を追加します。

要求と構文の詳細については、「 要求規則言語の役割」を参照してください。

要求規則エディター

要求規則エディターは、要求を完了して [OK] を選択した後、構文チェックを実行します。 構文が正しくない場合は、エディターから通知されます。

カスタム要求規則の構文が無効であることを示すメッセージが表示された [A D F S 管理] ダイアログを示すスクリーンショット。

イベント ログ

ログを使用して要求のトラブルシューティングを行う場合は、要求の出力を検索することをお勧めします。 イベント ログで 1000 イベントと 1001 イベントを探します。

1000 イベント ID の結果を含む [イベントのプロパティ] ダイアログ ボックスを示すスクリーンショット。

サンプル アプリケーションを作成する

要求をエコーするサンプル アプリケーションを作成することもできます。 たとえば、サンプルアプリケーションを使用して、トラブルシューティングを行おうとしているのと同じクレームを持つ依存先を作成し、そのクレームに関してアプリに問題があるかどうかを確認できます。

ブラウザーのサンプル アプリケーションを示すスクリーンショット。

適切なサンプル Web アプリが用意されています。 このアプリは、証明書利用者から受け取った要求をエコーします。 これを使用するには、web.config アプリを編集します。

  • https://app1.contoso.com/sampappを、サンプル アプリのホストに使用する URL に変更します。
  • のすべてのインスタンスを AD FS サーバーを指すよう変更します。
  • 拇印を自分の拇印に置換します。
  • decryptionKeyvalidationKeyの値を、実際のシナリオに適した値に置き換えます。

Visual Studio の Web 構成ファイルを示すスクリーンショット。

このブログ記事 には、アプリを設定するための優れた詳細な手順があります。