一般宣告轉換

這很重要

自 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=

後續步驟