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.
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
- Temukan lebih banyak sampel transformasi klaim pada komunitas repositori GitHub Azure AD B2C