ClaimsTransformations
注意
在 Azure Active Directory B2C 中,自訂原則的主要用途為處理複雜的案例。 在大部分情況下,我們建議使用內建的使用者流程。 如果您尚未執行此操作,請於在 Active Directory B2C 中開始使用自訂原則中,了解自訂原則入門套件。
ClaimsTransformations 元素包含一份宣告轉換函式清單,可用於使用者旅程圖中以作為自訂原則的一部分。 宣告轉換會將指定的宣告轉換成另一個。 在宣告轉換中,您會指定轉換方法,例如,將項目新增到字串集合,或變更字串的大小寫。
若要包含可在使用者旅程圖中使用的宣告轉換函式清單,必須在原則的 BuildingBlocks 區段下方宣告 ClaimsTransformations XML 元素。
<ClaimsTransformations>
<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
...
</ClaimsTransformation>
</ClaimsTransformations>
ClaimsTransformation 元素包含下列屬性:
屬性 | 必要 | Description |
---|---|---|
識別碼 | Yes | 用來唯一識別宣告轉換的識別碼。 此識別碼會從原則中的其他 XML 元素參考。 |
TransformationMethod | Yes | 要在宣告轉換中使用的轉換方法。 每個宣告轉換都有自己的值。 如需可用值的完整清單,請參閱宣告轉換參考。 |
ClaimsTransformation
ClaimsTransformation 元素包含下列元素:
<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
<InputClaims>
...
</InputClaims>
<InputParameters>
...
</InputParameters>
<OutputClaims>
...
</OutputClaims>
</ClaimsTransformation>
元素 | 發生次數 | Description |
---|---|---|
InputClaims | 0:1 | InputClaim 元素的清單,會指定要取得以作為宣告轉換輸入的宣告類型。 這些元素中的每一個都會參考已經定義於原則 ClaimsSchema 區段中的 ClaimType。 |
InputParameters | 0:1 | InputParameter 元素的清單,可提供來作為宣告轉換的輸入。 |
OutputClaims | 0:1 | OutputClaim 元素的清單,會指定要在叫用 ClaimsTransformation 之後產生的宣告類型。 這些元素中的每一個都會參考已經定義於 ClaimsSchema 區段中的 ClaimType。 |
InputClaims
InputClaims 元素包含下列元素:
元素 | 發生次數 | Description |
---|---|---|
InputClaim | 1:n | 預期的輸入宣告類型。 |
InputClaim
InputClaim 元素包含下列屬性:
屬性 | 必要 | 描述 |
---|---|---|
ClaimTypeReferenceId | Yes | 對已經定義於原則 ClaimsSchema 區段中之 ClaimType 的參考。 |
TransformationClaimType | Yes | 要參考轉換宣告類型的識別碼。 每個宣告轉換都有自己的值。 如需可用值的完整清單,請參閱宣告轉換參考。 |
InputParameters
InputParameters 元素包含下列元素:
元素 | 發生次數 | Description |
---|---|---|
InputParameter | 1:n | 預期的輸入參數。 |
InputParameter
屬性 | 必要 | Description |
---|---|---|
識別碼 | Yes | 識別碼,其為對宣告轉換方法之參數的參考。 每個宣告轉換方法都有自己的值。 如需可用值的完整清單,請參閱宣告轉換表。 |
DataType | Yes | 參數的資料類型,例如字串、布林值、整數或日期時間,其會以自訂原則 XML 結構描述中的每個 DataType 列舉為依據。 此類型可用來正確地執行算術運算。 每個宣告轉換都有自己的值。 如需可用值的完整清單,請參閱宣告轉換參考。 |
值 | Yes | 要逐字傳遞到轉換的值。 某些值是任意的,它們其中有一些是您從宣告轉換方法中選取的。 |
OutputClaims
OutputClaims 元素包含下列元素:
元素 | 發生次數 | Description |
---|---|---|
OutputClaim | 0:n | 預期的輸出宣告類型。 |
OutputClaim
OutputClaim 元素包含下列屬性:
屬性 | 必要 | 描述 |
---|---|---|
ClaimTypeReferenceId | Yes | 對已經定義於原則 ClaimsSchema 區段中之 ClaimType 的參考。 |
TransformationClaimType | Yes | 要參考轉換宣告類型的識別碼。 每個宣告轉換都有自己的值。 如需可用值的完整清單,請參閱宣告轉換參考。 |
宣告轉換中使用的輸入和輸出宣告必須互不相同。 相同的輸入宣告不可作為輸出宣告使用。
範例
例如,您可能會儲存使用者所接受之服務條款的最後一個版本。 當您更新服務條款時,可以要求使用者接受新版本。 在下列範例中,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>
宣告轉換參考
如需宣告轉換的範例,請參閱下列參考頁面: