布爾宣告轉換

這很重要

自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。

本文提供在 Azure Active Directory B2C (Azure AD B2C) 中使用身分識別體驗架構架構布爾宣告轉換的範例。 如需詳細資訊,請參閱 宣告轉換。

AndClaims

計算兩個 And 布爾值輸入宣告的作業,並使用作業的結果來設定輸出宣告。 查看 此宣告轉換的實時示範 。

元素 TransformationClaimType 數據類型 註釋
InputClaim (輸入宣告) inputClaim1 布爾值 要評估的第一個宣告。
InputClaim (輸入宣告) inputClaim2 的 布爾值 要評估的第二個宣告。
輸出聲明 outputClaim 布爾值 叫用這個宣告轉換之後所產生的宣告(true 或 false)。

AndClaims 的範例

下列宣告轉換示範如何 And 兩個布爾宣告: isEmailNotExist、 和 isSocialAccount。 如果兩個輸入宣告的值都是 ,則輸出宣告 presentEmailSelfAsserted 會設定 true 為 true。

<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

檢查兩個宣告的布爾值是否相等,如果不是,則會擲回例外狀況。 查看 此宣告轉換的實時示範 。

元素 TransformationClaimType 數據類型 註釋
inputClaim inputClaim 布爾值 要檢查的宣告。
輸入參數 valueToCompareTo 布爾值 要比較的值(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 數據類型 註釋
InputClaim (輸入宣告) inputClaim 布爾值 要比較的宣告。
輸入參數 valueToCompareTo 布爾值 要比較的值(true 或 false)。
輸出聲明 compareResult 比較結果 布爾值 叫用這個宣告轉換之後所產生的宣告。

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 數據類型 註釋
InputClaim (輸入宣告) inputClaim 布爾值 要運作的宣告。
輸出聲明 outputClaim 布爾值 叫用這個宣告轉換之後所產生的宣告(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

計算 Or 兩個布爾宣告的 ,並使用作業的結果來設定輸出宣告。 查看 此宣告轉換的實時示範 。

元素 TransformationClaimType 數據類型 註釋
InputClaim (輸入宣告) inputClaim1 布爾值 要評估的第一個宣告。
InputClaim (輸入宣告) inputClaim2 的 布爾值 要評估的第二個宣告。
輸出聲明 outputClaim 布爾值 叫用這個宣告轉換之後所產生的宣告(true 或 false)。

OrClaims 的範例

下列宣告轉換示範如何 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

後續步驟