本文提供在 Azure Active Directory B2C (Azure AD B2C) 中使用身分識別體驗架構架構的字串集合宣告轉換的範例。 如需詳細資訊,請參閱 宣告轉換。
AddItemToString集合
將字串宣告新增至新的唯一值 stringCollection 宣告。 查看 此宣告轉換的實時示範 。
| 元素 | TransformationClaimType | 數據類型 | 註釋 |
|---|---|---|---|
| InputClaim (輸入宣告) | 項目 | 字串 | 要新增至輸出宣告的 ClaimType。 |
| InputClaim (輸入宣告) | 收藏 | stringCollection | 要新增至輸出宣告的字串集合。 如果集合包含專案,宣告轉換會複製專案,並將專案新增至輸出集合宣告的結尾。 |
| 輸出聲明 | 收藏 | stringCollection | 叫用此宣告轉換之後所產生的 ClaimType,其值在輸入宣告中指定。 |
使用此宣告轉換,將字串新增至新的或現有的 stringCollection。 它通常用於 AAD-UserWriteUsingAlternativeSecurityId 技術配置檔。 在建立新的社交帳戶之前, CreateOtherMailsFromEmail 宣告轉換會讀取 ClaimType,並將值新增至 otherMails 宣告類型。
AddItemToStringCollection 的範例
下列宣告轉換會將 電子郵件 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>
- 輸入宣告:
- 收藏:[“someone@outlook.com”]
- 項目:“admin@contoso.com”
- 輸出宣告:
- 收藏: [“someone@outlook.com”, “admin@contoso.com”]
AddParameterToString集合
將字串參數新增至新的唯一值 stringCollection 宣告。 查看 此宣告轉換的實時示範 。
| 元素 | TransformationClaimType | 數據類型 | 註釋 |
|---|---|---|---|
| InputClaim (輸入宣告) | 收藏 | stringCollection | 要新增至輸出宣告的字串集合。 如果集合包含專案,宣告轉換會複製專案,並將專案新增至輸出集合宣告的結尾。 |
| 輸入參數 | 項目 | 字串 | 要新增至輸出宣告的值。 |
| 輸出聲明 | 收藏 | 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>
- 輸入宣告:
- 收藏:[“someone@outlook.com”]
- 輸入參數
- 項目:“admin@contoso.com”
- 輸出宣告:
- 收藏: [“someone@outlook.com”, “admin@contoso.com”]
GetSingleItemFromStringCollection
從提供的字串集合中取得第一個專案。 查看 此宣告轉換的實時示範 。
| 元素 | TransformationClaimType | 數據類型 | 註釋 |
|---|---|---|---|
| InputClaim (輸入宣告) | 收藏 | stringCollection | 宣告轉換用來取得專案的 ClaimTypes。 |
| 輸出聲明 | extracted項目 | 字串 | 在此 ClaimsTransformation 之後產生的 ClaimTypes。 集合中的第一項。 |
GetSingleItemFromStringCollection 的範例
下列範例會讀取 otherMails 宣告,並將第一個專案傳回 電子郵件宣告 中。
<ClaimsTransformation Id="CreateEmailFromOtherMails" TransformationMethod="GetSingleItemFromStringCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="extractedItem" />
</OutputClaims>
</ClaimsTransformation>
- 輸入宣告:
- 收藏: [“someone@outlook.com”, “someone@contoso.com”]
- 輸出宣告:
- extractedItem: “someone@outlook.com”
StringCollection包含
檢查 StringCollection 宣告類型是否包含元素。 查看 此宣告轉換的實時示範 。
| 元素 | TransformationClaimType | 數據類型 | 註釋 |
|---|---|---|---|
| InputClaim (輸入宣告) | inputClaim | stringCollection | 要搜查的索賠。 |
| 輸入參數 | 項目 | 字串 | 要搜尋的值。 |
| 輸入參數 | ignoreCase | 字串 | 指定此比較是否應該忽略所比較字串的案例。 |
| 輸出聲明 | outputClaim | 布爾值 | 在此 ClaimsTransformation 之後產生的 ClaimType。 如果集合包含這類字串,則為布林值指示器 |
StringCollectionContains 的範例
下列範例會檢查 stringCollection 宣告類型是否 roles 包含 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: [“讀者”, “作者”, “管理員”]
- 輸入參數:
- 項目:“管理員”
- ignoreCase: “true”
- 輸出宣告:
- outputClaim: “true”
StringCollectionContains宣告
檢查 StringCollection 宣告類型是否包含宣告值。 查看 此宣告轉換的實時示範 。
| 元素 | TransformationClaimType | 數據類型 | 註釋 |
|---|---|---|---|
| InputClaim (輸入宣告) | 收藏 | stringCollection | 要搜查的索賠。 |
| InputClaim (輸入宣告) | 項目 | 字串 | 包含要搜尋之值的宣告類型。 |
| 輸入參數 | ignoreCase | 字串 | 指定此比較是否應該忽略所比較字串的案例。 |
| 輸出聲明 | outputClaim | 布爾值 | 在此 ClaimsTransformation 之後產生的 ClaimType。 如果集合包含這類字串,則為布林值指示器 |
StringCollectionContainsClaim 的範例
下列範例會檢查 stringCollection 宣告類型是否 roles 包含宣告類型的值 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>
- 輸入宣告:
- 集合:[“讀者”、“作者”、“管理員”]
- 項目:“管理員”
- 輸入參數:
- ignoreCase: “true”
- 輸出宣告:
- outputClaim: “true”
後續步驟
- 在 Azure AD B2C 社群 GitHub 存放庫上尋找更多宣告轉換範例