Dela via


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.

Diagram som visar hur du använder anspråkstransformeringen AssertStringClaimsAreEqual.

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 falseoch 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 truemed returnerar trueansprå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