次の方法で共有


ClaimsTransformations

重要

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

Azure Active Directory B2C で、カスタム ポリシーは、主に、複雑なシナリオに取り組む用途向けに設計されています。 ほとんどのシナリオで、組み込みユーザー フローを使用することをお勧めします。 まだ行っていない場合は、Active Directory B2C でのカスタム ポリシーの概要に関する記事で、カスタム ポリシー スターター パックの詳細を確認してください。

ClaimsTransformations 要素には、カスタム ポリシーの一部としてユーザー体験で使用できる要求変換関数の一覧が含まれています。 要求変換により、所定の要求が別の要求に変換されます。 要求変換では、変換メソッドを指定します。たとえば、文字列コレクションに項目を追加したり、文字列の大文字と小文字を変更したりします。

ユーザー体験で使用できる要求変換関数の一覧を含めるには、ポリシーの BuildingBlocks セクションで ClaimsTransformations XML 要素を宣言する必要があります。

<ClaimsTransformations>
  <ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
    ...
  </ClaimsTransformation>
</ClaimsTransformations>

ClaimsTransformation 要素には、次の属性が含まれています。

特性 必須 説明
ID (アイディー) イエス 要求変換を一意に識別するために使用される識別子。 識別子は、ポリシー内の他の XML 要素から参照されます。
トランスフォーメーションメソッド イエス 要求変換で使用する変換メソッド。 各要求変換には、独自の値があります。 使用可能な値の完全な一覧については、 要求変換のリファレンスを参照 してください。

クレーム変換

ClaimsTransformation 要素には、次の要素が含まれています。

<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
  <InputClaims>
    ...
  </InputClaims>
  <InputParameters>
    ...
  </InputParameters>
  <OutputClaims>
    ...
  </OutputClaims>
</ClaimsTransformation>
要素 発生回数 説明
インプットクレーム 0:1 要求変換への入力として取得される要求の種類を指定する InputClaim 要素の一覧。 これらの各要素には、ポリシーの ClaimsSchema セクションで既に定義されている ClaimType への参照が含まれています。
入力パラメータ 0:1 要求変換への入力として提供される InputParameter 要素の一覧。
出力クレーム 0:1 ClaimsTransformation が呼び出された後に生成される要求の種類を指定する OutputClaim 要素の一覧。 これらの各要素には、ClaimsSchema セクションで既に定義されている ClaimType への参照が含まれています。

インプットクレーム

InputClaims 要素には、次の要素が含まれています。

要素 発生回数 説明
インプットクレーム 1:n 予想される入力要求の種類。

インプットクレーム

InputClaim 要素には、次の属性が含まれています。

特性 必須 説明
ClaimTypeReferenceId (クレームタイプ参照ID) イエス ポリシーの ClaimsSchema セクションで既に定義されている ClaimType への参照。
トランスフォーメーションクレームタイプ イエス 変換要求の種類を参照する識別子。 各要求変換には、独自の値があります。 使用可能な値の完全な一覧については、 要求変換のリファレンスを参照 してください。

入力パラメータ

InputParameters 要素には、次の要素が含まれています。

要素 発生回数 説明
入力パラメータ 1:n 予期される入力パラメーター。

入力パラメータ

特性 必須 説明
ID (アイディー) イエス 要求変換メソッドのパラメーターへの参照である識別子。 各要求変換メソッドには、独自の値があります。 使用可能な値の完全な一覧については、要求変換の表を参照してください。
データ型 イエス カスタム ポリシー XML スキーマの DataType 列挙型に従った、文字列、ブール値、Int、DateTime などのパラメーターのデータ型。 この型は、算術演算を正しく実行するために使用されます。 各要求変換には、独自の値があります。 使用可能な値の完全な一覧については、 要求変換のリファレンスを参照 してください。
価値 イエス 変換に逐語的に渡される値。 一部の値は任意であり、その一部は要求変換方法から選択します。

出力クレーム

OutputClaims 要素には、次の要素が含まれています。

要素 発生回数 説明
出力要求 0:n 予期される出力要求の種類。

出力要求

OutputClaim 要素には、次の属性が含まれています。

特性 必須 説明
ClaimTypeReferenceId (クレームタイプ参照ID) イエス ポリシーの ClaimsSchema セクションで既に定義されている ClaimType への参照。
トランスフォーメーションクレームタイプ イエス 変換要求の種類を参照する識別子。 各要求変換には、独自の値があります。 使用可能な値の完全な一覧については、 要求変換のリファレンスを参照 してください。

要求変換で使用される入力要求と出力要求は区別する必要があります。 同じ入力要求を出力要求として使用することはできません。

たとえば、ユーザーが同意したサービスの使用条件の最後のバージョンを格納できます。 サービスの使用条件を更新するときに、ユーザーに新しいバージョンへの同意を求めることができます。 次の例では、 HasTOSVersionChanged 要求変換は 、TOSVersion 要求の値と LastTOSAcceptedVersion 要求の値を比較し、ブール 型の TOSVersionChanged 要求を 返します。

<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="TOSVersionChanged">
      <DisplayName>Indicates if the TOS version accepted by the end user is equal to the current version</DisplayName>
      <DataType>boolean</DataType>
    </ClaimType>
    <ClaimType Id="TOSVersion">
      <DisplayName>TOS version</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    <ClaimType Id="LastTOSAcceptedVersion">
      <DisplayName>TOS version accepted by the end user</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
  </ClaimsSchema>

  <ClaimsTransformations>
    <ClaimsTransformation Id="HasTOSVersionChanged" TransformationMethod="CompareClaims">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="TOSVersion" TransformationClaimType="inputClaim1" />
        <InputClaim ClaimTypeReferenceId="LastTOSAcceptedVersion" TransformationClaimType="inputClaim2" />
      </InputClaims>
      <InputParameters>
        <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
      </InputParameters>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="TOSVersionChanged" TransformationClaimType="outputClaim" />
      </OutputClaims>
    </ClaimsTransformation>
  </ClaimsTransformations>
</BuildingBlocks>

要求変換のリファレンス

要求変換の例については、次のリファレンス ページを参照してください。