Freigeben über


Transformationen von booleschen Ansprüchen

Dieser Artikel enthält Beispiele für die Verwendung von Transformationen von booleschen Ansprüchen des Identity Experience Framework-Schemas in Azure Active Directory B2C (Azure AD B2C). Weitere Informationen finden Sie unter Transformationen von Ansprüchen.

AndClaims

Berechnet einen And-Vorgang für zwei boolesche Eingabeansprüche und legt den Ausgabeanspruch mit dem Ergebnis des Vorgangs fest. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Notizen
InputClaim inputClaim1 boolean Der erste zu evaluierende Anspruch.
InputClaim inputClaim2 boolean Der zweite zu evaluierende Anspruch.
OutputClaim outputClaim boolean Der Anspruch, der erstellt wird, nachdem diese Anspruchstransformation aufgerufen wurde (TRUE oder FALSE).

Beispiel für AndClaims

Die folgende Anspruchstransformation veranschaulicht, wie Sie einen And-Vorgang für zwei boolesche Ansprüche (isEmailNotExist und isSocialAccount) durchführen. true wird für den Ausgabeanspruch presentEmailSelfAsserted festgelegt, wenn beide Eingabeansprüche den Wert true aufweisen.

<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>
  • Eingabeansprüche:
    • inputClaim1: TRUE
    • inputClaim2: FALSE
  • Ausgabeansprüche:
    • outputClaim: FALSE

AssertBooleanClaimIsEqualToValue

Überprüft, ob die booleschen Werte von zwei Ansprüchen identisch sind und löst eine Ausnahme aus, wenn sie es nicht sind. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Notizen
inputClaim inputClaim boolean Der zu überprüfende Anspruch.
InputParameter valueToCompareTo boolean Der Wert, der verglichen werden soll (TRUE oder FALSE).

Die Anspruchstransformation AssertBooleanClaimIsEqualToValue wird immer über ein technisches Validierungsprofil ausgeführt, das von einem selbstbestätigten technischen Profil aufgerufen wird. Die Metadaten des selbstbestätigten technischen Profils UserMessageIfClaimsTransformationBooleanValueIsNotEqual steuern die Fehlermeldung, die das technische Profil dem Benutzer anzeigt. Die Fehlermeldungen können lokalisiert werden.

Diagramm, in dem die Verwendung der Anspruchstransformation „AssertStringClaimsAreEqual“ dargestellt ist.

Beispiel für AssertBooleanClaimIsEqualToValue

Die folgende Anspruchstransformation veranschaulicht, wie Sie den Wert eines booleschen Anspruchs mit einem true-Wert überprüfen. Wenn der Wert des Anspruchs accountEnabled FALSE ist, wird eine Fehlermeldung ausgelöst.

<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • Eingabeansprüche:
    • inputClaim: FALSE
    • valueToCompareTo: TRUE
  • Ergebnis: Fehler wird ausgelöst.

Aufrufen der Anspruchstransformation AssertBooleanClaimIsEqualToValue

Das folgende technische Validierungsprofil Example-AssertBoolean ruft die Anspruchstransformation AssertAccountEnabledIsTrue auf.

<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>

Das selbstbestätigte technische Profil ruft das technische Validierungsprofil Example-AssertBoolean auf.

<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

Überprüft, ob der boolesche Wert eines Anspruchs true oder false entspricht, und gibt das Ergebnis der Komprimierung zurück. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Notizen
InputClaim inputClaim boolean Der zu vergleichende Anspruch.
InputParameter valueToCompareTo boolean Der Wert, der verglichen werden soll (TRUE oder FALSE).
OutputClaim compareResult boolean Der Anspruch, der erstellt wird, nachdem diese Anspruchstransformation aufgerufen wurde.

Beispiel für CompareBooleanClaimToValue

Die folgende Anspruchstransformation veranschaulicht, wie Sie den Wert eines booleschen Anspruchs mit einem true-Wert überprüfen. Wenn der Wert des IsAgeOver21Years-Anspruchs true entspricht, gibt die Anspruchstransformation true, andernfalls false zurück.

<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>
  • Eingabeansprüche:
    • inputClaim: FALSE
  • Eingabeparameter:
    • valueToCompareTo: TRUE
  • Ausgabeansprüche:
    • compareResult: false

NotClaims

Berechnet einen Not-Vorgang für den booleschen Eingabeanspruch und legt den Ausgabeanspruch mit dem Ergebnis des Vorgangs fest. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Notizen
InputClaim inputClaim boolean Der auszuführende Anspruch
OutputClaim outputClaim boolean Der Anspruch, der erstellt wird, nachdem diese Anspruchstransformation aufgerufen wurde (TRUE oder FALSE).

Beispiel für NotClaims

Die folgende Anspruchstransformation veranschaulicht, wie eine logische Negation für einen Anspruch ausgeführt wird.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Eingabeansprüche:
    • inputClaim: FALSE
  • Ausgabeansprüche:
    • outputClaim: true

OrClaims

Berechnet ein Or für zwei boolesche Ansprüche und legt den Ausgabeanspruch mit dem Ergebnis des Vorgangs fest. Sehen Sie sich die Livedemo dieser Anspruchstransformation an.

Element TransformationClaimType Datentyp Notizen
InputClaim inputClaim1 boolean Der erste zu evaluierende Anspruch.
InputClaim inputClaim2 boolean Der zweite zu evaluierende Anspruch.
OutputClaim outputClaim boolean Der Anspruch, der erstellt wird, nachdem diese Anspruchstransformation aufgerufen wurde (TRUE oder FALSE).

Beispiel für OrClaims

Die folgende Anspruchstransformation veranschaulicht, wie Sie einen Or-Vorgang für zwei boolesche Ansprüche durchführen.

<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>
  • Eingabeansprüche:
    • inputClaim1: TRUE
    • inputClaim2: FALSE
  • Ausgabeansprüche:
    • outputClaim: true

Nächste Schritte