Bagikan melalui


Transformasi klaim JSON

Artikel ini memberikan contoh bagaimana menggunakan transformasi klaim string dari skema IEF di Azure Active Directory B2C (Azure AD B2C). Untuk informasi selengkapnya, lihat transformasi klaim.

AndClaims

Menghitung operasi And dari dua klaim input boolean, dan mengatur klaim output dengan hasil operasi. Lihat demo Langsung dari transformasi klaim ini.

Elemen TransformationClaimType Jenis Data Catatan
InputClaim inputClaim1 boolean Klaim pertama untuk mengevaluasi.
InputClaim inputClaim2 boolean Klaim kedua untuk mengevaluasi.
OutputClaim outputClaim boolean Klaim yang dihasilkan setelah transformasi klaim ini dipanggil (benar atau salah).

Contoh AndClaims

Transformasi klaim berikut menunjukkan cara dua klaim boolean And: isEmailNotExist, dan isSocialAccount. Klaim output presentEmailSelfAsserted diatur ke true jika nilai kedua klaim input adalah true.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="AndClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isEmailNotExist" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="isSocialAccount" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="presentEmailSelfAsserted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Klaim input:
    • inputClaim1: benar
    • inputClaim2: salah
  • Klaim output:
    • outputClaim: salah

AssertBooleanClaimIsEqualToValue

Memeriksa bahwa nilai boolean dari dua klaim sama, dan melemparkan pengecualian jika tidak. Lihat demo Langsung dari transformasi klaim ini.

Elemen TransformationClaimType Jenis Data Catatan
inputClaim inputClaim boolean Klaim yang akan diperiksa.
InputParameter valueToCompareTo boolean Nilai untuk dibandingkan (benar atau salah).

Transformasi klaim AssertStringClaimsAreEqual selalu dijalankan dari profil teknis validasi yang dipanggil oleh profil teknis yang diisi sendiri. Metadata profil teknis yang diisi sendiri UserMessageIfClaimsTransformationBooleanValueIsNotEqual mengontrol pesan kesalahan yang disajikan profil teknis kepada pengguna. Pesan kesalahan dapat di lokalkan.

Diagram memperlihatkan cara menggunakan transformasi klaim AssertStringClaimsAreEqual.

Contoh AssertBooleanClaimIsEqualToValue

Transformasi klaim berikut menunjukkan cara memeriksa nilai klaim boolean dengan nilai true. Jika nilai klain accountEnabled salah, pesan kesalahan akan diberikan.

<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • Klaim input:
    • inputClaim: salah
    • valueToCompareTo: benar
  • Hasil: Kesalahan diberikan

Memanggil AssertBooleanClaimIsEqualToValue mengklaim transformasi

Profil teknis validasi Example-AssertBoolean berikut memanggil transformasi klaim AssertAccountEnabledIsTrue.

<TechnicalProfile Id="Example-AssertBoolean">
  <DisplayName>Unit test</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="ComparisonResult" DefaultValue="false" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

Profil teknis yang dinyatakan sendiri memanggil validasi profil teknis Example-AssertBoolean.

<TechnicalProfile Id="SelfAsserted-AssertDateTimeIsGreaterThan">
  <DisplayName>Example</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    <Item Key="UserMessageIfClaimsTransformationBooleanValueIsNotEqual">Custom error message if account is disabled.</Item>
  </Metadata>
  ...
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="Example-AssertBoolean" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

CompareBooleanClaimToValue

Pastikan apakah nilai boolean klaim sudah sama dengan true atau false, dan dapatkan hasil kompresi. Lihat demo Langsung dari transformasi klaim ini.

Elemen TransformationClaimType Jenis Data Catatan
InputClaim inputClaim boolean Klaim yang akan dibandingkan.
InputParameter valueToCompareTo boolean Nilai untuk dibandingkan (benar atau salah).
OutputClaim compareResult boolean Jenis klaim yang dihasilkan setelah transformasi klaim ini telah dipanggil.

Contoh CompareBooleanClaimToValue

Transformasi klaim berikut menunjukkan cara memeriksa nilai klaim boolean dengan nilai true. Jika nilai klaim IsAgeOver21Years sama dengan true, transformasi klaim akan menghasilkan true, jika tidak maka false.

<ClaimsTransformation Id="AssertAccountEnabled" TransformationMethod="CompareBooleanClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="IsAgeOver21Years" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim  ClaimTypeReferenceId="accountEnabled" TransformationClaimType="compareResult"/>
  </OutputClaims>
</ClaimsTransformation>
  • Klaim input:
    • inputClaim: salah
  • Parameter input:
    • valueToCompareTo: benar
  • Klaim output:
    • compareResult: salah

NotClaims

Menghitung operasi Not dari klaim input boolean dan menetapkan klaim output dengan hasil operasi. Lihat demo Langsung dari transformasi klaim ini.

Elemen TransformationClaimType Jenis Data Catatan
InputClaim inputClaim boolean Klaim untuk dioperasikan.
OutputClaim outputClaim boolean Jenis klaim yang dihasilkan setelah transformasi klaim ini telah dipanggil (benar atau salah).

Contoh NotClaims

Transformasi klaim berikut menunjukkan bagaimana melakukan negasi logis pada klaim.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Klaim input:
    • inputClaim: salah
  • Klaim output:
    • outputClaim: benar

OrClaims

Menghitung Or dari dua klaim boolean dan menetapkan klaim output dengan hasil operasi. Lihat demo Langsung dari transformasi klaim ini.

Elemen TransformationClaimType Jenis Data Catatan
InputClaim inputClaim1 boolean Klaim pertama untuk mengevaluasi.
InputClaim inputClaim2 boolean Klaim kedua untuk mengevaluasi.
OutputClaim outputClaim boolean Klaim yang dihasilkan setelah transformasi klaim ini dipanggil (benar atau salah).

Contoh OrClaims

Transformasi klaim berikut menunjukkan cara melakukan kepada dua klaim boolean Or.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="OrClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isLastTOSAcceptedNotExists" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="isLastTOSAcceptedGreaterThanNow" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="presentTOSSelfAsserted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Klaim input:
    • inputClaim1: benar
    • inputClaim2: salah
  • Klaim output:
    • outputClaim: benar

Langkah berikutnya