要求のパススルーとフィルターを使用するタイミングの規則When to Use a Pass Through or Filter Claim Rule

この規則は、特定の入力 ( ) 方向の要求の種類を取得して、入力方向の要求の値に基づいてどのような出力を行うかを決定するアクションを適用する必要がある場合に Active Directory フェデレーションサービス (AD FS) AD FS で使用できます。You can use this rule in Active Directory Federation Services (AD FS) when you need to take a specific incoming claim type and then apply an action that will determine what output should occur based on the values in the incoming claim. この規則を使用する場合、次の表の規則ロジックと一致する要求を、規則で構成するオプションに基づいてパススルーまたはフィルター処理します。When you use this rule, you pass through or filter any claims that match the rule logic in the following table, based on either of the options you configure in the rule.

規則のオプションRule option 規則のロジックRule logic
すべての要求値をパススルーするPass through all claim values 入力方向の要求の種類が "指定した要求の種類" に等しく、値が "すべての値" に等しい場合、要求をパススルーしますIf incoming claim type equals specified claim type and value equals any value, then pass the claim through
特定の要求値のみをパススルーするPass through only a specific claim value 入力方向の要求の種類が "指定した要求の種類" に等しく、値が "指定した要求値" に等しい場合、要求をパススルーしますIf incoming claim type equals specified claim type and value equals specified claim value, then pass the claim through
特定の電子メールサフィックスの値に一致する要求値のみをパススルーする -Pass through only claim values that match a specific e-mail suffix value 入力方向の要求の種類が "指定した要求の種類" に等しく、値が "指定したサフィックス値" に等しい場合、要求をパススルーしますIf incoming claim type equals specified claim type and value equals specified suffix value, then pass the claim through
特定の値で始まる要求値のみをパススルーするPass through only claim values that start with a specific value 入力方向の要求の種類が "指定した要求の種類" に等しく、値が "指定した要求値" で始まる場合、要求をパススルーしますIf incoming claim type equals specified claim type and value begins with specified claim value, then pass the claim through

次のセクションでは、要求規則の概要と、その規則を使用するタイミングについて詳しく説明します。The following sections provide a basic introduction to claim rules and provide further details about when to use this rule.

要求規則についてAbout claim rules

要求規則は、入力方向の要求を受け取り、x が y の場合に条件を適用して、 ( ) 条件パラメーターに基づいて出力方向の要求を生成するビジネスロジックのインスタンスを表します。A claim rule represents an instance of business logic that will take an incoming claim, apply a condition to it (if x then y) and produce an outgoing claim based on the condition parameters. 次の一覧に、このトピックを読む前に理解しておく必要のある、要求規則に関する重要なヒントを示します。The following list outlines important tips that you should know about claim rules before you read further in this topic:

  • AD FS 管理スナップインでは - 、要求規則テンプレートを使用してのみ要求規則を作成できます。In the AD FS Management snap-in, claim rules can only be created using claim rule templates

  • 要求規則は、フェデレーションサービス Active Directory などの要求プロバイダーから直接、 ( ) または要求プロバイダー信頼の受け入れ変換規則の出力から、入力方向の要求を処理します。Claim rules process incoming claims either directly from a claims provider (such as Active Directory or another Federation Service) or from the output of the acceptance transform rules on a claims provider trust.

  • 要求規則は、要求発行エンジンによって、特定の規則セット内で時系列に従って処理されます。Claim rules are processed by the claims issuance engine in chronological order within a given rule set. 規則に優先順位を設定すると、特定の規則セット内の先行する規則で生成された要求をさらに調整またはフィルター処理できます。By setting precedence on rules, you can further refine or filter claims that are generated by previous rules within a given rule set.

  • 要求規則テンプレートでは、常に入力方向の要求の種類を指定する必要があります。Claim rule templates will always require you to specify an incoming claim type. ただし、1 つの規則を使用して、要求の種類が同じ複数の要求の値を処理できます。However, you can process multiple claim values with the same claim type using a single rule.

要求規則と要求規則セットの詳細については、「 要求規則の役割」を参照してください。For more detailed information about claim rules and claim rule sets, see The Role of Claim Rules. 規則の処理方法の詳細については、「 要求エンジンの役割」を参照してください。For more information about how rules are processed, see The Role of the Claims Engine. 要求規則セットの処理方法の詳細については、「 要求パイプラインの役割」を参照してください。For more information how claim rule sets are processed, see The Role of the Claims Pipeline.

すべての要求値をパススルーするPass through all claim values

この操作を使用する場合、指定した要求の種類の入力方向の要求値すべてが、出力方向の要求としてパススルーされます。When using this action, all incoming claim values for the specified claim type are passed through as outgoing claims. たとえば、入力方向の要求の種類が "役割" として指定されている場合は、すべての入力方向の要求値が、新しい出力方向の要求に個別にコピーされ、出力方向の要求の種類は "役割" になります。For example, when the incoming claim type is specified as the Role claim type, all incoming claim values are copied individually into new outgoing claims with the outgoing claim type of Role.

要求のフィルター処理Filtering a claim

AD FS では、 要求フィルター とは、特定の値のみが出力方向の要求として渡され、送信されるように、入力方向の要求の値をフィルター処理または制限することを意味します。In AD FS, the term claims filtering means to filter or restrict incoming claim values so that only certain values are passed or sent through as outgoing claims. これを実現するのが、入力方向の要求のパススルーまたはフィルター処理 規則です。It is the Pass Through or Filter an Incoming Claim rule template that makes this function possible. この規則のプロパティ内で、指定した条件を満たす値のみがパススルーするように、入力方向の値をフィルター処理する条件を設定できます。Within the properties of this rule, you can set conditions to filter incoming values so that only the values that meet your specified criteria are passed through.

たとえば、この規則を使用すると、入力方向の要求の種類が "役割" と一致するとき、またはユーザー名に関する要求のみを発行する必要があるときに、購入者の要求値に一致する要求のみをパススルーできますが、ユーザーの社会保障番号を含む要求はパススルーできません。For example, you can use this rule to only pass through claims that match the claim value of Purchaser when the incoming claim type matches the claim type of Role or you might want to issue only claims about the name of the user, but not claims containing the social security number of the user.

この規則でフィルター条件を使用すると、入力方向のすべての要求で、どの要求が規則で設定された条件に一致するかが確認されます。When you use a filter condition with this rule, all incoming claims are examined to determine which claims match the criteria set by the rule. その他の要求はすべて無視され、指定した要求値の中で、選択した要求の種類に一致するものだけがパススルーします。All other claims are ignored so that only specified claim values that match a selected claim type will pass through.

たとえば、次の図に示すように、という条件で規則が設定されている場合に、UPN 要求の種類にキーが付けられている入力方向の要求のみをフィルター処理すると、 @fabrikam.com その他のすべての入力方向の要求は、この条件を満たしていない限り無視されます。For example, as shown in the following illustration, when a rule is set with the condition to filter only incoming claims that are keyed to the UPN claim type and also end with @fabrikam.com, all other incoming claims are ignored unless they meet this criteria. これには、 - 要求の値がで終わる場合でも、要求の種類が電子メールアドレスの入力方向の要求が含まれ @fabrikam.com ます。This includes the incoming claim with the claim type of E-Mail Address even though its claim value ends in @fabrikam.com. この場合、の値を含むクレームのみ Nick@fabrikam.com が証明書利用者に送信されます。In this case, only the claim containing the value of Nick@fabrikam.com is sent to the relying party.

パススルーを使用する場合

要求プロバイダー信頼でのこの規則の構成Configuring this rule on a claims provider trust

要求プロバイダー信頼を使用する場合、この規則は、特定の制約に一致する要求プロバイダーからの入力方向の要求のみをパススルーするように構成できます。When you use a claims provider trust, this rule can be configured to pass through only incoming claims from the claims provider that match certain constraints. たとえば、要求プロバイダーからの電子メール要求のみを受け入れるようにすることができます - 。したがって、この規則テンプレートを使用して、 - 要求プロバイダーのドメインネームシステム DNS 名で終わる電子メール要求の種類を受け入れることができ ( ) ます。For example, you might want to only accept e-mail claims from the claims provider; therefore, you would use this rule template to accept e-mail claim types that end in the claims provider's Domain Name System (DNS) name.

証明書利用者の信頼でのこの規則の構成Configuring this rule on a relying party trust

証明書利用者の信頼を使用すると、この規則は、証明書利用者に送信される出力方向の要求をパススルーまたはフィルター処理するように構成できます。When you use a relying party trust, this rule can be configured to pass through or filter outgoing claims that will be sent to the relying party. 要求の種類すべてを、すべての証明書利用者が認識できるとは限りません。また、要求によっては、特定の証明書利用者に送信しないようにする必要がある機密情報が含まれる場合もあります。Some relying parties might not understand certain claim types, or certain claims might contain sensitive information that should not be sent to certain relying parties. この規則テンプレートは、特定の証明書利用者の信頼に対して、こうしたポリシーを適用するのに役立ちます。This rule template can help to enforce those policies for a particular relying party trust.

この規則の作成方法How to create this rule

この規則を作成するには、要求規則言語を使用するか、AD FS 管理スナップインで "入力方向の要求をパススルーまたはフィルター処理" 規則テンプレートを使用し - ます。You create this rule using either the claim rule language or using the Pass Through or Filter an Incoming Claim rule template in the AD FS Management snap-in. この規則テンプレートには、次の構成オプションがあります。This rule template provides the following configuration options:

  • 要求規則名を指定するSpecify a claim rule name

  • 入力方向の要求の種類を指定するSpecify a incoming claim type

  • すべての要求値をパススルーするPass through all claim values

  • 特定の要求値のみをパススルーするPass through only a specific claim value

  • 特定の電子メールサフィックスの値に一致する要求値のみをパススルーする -Pass through only claim values that match a specific e-mail suffix value

  • 特定の値で始まる要求値のみをパススルーするPass through only claim values that start with a specific value

このテンプレートを作成する方法の詳細については、「AD FS 展開ガイド」の「 入力方向の要求をパススルーまたはフィルター処理する規則を作成 する」を参照してください。For more instructions on how to create this template, see Create a Rule to Pass Through or Filter an Incoming Claim in the AD FS Deployment Guide.

要求規則言語の使用Using the claim rule language

要求値がカスタム パターンに一致する場合にのみ要求を送信する場合は、カスタム規則を使用する必要があります。If a claim should be sent only when the claim value matches a custom pattern, you must use a custom rule. 詳細については、カスタム規則を使用するタイミングに関するトピックを参照してください。For more information, see When to Use a Custom Rule.

パススルーとフィルター処理規則の構文の作成例Examples of how to construct a pass through or filter rule syntax

シンプルなフィルター処理規則では、上記で説明したプロパティのいずれかに基づいて要求をフィルター処理します。A simple filtering rule would filter claims based on one of the properties outlined above. たとえば、次の規則はすべての電子メール要求を通過し - ます。For example, the following rule will pass through all e-mail claims:

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"]  => issue(claim  = c);

フィルターは論理的にも ed でもかまい - ません。Filters can be logically AND-ed together. たとえば、次の規則では、 - 値を含むすべての電子メール要求を受け入れます。 johndoe@fabrikam.com:For example, the following rule will accept all e-mail claims with value johndoe@fabrikam.com:

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", value == "johndoe@fabrikam.com "]  => issue(claim  = c);

前の例では、フィルターには常に等価演算子が使用されています。In the above examples the filters always used an equality operator. 要求規則言語でサポートされる演算子を次に示します。The claim rule language supports the following operators:

  • ==- ( 大文字と小文字を - 区別する)== - equals (case-sensitive)

  • !=- ( 大文字と小文字を - 区別しない)!= - not equals (case-sensitive)

  • =~- 正規表現の一致=~- regular expression match

  • !~ - 正規表現が - 一致しません!~ - regular expression non-match

たとえば、次の規則は、boeing.com という - サフィックスを持つローカルフェデレーションサーバーによって発行されていないすべての電子メール要求を受け入れます。For example, the following rule will accept all e-mail claims not issued by the local federation server that have a suffix of boeing.com:

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", value =~ "^.*@boeing\.com$" , issuer != "LOCAL AUTHORITY"]  => issue(claim  = c);

カスタム規則を作成するためのベスト プラクティスBest practices for creating custom rules

次の表で説明するように、フィルターは、各要求の 1 つ以上のプロパティに適用できます。A filter can be applied to one or more of the properties of each claim, as described in the following table.

