這很重要
自 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>
宣告轉換參考
如需宣告轉換的範例,請參閱下列參考頁面: