Booleska anspråkstransformeringar
Den här artikeln innehåller exempel på hur du använder booleska anspråkstransformeringar av Identity Experience Framework-schemat i Azure Active Directory B2C (Azure AD B2C). Mer information finns i anspråkstransformeringar.
AndClaims
Beräknar en And
åtgärd med två booleska indataanspråk och anger utdataanspråket med resultatet av åtgärden. Ta en titt på livedemon för den här anspråkstransformeringen.
Element | TransformationClaimType | Datatyp | Kommentarer |
---|---|---|---|
InputClaim | inputClaim1 | boolean | Det första anspråket som ska utvärderas. |
InputClaim | inputClaim2 | boolean | Det andra anspråket som ska utvärderas. |
OutputClaim | outputClaim | boolean | Det anspråk som skapas efter att denna anspråkstransformering har anropats (sant eller falskt). |
Exempel på AndClaims
Följande anspråkstransformering visar hur And
du två booleska anspråk: isEmailNotExist
, och isSocialAccount
. Utdataanspråket presentEmailSelfAsserted
anges till true
om värdena för båda indataanspråken är 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>
- Inkommande anspråk:
- inputClaim1: true
- inputClaim2: false
- Utgående anspråk:
- outputClaim: false
AssertBooleanClaimIsEqualToValue
Kontrollerar att booleska värden för två anspråk är lika och utlöser ett undantag om de inte är det. Ta en titt på livedemon för den här anspråkstransformeringen.
Element | TransformationClaimType | Datatyp | Kommentarer |
---|---|---|---|
inputClaim | inputClaim | boolean | Anspråket som ska kontrolleras. |
InputParameter | valueToCompareTo | boolean | Det värde som ska jämföras (sant eller falskt). |
Anspråkstransformeringen AssertBooleanClaimIsEqualToValue körs alltid från en teknisk valideringsprofil som anropas av en egensäkrad teknisk profil. UserMessageIfClaimsTransformationBooleanValueIsNotEqual-metadata för den tekniska profilen styr felmeddelandet som den tekniska profilen presenterar för användaren. Felmeddelandena kan lokaliseras.
Exempel på AssertBooleanClaimIsEqualToValue
Följande anspråkstransformering visar hur du kontrollerar värdet för ett booleskt anspråk med ett true
värde. Om värdet för anspråket accountEnabled
är falskt genereras ett felmeddelande.
<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
</InputParameters>
</ClaimsTransformation>
- Inkommande anspråk:
- inputClaim: false
- valueToCompareTo: true
- Resultat: Fel utlöses
Anropa AssertBooleanClaimIsEqualToValue-anspråkstransformeringen
Följande Example-AssertBoolean
tekniska verifieringsprofil anropar anspråksomvandlingen 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>
Den självbetitlade tekniska profilen anropar den tekniska valideringsprofilen 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
Kontrollerar att det booleska värdet för ett anspråk är lika med true
eller false
och returnerar resultatet av komprimering. Ta en titt på livedemon för den här anspråkstransformeringen.
Element | TransformationClaimType | Datatyp | Kommentarer |
---|---|---|---|
InputClaim | inputClaim | boolean | Anspråket som ska jämföras. |
InputParameter | valueToCompareTo | boolean | Det värde som ska jämföras (sant eller falskt). |
OutputClaim | compareResult | boolean | Anspråket som skapas efter denna anspråkstransformering har anropats. |
Exempel på CompareBooleanClaimToValue
Följande anspråkstransformering visar hur du kontrollerar värdet för ett booleskt anspråk med ett true
värde. Om anspråkets IsAgeOver21Years
värde är lika true
med returnerar true
anspråkstransformeringen , annars 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>
- Inkommande anspråk:
- inputClaim: false
- Indataparametrar:
- valueToCompareTo: true
- Utgående anspråk:
- compareResult: false
NotClaims
Beräknar en Not
åtgärd för det booleska indataanspråket och anger utdataanspråket med resultatet av åtgärden. Ta en titt på livedemon för den här anspråkstransformeringen.
Element | TransformationClaimType | Datatyp | Kommentarer |
---|---|---|---|
InputClaim | inputClaim | boolean | Anspråket som ska drivas. |
OutputClaim | outputClaim | boolean | Anspråket som skapas efter denna anspråkstransformering har anropats (sant eller falskt). |
Exempel på NotClaims
Följande anspråkstransformering visar hur du utför logisk negation på ett anspråk.
<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Indataanspråk:
- inputClaim: false
- Utdataanspråk:
- outputClaim: true
OrClaims
Beräknar ett Or
av två booleska anspråk och anger utdataanspråket med resultatet av åtgärden. Titta på livedemon för den här anspråkstransformeringen.
Element | TransformationClaimType | Datatyp | Kommentarer |
---|---|---|---|
InputClaim | inputClaim1 | boolean | Det första anspråket att utvärdera. |
InputClaim | inputClaim2 | boolean | Det andra anspråket att utvärdera. |
OutputClaim | outputClaim | boolean | Anspråket som kommer att skapas efter att denna anspråkstransformering har anropats (sant eller falskt). |
Exempel på OrClaims
Följande anspråkstransformering visar hur Or
du två booleska anspråk.
<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>
- Indataanspråk:
- inputClaim1: true
- inputClaim2: false
- Utdataanspråk:
- outputClaim: true
Nästa steg
- Hitta fler exempel på anspråkstransformering på github-lagringsplatsen för Azure AD B2C-community