共用方式為


ClaimsTransformations

這很重要

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

備註

在 Azure Active Directory B2C 中, 自定義原則 的設計主要是為了解決複雜的案例。 在大部分情況下,我們建議您使用內 建的使用者流程。 如果您尚未這麼做,請了解開始使用 Active Directory B2C 中的自定義原則入門套件。

ClaimsTransformations 元素包含宣告轉換函式清單,可用於使用者旅程圖中做為自定義原則的一部分。 宣告轉換會將指定的宣告轉換成另一個。 在宣告轉換中,您可以指定轉換方法,例如將專案新增至字串集合,或變更字串的案例。

若要包含可在使用者旅程圖中使用的宣告轉換函式清單,必須在原則的 BuildingBlocks 區段下宣告 ClaimsTransformations XML 元素。

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

ClaimsTransformation 元素包含下列屬性:

屬性 為必填項目 說明
身份識別碼 是的 用來唯一識別宣告轉換的標識碼。 標識元會從原則中的其他 XML 元素參考。
轉換方法 是的 用於宣告轉換的轉換方法。 每個宣告轉換都有自己的值。 如需可用值的完整清單,請參閱 宣告轉換參考

ClaimsTransformation (索賠轉換)

ClaimsTransformation 元素包含下列元素:

<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
  <InputClaims>
    ...
  </InputClaims>
  <InputParameters>
    ...
  </InputParameters>
  <OutputClaims>
    ...
  </OutputClaims>
</ClaimsTransformation>
元素 發生次數 說明
輸入聲明 0:1 InputClaim 元素的清單,指定做為宣告轉換輸入的宣告類型。 每個元素都包含已定義於原則之 ClaimsSchema 區段中的 ClaimType 參考。
輸入參數 0:1 InputParameter 元素的清單,提供做為宣告轉換的輸入。
輸出聲明 0:1 OutputClaim 元素的清單,指定叫用 ClaimsTransformation 之後所產生的宣告類型。 每個元素都包含 ClaimsSchema 區段中已定義的 ClaimType 參考。

輸入聲明

InputClaims 元素包含下列元素:

元素 發生次數 說明
InputClaim (輸入宣告) 1:n 預期的輸入宣告類型。

InputClaim (輸入宣告)

InputClaim 元素包含下列屬性:

屬性 為必填項目 說明
ClaimTypeReferenceId 是的 已在原則的 ClaimsSchema 區段中定義的 ClaimType 參考。
TransformationClaimType 是的 參考轉換宣告類型的識別碼。 每個宣告轉換都有自己的值。 如需可用值的完整清單,請參閱 宣告轉換參考

輸入參數

InputParameters 元素包含下列元素:

元素 發生次數 說明
輸入參數 1:n 預期的輸入參數。

輸入參數

屬性 為必填項目 說明
身份識別碼 是的 標識碼,這個標識碼是宣告轉換方法之參數的參考。 每個宣告轉換方法都有自己的值。 如需可用值的完整清單,請參閱宣告轉換數據表。
資料類型 是的 參數的數據類型,例如 String、Boolean、Int 或 DateTime,根據自定義原則 XML 架構中的 DataType 列舉。 此類型可用來正確執行算術運算。 每個宣告轉換都有自己的值。 如需可用值的完整清單,請參閱 宣告轉換參考
價值觀 是的 將逐字傳遞至轉換的值。 有些值是任意的,有些值是從宣告轉換方法中選取的。

輸出聲明

OutputClaims 元素包含下列元素:

元素 發生次數 說明
輸出聲明 0:n 預期的輸出宣告類型。

輸出聲明

OutputClaim 元素包含下列屬性:

屬性 為必填項目 說明
ClaimTypeReferenceId 是的 已在原則的 ClaimsSchema 區段中定義的 ClaimType 參考。
TransformationClaimType 是的 參考轉換宣告類型的識別碼。 每個宣告轉換都有自己的值。 如需可用值的完整清單,請參閱 宣告轉換參考

宣告轉換中使用的輸入和輸出宣告必須不同。 相同的輸入宣告不能當做輸出宣告使用。

範例

例如,您可以儲存使用者接受的最後一個服務條款版本。 當您更新服務條款時,您可以要求使用者接受新版本。 在下列範例中, 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>

宣告轉換參考

如需宣告轉換的範例,請參閱下列參考頁面: