ブール値要求変換

この記事では、Azure Active Directory B2C (Azure AD B2C) の Identity Experience Framework スキーマのブール値要求変換の使用例を示します。 詳細については、「ClaimsTransformations」を参照してください。

AndClaims

2 つのブール値入力要求の And 演算を実行し、演算の結果で出力要求を設定します。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim inputClaim1 boolean 評価する最初の要求。
InputClaim inputClaim2 boolean 評価する 2 番目の要求。
OutputClaim outputClaim boolean この要求変換が呼び出された後に生成される要求 (true または false)。

Analytics の例

次の要求変換は、2 つのブール値要求 (isEmailNotExistisSocialAccount) を And 演算する方法を示しています。 両方の入力要求の値が true である場合、出力要求 presentEmailSelfAssertedtrue に設定されます。

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="AndClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isEmailNotExist" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="isSocialAccount" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="presentEmailSelfAsserted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim1: true
    • inputClaim2: false
  • 出力要求:
    • outputClaim: false

AssertBooleanClaimIsEqualToValue

2 つの要求のブール値が等しいことをチェックし、等しくない場合は例外をスローします。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
inputClaim inputClaim boolean チェックする要求。
InputParameter valueToCompareTo boolean 比較される値 (true または false)。

AssertBooleanClaimIsEqualToValue 要求変換は、セルフアサート技術プロファイルによって呼び出される検証技術プロファイルから常に実行する必要があります。 UserMessageIfClaimsTransformationBooleanValueIsNotEqual セルフアサート技術プロファイル メタデータにより、技術プロファイルによってユーザーに表示されるエラー メッセージが制御されます。 エラー メッセージは、ローカライズできます。

AssertStringClaimsAreEqual 要求変換の使用方法を示す図。

AssertBooleanClaimIsEqualToValue の例

次の要求変換は、true 値でブール値要求の値をチェックする方法を示しています。 accountEnabled 要求の値が false の場合、エラー メッセージがスローされます。

<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim: false
    • valueToCompareTo: true
  • 結果:エラーがスローされます

AssertBooleanClaimIsEqualToValue 要求変換の呼び出し

次の Example-AssertBoolean 検証技術プロファイルで、AssertAccountEnabledIsTrue 要求変換を呼び出します。

<TechnicalProfile Id="Example-AssertBoolean">
  <DisplayName>Unit test</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="ComparisonResult" DefaultValue="false" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

セルフアサート技術プロファイルで、Example-AssertBoolean 技術プロファイルを呼び出します。

<TechnicalProfile Id="SelfAsserted-AssertDateTimeIsGreaterThan">
  <DisplayName>Example</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    <Item Key="UserMessageIfClaimsTransformationBooleanValueIsNotEqual">Custom error message if account is disabled.</Item>
  </Metadata>
  ...
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="Example-AssertBoolean" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

CompareBooleanClaimToValue

要求のブール値が true または false と等しいことを確認して、圧縮の結果を返します。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim inputClaim boolean 比較する要求。
InputParameter valueToCompareTo boolean 比較される値 (true または false)。
OutputClaim compareResult boolean この要求変換が呼び出された後に生成される要求。

CompareBooleanClaimToValue の例

次の要求変換は、true 値でブール値要求の値をチェックする方法を示しています。 この要求変換では、IsAgeOver21Years 要求の値が true と等しい場合は true を返し、それ以外の場合は false を返します。

<ClaimsTransformation Id="AssertAccountEnabled" TransformationMethod="CompareBooleanClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="IsAgeOver21Years" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim  ClaimTypeReferenceId="accountEnabled" TransformationClaimType="compareResult"/>
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim: false
  • 入力パラメーター:
    • valueToCompareTo: true
  • 出力要求:
    • compareResult: false

NotClaims

ブール値入力要求の Not 演算を実行し、演算の結果で出力要求を設定します。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim inputClaim boolean 演算処理される要求。
OutputClaim outputClaim boolean この要求変換が呼び出された後に生成される要求 (true または false)。

NotClaims の例

次の要求変換は、要求に対して論理否定を実行する方法を示しています。

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim: false
  • 出力要求:
    • outputClaim: true

OrClaims

2 つのブール値要求の Or 演算を実行し、演算の結果で出力要求を設定します。 この要求変換のライブ デモをご覧ください。

要素 TransformationClaimType データ型 Notes
InputClaim inputClaim1 boolean 評価する最初の要求。
InputClaim inputClaim2 boolean 評価する 2 番目の要求。
OutputClaim outputClaim boolean この要求変換が呼び出された後に生成される要求 (true または false)。

OrClaims の例

次の要求変換は、2 つのブール値要求の Or 演算を実行する方法を示しています。

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="OrClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isLastTOSAcceptedNotExists" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="isLastTOSAcceptedGreaterThanNow" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="presentTOSSelfAsserted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 入力要求:
    • inputClaim1: true
    • inputClaim2: false
  • 出力要求:
    • outputClaim: true

次の手順

  • その他の要求変換のサンプルについては、Azure AD B2C コミュニティの GitHub リポジトリをご覧ください