StringCollection 宣告轉換
此文章提供在 Azure Active Directory B2C (Azure AD B2C) 中,使用 Identity Experience Framework 結構描述之字串集合宣告轉換的範例。 如需詳細資訊,請參閱宣告轉換。
AddItemToStringCollection
將字串宣告新增至新的唯一值 stringCollection 宣告。 查看此宣告轉換的即時示範。
元素 | TransformationClaimType | 資料類型 | 注意 |
---|---|---|---|
InputClaim | 元素 | 字串 | 要新增至輸出宣告的 ClaimType。 |
InputClaim | collection | stringCollection | 要新增至輸出宣告的字串集合。 如果集合包含項目,宣告轉換就會複製項目,並將項目新增至輸出集合宣告的結尾。 |
OutputClaim | collection | stringCollection | 叫用此宣告轉換之後產生的 ClaimType,並含有輸入參數中指定的值。 |
使用此宣告轉換來將字串新增至新的或現有的 stringCollection。 它通常用於 AAD-UserWriteUsingAlternativeSecurityId 技術設定檔。 建立新的社交帳戶之前,CreateOtherMailsFromEmail 宣告轉換會讀取 ClaimType,並將值新增至 otherMails ClaimType。
AddItemToStringCollection 範例
下列宣告轉換會將 email ClaimType 新增至 otherMails ClaimType。
<ClaimsTransformation Id="CreateOtherMailsFromEmail" TransformationMethod="AddItemToStringCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="item" />
<InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
- 輸入宣告:
- collection:["someone@outlook.com"]
- item:"admin@contoso.com"
- 輸出宣告:
- collection["someone@outlook.com", "admin@contoso.com"]
AddParameterToStringCollection
將字串參數新增至新的唯一值 stringCollection 宣告。 查看此宣告轉換的即時示範。
元素 | TransformationClaimType | 資料類型 | 注意 |
---|---|---|---|
InputClaim | collection | stringCollection | 要新增至輸出宣告的字串集合。 如果集合包含項目,宣告轉換就會複製項目,並將項目新增至輸出集合宣告的結尾。 |
InputParameter | 元素 | 字串 | 要新增至輸出宣告的值。 |
OutputClaim | collection | stringCollection | 叫用此宣告轉換之後所產生的 ClaimType,並含有輸入參數中指定的值。 |
AddParameterToStringCollection 範例
下列範例會將常數的電子郵件地址 (admin@contoso.com) 新增至 otherMails 宣告。
<ClaimsTransformation Id="SetCompanyEmail" TransformationMethod="AddParameterToStringCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</InputClaims>
<InputParameters>
<InputParameter Id="item" DataType="string" Value="admin@contoso.com" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
- 輸入宣告:
- collection:["someone@outlook.com"]
- 輸入參數
- item:"admin@contoso.com"
- 輸出宣告:
- collection["someone@outlook.com", "admin@contoso.com"]
GetSingleItemFromStringCollection
從提供的字串集合中取得第一個項目。 查看此宣告轉換的即時示範。
元素 | TransformationClaimType | 資料類型 | 注意 |
---|---|---|---|
InputClaim | collection | stringCollection | 宣告轉換用來取得項目的 ClaimType。 |
OutputClaim | extractedItem | 字串 | 叫用此 ClaimsTransformation 之後所產生的 ClaimType。 集合中的第一個項目。 |
GetSingleItemFromStringCollection 範例
下列範例會讀取 otherMails 宣告,並將第一個項目傳回到 email 宣告。
<ClaimsTransformation Id="CreateEmailFromOtherMails" TransformationMethod="GetSingleItemFromStringCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="extractedItem" />
</OutputClaims>
</ClaimsTransformation>
- 輸入宣告:
- collection["someone@outlook.com", "someone@contoso.com"]
- 輸出宣告:
- extractedItem:"someone@outlook.com"
StringCollectionContains
檢查 StringCollection 宣告類型是否包含元素。 查看此宣告轉換的即時示範。
元素 | TransformationClaimType | 資料類型 | 注意 |
---|---|---|---|
InputClaim | inputClaim | stringCollection | 要搜尋的宣告。 |
InputParameter | item | 字串 | 要搜尋的值。 |
InputParameter | ignoreCase | 字串 | 指定這個比較是否應忽略要比較之字串的大小寫。 |
OutputClaim | outputClaim | boolean | 叫用此 ClaimsTransformation 之後所產生的 ClaimType。 如果集合包含此類字串,則為布林值指標 |
StringCollectionContains 範例
下列範例會檢查 roles
stringCollection 宣告類型是否包含 admin 的值。
<ClaimsTransformation Id="IsAdmin" TransformationMethod="StringCollectionContains">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
</InputClaims>
<InputParameters>
<InputParameter Id="item" DataType="string" Value="Admin"/>
<InputParameter Id="ignoreCase" DataType="string" Value="true"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
- 輸入宣告:
- inputClaim:["reader", "author", "admin"]
- 輸入參數:
- item:"Admin"
- ignoreCase:"true"
- 輸出宣告:
- outputClaim:"true"
StringCollectionContainsClaim
檢查 StringCollection 宣告類型是否包含宣告值。 查看此宣告轉換的即時示範。
元素 | TransformationClaimType | 資料類型 | 注意 |
---|---|---|---|
InputClaim | collection | stringCollection | 要搜尋的宣告。 |
InputClaim | item | 字串 | 包含要搜尋之值的宣告類型。 |
InputParameter | ignoreCase | 字串 | 指定這個比較是否應忽略要比較之字串的大小寫。 |
OutputClaim | outputClaim | boolean | 叫用此 ClaimsTransformation 之後所產生的 ClaimType。 如果集合包含此類字串,則為布林值指標 |
StringCollectionContainsClaim 範例
下列範例會檢查 roles
stringCollection 宣告類型是否包含 role
宣告類型的值。
<ClaimsTransformation Id="HasRequiredRole" TransformationMethod="StringCollectionContainsClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="collection" />
<InputClaim ClaimTypeReferenceId="role" TransformationClaimType="item" />
</InputClaims>
<InputParameters>
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="hasAccess" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- 輸入宣告:
- collection:["reader", "author", "admin"]
- item:"Admin"
- 輸入參數:
- ignoreCase:"true"
- 輸出宣告:
- outputClaim:"true"
後續步驟
- 在 Azure AD B2C 社群 GitHub 存放庫中,尋找更多宣告轉換範例