這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
本文提供使用 Azure Active Directory B2C (Azure AD B2C) 自定義原則之一般宣告轉換的範例。 如需詳細資訊,請參閱 宣告轉換。
複製索賠
將宣告的值複製到另一個宣告。 這兩個宣告都必須來自相同的類型。 查看 此宣告轉換的實時示範 。
元素 | TransformationClaimType | 數據類型 | 註釋 |
---|---|---|---|
InputClaim (輸入宣告) | inputClaim | string, int | 要複製的宣告類型。 |
輸出聲明 | outputClaim | string, int | 叫用這個宣告轉換之後所產生的宣告。 |
使用此宣告轉換,將值從字串或數值宣告複製到另一個宣告。 下列範例會將externalEmail宣告值複製到電子郵件宣告。
<ClaimsTransformation Id="CopyEmailAddress" TransformationMethod="CopyClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="externalEmail" TransformationClaimType="inputClaim"/>
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
CopyClaim 範例
- 輸入宣告:
- inputClaim: bob@contoso.com
- 輸出宣告:
- outputClaim: bob@contoso.com
DoesClaimExist
檢查輸入宣告是否存在,並將輸出宣告設定為 true
或 false
。 查看 此宣告轉換的實時示範 。
元素 | TransformationClaimType | 數據類型 | 註釋 |
---|---|---|---|
InputClaim (輸入宣告) | inputClaim | 任意 | 需要驗證其存在的輸入宣告。 |
輸出聲明 | outputClaim | 布爾值 | 叫用這個宣告轉換之後所產生的宣告。 |
DoesClaimExist 的範例
使用此宣告轉換來檢查宣告是否存在或包含任何值。 傳回值是布爾值,指出宣告是否存在。 下列範例會檢查電子郵件位址是否存在。
<ClaimsTransformation Id="CheckIfEmailPresent" TransformationMethod="DoesClaimExist">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isEmailPresent" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- 輸入宣告:
- inputClaim: someone@contoso.com
- 輸出宣告:
- outputClaim: true
雜湊
使用 salt 和秘密哈希提供的純文字。 使用的哈希演算法是 SHA-256。 查看 此宣告轉換的實時示範 。
元素 | TransformationClaimType | 數據類型 | 註釋 |
---|---|---|---|
InputClaim (輸入宣告) | 明文 | 字符串 | 要加密的輸入宣告 |
InputClaim (輸入宣告) | 鹽 | 字符串 | salt 參數。 您可以使用宣告轉換來 CreateRandomString 建立隨機值。 |
輸入參數 | randomizerSecret | 字符串 | 指向現有的 Azure AD B2C 原則金鑰。 若要建立新的原則密鑰:在您的 Azure AD B2C 租使用者中,選取 [ 管理] 底下的 [ 身分識別體驗架構]。 選取 [原則金鑰 ] 以檢視租使用者中可用的金鑰。 選取 ,然後新增。 針對 [選項],選取 [ 手動]。 提供名稱(可能會自動新增 前置詞B2C_1A_ 。 在 [ 秘密 ] 文本框中,輸入您想要使用的任何秘密,例如1234567890。 針對 [ 金鑰使用方式],選取 [ 簽章]。 選取 ,創建。 |
輸出聲明 | 散列 | 字符串 | 叫用這個宣告轉換之後所產生的宣告。 inputClaim 中設定的 plaintext 宣告。 |
哈希範例
下列範例示範如何哈希電子郵件位址。 宣告轉換會在哈希值之前,將 salt 新增至電子郵件位址。 若要呼叫此宣告轉換,請將值設定為 mySalt
宣告。
<ClaimsTransformation Id="HashPasswordWithEmail" TransformationMethod="Hash">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="plaintext" />
<InputClaim ClaimTypeReferenceId="mySalt" TransformationClaimType="salt" />
</InputClaims>
<InputParameters>
<InputParameter Id="randomizerSecret" DataType="string" Value="B2C_1A_AccountTransformSecret" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="hashedEmail" TransformationClaimType="hash" />
</OutputClaims>
</ClaimsTransformation>
- 輸入宣告:
- plaintext: someone@contoso.com
- salt:487624568
- randomizerSecret:B2C_1A_AccountTransformSecret
- 輸出宣告:
- outputClaim: CdMNb/KTEfsWzh9MR1kQGRZCKjuxGMWhA5YQNihzV6U=
後續步驟
- 在 Azure AD B2C 社群 GitHub 存放庫上尋找更多宣告轉換範例