一般宣告轉換

此文章提供使用 Azure Active Directory B2C (Azure AD B2C) 自訂原則的一般宣告轉換範例。 如需詳細資訊,請參閱宣告轉換

CopyClaim

將宣告的值複製到另一個。 這兩個宣告都必須來自同一個類型。 查看此宣告轉換的即時示範

元素 TransformationClaimType 資料類型 注意
InputClaim inputClaim string、int 要複製的宣告類型。
OutputClaim 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 outputClaim boolean 叫用此宣告轉換之後所產生的宣告。

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 plaintext 字串 要加密的輸入宣告
InputClaim salt 字串 Salt 參數。 您可以使用 CreateRandomString 宣告轉換來建立隨機值。
InputParameter randomizerSecret 字串 指向現有的 Azure AD B2C 原則金鑰。 若要建立新的原則金鑰:在您的 Azure AD B2C 租用戶中,於 [管理] 底下,選取 [Identity Experience Framework]。 若要檢視租用戶中可用的金鑰,請選取 [原則金鑰]。 選取 [新增]。 針對 [選項],選取 [手動]。 提供名稱 (可能會自動新增前置詞 B2C_1A_)。 在 [祕密] 文字方塊中,輸入任何您想要使用的祕密,例如 1234567890。 針對 [金鑰使用方法] 選取 [簽章]。 選取 [建立]。
OutputClaim 雜湊 字串 叫用此宣告轉換之後所產生的宣告。 設定於 plaintext inputClaim 中的宣告。

雜湊範例

下列範例示範如何將電子郵件地址進行雜湊處理。 宣告轉換會先將 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 =

後續步驟