要求のプロパティClaim property 説明Description
TypeType (通常、Uri として表される要求の種類は、 ) 要求で伝達される情報の種類について、フェデレーション内のパートナー間の暗黙のアグリーメントを反映します。The claim type (usually represented as an Uri) reflects an implicit agreement between partners in a Federation about what kind of information is conveyed in the claim. たとえば、http: / /schemas.xmlsoap.org / ws / 2005 / 05 の / id / 要求 emailaddress には、 / - ユーザーの電子メールアドレスが含まれます。For example, claims of type http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress will contain the e-mail address of the user.
Value クレームの値。The value of the claim. たとえば、http: / /schemas.xmlsoap.org ws 2005 05 identity claim emailaddress 型のクレームは、次 / / / / / / の値を持つことができます。johndoe@fabrikam.comFor example, a claim of type http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress may have a value of johndoe@fabrikam.com
ValueTypeValueType ValueType は、要求の値に含まれる情報がどのように解釈されるかを表します。The ValueType represents how the information contained in the claim's Value is to be interpreted. 通常、ValueType は http: www.w3.org 2001 XMLSchema string に設定されます / / / / が、 # 要求の値には、 ( イメージや日付、ブール値など、Base64Binary でエンコードされたデータを含めることができ ) ます。Typically the ValueType will be set to http://www.w3.org/2001/XMLSchema#string, but the claim value could contain Base64Binary encoded data (for example, an image) or a date, Boolean, and so on.
発行者Issuer 発行者は、前回ユーザーに関する要求を発行したパーティです。The issuer represents the party that last issued the claims about the user. 要求が要求プロバイダーのフェデレーションサーバーで取得された場合は、すべての要求の発行者が "LOCAL AUTHORITY" に設定されます。If the claims are obtained at a claims provider federation server the issuer of all claims is going to be set to "LOCAL AUTHORITY". フェデレーション プロバイダーのフェデレーション サーバーが要求を受信した場合、要求の発行者は、トークンに署名した要求プロバイダーの要求プロバイダー識別子に設定されます。If the claims were received by a Federation Provider federation server, the issuer of the claims is going to be set to the claims provider identifier of the claims provider that signed the token. このため、要求プロバイダーから受信した要求の規則を処理するときは、すべての要求の発行者が同じ値に設定されます。Thus, when processing rules on claims received from a claims provider the issuer of all claims is going to be set to the same value. 証明書利用者の規則を作成するとき、発行者のプロパティを使用して、別の要求プロバイダーから送信された要求を区別できます。When authoring rules for a relying party, the issuer property can be used to distinguish between claims originating from different claims providers.
OriginalIssuerOriginalIssuer この要求プロパティの目的は、要求を最初に発行したフェデレーション サーバーを伝達することです。This claim property is meant to convey which federation server originally issued the claim. 要求の issuer プロパティは、トークンに署名した最後のフェデレーションサーバーに設定されているので、元の発行者は、要求が複数のフェデレーションサーバーを経由して送信された場合に便利です。 ( たとえば、フェデレーションプロバイダーフェデレーションサーバーからトークンを受け取る証明書利用者が、特定の要求プロバイダーフェデレーションサーバーによって認証されたユーザー)Since the issuer property of claims is set to the last federation server that signed the token, the original issuer is useful in scenarios where a claim has flowed through more than one federation server (For example, a relying party that receives a token from a federation provider federation server might be interested which particular claims provider federation server authenticated the user)
PropertiesProperties 上記で説明した 5 つのプロパティのほかに、名前付きプロパティを格納できるプロパティ バッグが各要求にあります。In addition to the five properties outlined above, each claim also has a property bag where named properties can be stored. これらのプロパティはトークンでシリアル化されません。また、1 台のフェデレーション サーバーのスコープ内の要求発行パイプラインのコンポーネント間で情報をやり取りする場合にのみ有効です。These properties are not serialized in the token and only make sense for passing information between components of the claims issuance pipeline within the scope of a single federation server. たとえば、要求プロバイダー規則の処理中にプロパティを設定し、証明書利用者の規則でそのプロパティを参照します。For example, setting a property during claims provider rules processing and then referring to it in relying party rules.