共用方式為


一般宣告轉換

這很重要

自 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

檢查輸入宣告是否存在,並將輸出宣告設定為 truefalse 。 查看 此宣告轉換的實時示範

元素 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=

後續步驟