Share via


Tekenreeksclaimtransformaties

Dit artikel bevat voorbeelden voor het gebruik van tekenreeksclaimtransformaties van het Identity Experience Framework-schema in Azure Active Directory B2C (Azure AD B2C). Zie claimtransformaties voor meer informatie.

AssertStringClaimsAreEqual

Vergelijkt twee claims en genereert een uitzondering als deze niet gelijk zijn aan de opgegeven vergelijking inputClaim1, inputClaim2 en stringComparison.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim1 tekenreeks Het type van de eerste claim, dat moet worden vergeleken.
InputClaim inputClaim2 tekenreeks Het type van de tweede claim, dat moet worden vergeleken.
InputParameter stringComparison tekenreeks tekenreeksvergelijking, een van de waarden: Ordinal, OrdinalIgnoreCase.

De claimtransformatie AssertStringClaimsAreEqual wordt altijd uitgevoerd vanuit een technisch validatieprofiel dat wordt aangeroepen door een zelf-gecontroleerd technisch profiel of een DisplayControl. De UserMessageIfClaimsTransformationStringsAreNotEqual metagegevens van een zelf-gecontroleerd technisch profiel bepalen het foutbericht dat aan de gebruiker wordt gepresenteerd. De foutberichten kunnen worden gelokaliseerd.

Het diagram laat zien hoe de claimtransformatie assert string claims are equal moet worden gebruikt.

Voorbeeld van AssertStringClaimsAreEqual

U kunt deze claimtransformatie gebruiken om ervoor te zorgen dat twee claims dezelfde waarde hebben. Als dat niet het probleem is, wordt er een foutbericht gegenereerd. In het volgende voorbeeld wordt gecontroleerd of de claim strongAuthenticationEmailAddress gelijk is aan de claim e-mail. Anders wordt er een foutbericht gegenereerd.

<ClaimsTransformation Id="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
  </InputParameters>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • Invoerparameters:
    • stringComparison: ordinalIgnoreCase
  • Resultaat: fout gegenereerd

De claimtransformatie assertstringClaimsAreEqual aanroepen

Het technische validatieprofiel login-NonInteractive roept de claimtransformatie AssertEmailAndStrongAuthenticationEmailAddressAreEqual aan.

<TechnicalProfile Id="login-NonInteractive">
  ...
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
  </OutputClaimsTransformations>
</TechnicalProfile>

Het zelf-gecontroleerde technische profiel roept het technische validatieprofiel login-NonInteractive aan.

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
  </Metadata>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

BuildUri

Hiermee maakt u een tijd op basis van de TOTP-URI (Time Password). De URI is een combinatie van de unieke id van de gebruiker, zoals e-mailadres en een geheime sleutel. De URI wordt later geconverteerd naar een QR-code die wordt gepresenteerd aan de gebruiker. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim path tekenreeks De unieke id van de gebruiker, zoals e-mailadres, gebruikersnaam of telefoonnummer.
InputClaim query.secret tekenreeks De TOTP-geheime sleutel.
InputParameter scheme tekenreeks Het schemagedeelte van de URI. Bijvoorbeeld: otpauth.
InputParameter host tekenreeks Het schemagedeelte van de URI. Bijvoorbeeld: totp.
InputParameter query.issuer tekenreeks Het verlenergedeelte van de URI. Bijvoorbeeld: {AuthenticatorIssuer}.
OutputClaim outputClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Voorbeeld van BuildUri

Met de volgende claimtransformatie wordt een TOTP-URI gegenereerd die wordt weergegeven in de QR-code of deep link.

<ClaimsTransformation Id="CreateUriString" TransformationMethod="BuildUri">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="uriLabel" TransformationClaimType="path" />
    <InputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="query.secret" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="scheme" DataType="string" Value="otpauth" />
    <InputParameter Id="host" DataType="string" Value="totp" />
    <InputParameter Id="query.issuer" DataType="string" Value="{AuthenticatorIssuer}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="qrCodeContent" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • pad: emily@fabrikam.com
    • query.secret: fay2lj7ynpntjgqa
  • Invoerparameters:
    • schema: otpauth
    • host: totp
    • query.issuer: {AuthenticatorIssuer}
  • Uitvoerclaims:
    • outputClaim: otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

ChangeCase

Wijzigt de letters van de opgegeven claim in kleine letters of hoofdletters, afhankelijk van de operator. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim1 tekenreeks De claim die moet worden gewijzigd.
InputParameter toCase tekenreeks Een van de volgende waarden: LOWER of UPPER.
OutputClaim outputClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Voorbeeld van ChangeCase

Met de volgende claimtransformatie wordt de e-mailclaim gewijzigd in kleine letters.

<ClaimsTransformation Id="ChangeToLower" TransformationMethod="ChangeCase">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="toCase" DataType="string" Value="LOWER" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • email: SomeOne@contoso.com
  • Invoerparameters:
    • toCase: LOWER
  • Uitvoerclaims:
    • email: someone@contoso.com

CompareClaims

Bepaalt of de ene tekenreeksclaim gelijk is aan een andere. Het resultaat is een nieuwe booleaanse claim met de waarde true of false. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim1 tekenreeks Het type van de eerste claim, dat moet worden vergeleken.
InputClaim inputClaim2 tekenreeks Het type van de tweede claim, dat moet worden vergeleken.
InputParameter operator tekenreeks Mogelijke waarden: EQUAL of NOT EQUAL.
InputParameter ignoreCase tekenreeks Hiermee geeft u op of deze vergelijking het gebruik van hoofdletters of kleine letters moet negeren voor de tekenreeksen die worden vergeleken.
OutputClaim outputClaim boolean De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Voorbeeld van CompareClaims

Gebruik deze claimtransformatie om te controleren of een claim gelijk is aan een andere claim. Met de volgende claimtransformatie wordt gecontroleerd of de waarde van de claim email identiek is aan de claim Verified.Email.

<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • Invoerparameters:
    • operator: NOT EQUAL
    • ignoreCase: true
  • Uitvoerclaims:
    • outputClaim: true

CompareClaimToValue

Bepaalt of een claimwaarde gelijk is aan de invoerparameterwaarde. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim1 tekenreeks Het type van de claim, dat moet worden vergeleken.
InputParameter operator tekenreeks Mogelijke waarden: EQUAL of NOT EQUAL.
InputParameter compareTo tekenreeks Tekenreeksvergelijking, een van de waarden, dat wil zeggen, de tekenreeks waarmee de invoerclaimwaarden moeten worden vergeleken: Ordinal, OrdinalIgnoreCase.
InputParameter ignoreCase tekenreeks Hiermee geeft u op of deze vergelijking het gebruik van hoofdletters of kleine letters moet negeren voor de tekenreeksen die worden vergeleken.
OutputClaim outputClaim boolean De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Voorbeeld van CompareClaimToValue

Gebruik deze claimtransformatie om te controleren of een claim gelijk is aan een waarde die u hebt opgegeven. Met de volgende claimtransformatie wordt bijvoorbeeld gecontroleerd of de waarde van de claim TermsOfUseConsentVersion gelijk is aan V2.

<ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="compareTo" DataType="string" Value="V2" />
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim1: v1
  • Invoerparameters:
    • compareTo: V2
    • operator: NOT EQUAL
    • ignoreCase: true
  • Uitvoerclaims:
    • outputClaim: true

CopyClaimIfPredicateMatch

Kopieert de waarde van een claim naar een andere als de waarde van de invoerclaim overeenkomt met het predicaat van de uitvoerclaim. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim tekenreeks Het claimtype, dat moet worden gekopieerd.
OutputClaim outputClaim tekenreeks Het claimtype dat wordt geproduceerd nadat deze claimtransformatie is aangeroepen. De waarde van de invoerclaim wordt gecontroleerd op basis van dit claimpredicaat.

Voorbeeld van CopyClaimIfPredicateMatch

In het volgende voorbeeld wordt geprobeerd de signInName-claimwaarde te kopiëren naar de claim phoneNumber. In dit voorbeeld wordt de waarde niet gekopieerd. De signInName-claim heeft niet de verwachte notatie, het telefoonnummer. Zie het startpakketbeleid Aanmelden met telefoonnummer of e-mail voor het volledige voorbeeld.

<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: bob@contoso.com
  • Uitvoerclaims:
    • outputClaim: de uitvoerclaim wordt niet gewijzigd van de oorspronkelijke waarde.

Voorbeeld van CopyClaimIfPredicateMatch dat het predicaat verveelvoudigt

In dit voorbeeld kopieert de claimtransformatie de waarde. De signInName-claim heeft de juiste notatie, telefoonnummer.

  • Invoerclaims:
    • inputClaim: +11234567890
  • Uitvoerclaims:
    • outputClaim: +11234567890

CreateOtpSecret

Hiermee maakt u een TOTP-tekenreeksclaim. De uitvoer van deze claimtransformatie is een TOTP-geheim dat later wordt opgeslagen in het Azure AD B2C-account van de gebruiker en wordt gedeeld met de Microsoft Authenticator-app. De Authenticator-app gebruikt de sleutel om TOTP-codes te genereren wanneer de gebruiker MFA moet doorlopen. Uw beleid gebruikt de sleutel om de TOTP-code van de gebruiker te valideren.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
OutputClaim outputClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen, met de gegenereerde TOTP-code.

Voorbeeld van CreateOtpSecret

Met de volgende claimtransformatie wordt een geheim gemaakt voor de TOTP Multi-Factor Authenticator.

<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Uitvoerclaims:
    • outputClaim: hmlcmd4ph6fph64c

CreateRandomString

Hiermee maakt u een willekeurige tekenreeks met behulp van de generator voor willekeurige getallen. Als de generator voor willekeurige getallen van het type integer is, kan eventueel een seed-parameter en een maximumaantal worden opgegeven. Met een optionele parameter voor tekenreeksindeling kan de uitvoer worden opgemaakt en met een optionele base64-parameter wordt aangegeven of de uitvoer base64 gecodeerd randomGeneratorType [guid, integer] outputClaim (String) is.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputParameter randomGeneratorType tekenreeks Hiermee geeft u de willekeurige waarde die moet worden gegenereerd, GUID (globale unieke id) of INTEGER (een getal).
InputParameter stringFormat tekenreeks [Optioneel] Maak de willekeurige waarde op.
InputParameter base64 boolean [Optioneel] Converteer de willekeurige waarde naar base64. Als de tekenreeksindeling is toegepast, is dit de waarde nadat de tekenreeksindeling is gecodeerd in base64.
InputParameter maximumNumber int [Optioneel] Alleen voor INTEGER randomGeneratorType. Geef het maximumaantal op.
InputParameter seed int [Optioneel] Alleen voor INTEGER randomGeneratorType. Geef de seed op voor de willekeurige waarde. Opmerking: dezelfde seed levert dezelfde reeks willekeurige getallen op.
OutputClaim outputClaim tekenreeks De claims die worden geproduceerd nadat deze claimtransformatie is aangeroepen. De willekeurige waarde.

Voorbeeld van CreateRandomString

In het volgende voorbeeld wordt een globale unieke id gegenereerd. Deze claimtransformatie wordt gebruikt om de willekeurige UPN (user principal name) te maken.

<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerparameters:
    • randomGeneratorType: GUID
  • Uitvoerclaims:
    • outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc

Voorbeeld van CreateRandomString waarbij een numerieke waarde wordt gemaakt

In het volgende voorbeeld wordt een willekeurige geheel getalwaarde tussen 0 en 1000 gegenereerd. De waarde is opgemaakt voor OTP_{willekeurige waarde}.

<ClaimsTransformation Id="SetRandomNumber" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="INTEGER" />
    <InputParameter Id="maximumNumber" DataType="int" Value="1000" />
    <InputParameter Id="stringFormat" DataType="string" Value="OTP_{0}" />
    <InputParameter Id="base64" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="randomNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerparameters:
    • randomGeneratorType: INTEGER
    • maximumNumber: 1000
    • stringFormat: OTP_{0}
    • base64: false
  • Uitvoerclaims:
    • outputClaim: OTP_853

CreateStringClaim

Hiermee maakt u een tekenreeksclaim op basis van de opgegeven invoerparameter in de transformatie. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputParameter waarde tekenreeks De tekenreeks die moet worden ingesteld. Deze invoerparameter ondersteunt transformatie-expressies voor tekenreeksclaims.
OutputClaim createdClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen, met de waarde die is opgegeven in de invoerparameter.

Voorbeeld van CreateStringClaim

Met de volgende claimtransformatie maakt u een tekenreekswaarde met servicevoorwaarden.

<ClaimsTransformation Id="CreateTermsOfService" TransformationMethod="CreateStringClaim">
  <InputParameters>
    <InputParameter Id="value" DataType="string" Value="Contoso terms of service..." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="TOS" TransformationClaimType="createdClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerparameter:
    • waarde: De servicevoorwaarden van Contoso...
  • Uitvoerclaims:
    • createdClaim: De TOS-claim bevat de waarde 'Contoso-servicevoorwaarden...'.

FormatLocalizedString

Hiermee worden meerdere claims opgemaakt op basis van een opgegeven gelokaliseerde notatietekenreeks. Deze transformatie maakt gebruik van de C# String.Format-methode. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaims tekenreeks De verzameling invoerclaims die fungeren als tekenreeksindeling{0}, {1}, {2} parameters.
InputParameter stringFormatId tekenreeks De StringId van een gelokaliseerde tekenreeks.
OutputClaim outputClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Notitie

Er is geen limiet voor het aantal invoerclaims dat u kunt opgeven, maar de maximale lengte van de opgemaakte tekenreeks is 4000.

De claimtransformatie FormatLocalizedString gebruiken:

  1. Definieer een lokalisatietekenreeks en koppel deze aan een zelf-bevestigd-technisch-profiel.
  2. Het ElementType van het element LocalizedString moet worden ingesteld op FormatLocalizedStringTransformationClaimType.
  3. De StringId is een unieke id die u definieert en later gebruikt in uw claimtransformatie stringFormatId.
  4. Geef in de claimtransformatie de lijst met claims op die moeten worden ingesteld met de gelokaliseerde tekenreeks. Stel vervolgens het stringFormatId in op het StringId van het gelokaliseerde tekenreekselement.
  5. In een zelf-bevestigd technisch profiel, of een invoer- of uitvoerclaimtransformatie weergavebeheer, maakt u een verwijzing naar uw claimtransformatie.

Voorbeeld van FormatLocalizedString

In het volgende voorbeeld wordt een foutbericht gegenereerd wanneer een account zich al in de map bevindt. In het voorbeeld worden gelokaliseerde tekenreeksen gedefinieerd voor Engels (standaard) en Spaans.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
      </LocalizedStrings>
    </LocalizedResources>
  <LocalizedResources Id="api.localaccountsignup.es">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

Met de claimtransformatie wordt een antwoordbericht gemaakt op basis van de gelokaliseerde tekenreeks. Het bericht bevat het e-mailadres van de gebruiker dat is ingesloten in de gelokaliseerde tekenreeks ResponseMessge_EmailExists.

<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: sarah@contoso.com
  • Invoerparameters:
    • stringFormat: ResponseMessge_EmailExists
  • Uitvoerclaims:
    • outputClaim: het e-mailadres 'sarah@contoso.com' is al een account in deze organisatie. Selecteer Volgende om u aan te melden met dat account.

FormatStringClaim

Hiermee wordt een claim opgemaakt op basis van de opgegeven notatietekenreeks. Deze transformatie maakt gebruik van de C# String.Format-methode. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim tekenreeks De claim die fungeert als parameter voor tekenreeksindeling {0}.
InputParameter stringFormat tekenreeks De tekenreeksindeling, inclusief de parameter {0}. Deze invoerparameter ondersteunt transformatie-expressies voor tekenreeksclaims.
OutputClaim outputClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Notitie

De maximale toegestane tekenreeksindeling is 4000.

Voorbeeld van FormatStringClaim

Gebruik deze claimtransformatie om een tekenreeks met één parameter {0} op te maken. In het volgende voorbeeld wordt een userPrincipalName gemaakt. Alle technische profielen van sociale id-providers, zoals Facebook-OAUTH roept de createUserPrincipalName aan om een userPrincipalName te genereren.

<ClaimsTransformation Id="CreateUserPrincipalName" TransformationMethod="FormatStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="cpim_{0}@{RelyingPartyTenantId}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
  • Invoerparameters:
    • stringFormat: cpim_{0}@{RelyingPartyTenantId}
  • Uitvoerclaims:
    • outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com

FormatStringMultipleClaims

Hiermee worden twee claims opgemaakt op basis van de opgegeven notatietekenreeks. Deze transformatie maakt gebruik van de C# String.Format-methode. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim1 tekenreeks De claim die fungeert als parameter voor tekenreeksindeling {0}.
InputClaim inputClaim2 tekenreeks De claim die fungeert als parameter voor tekenreeksindeling {1}.
InputParameter stringFormat tekenreeks De tekenreeksindeling, inclusief de parameters {0} en {1}. Deze invoerparameter ondersteunt transformatie-expressies voor tekenreeksclaims.
OutputClaim outputClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen.

Notitie

De maximale toegestane tekenreeksindeling is 4000.

Voorbeeld van FormatStringMultipleClaims

Gebruik deze claimtransformatie om een tekenreeks met twee parameters, {0} en {1}, op te maken. In het volgende voorbeeld wordt een displayName gemaakt met de opgegeven indeling:

<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="surName" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim1: Joe
    • inputClaim2: Fernando
  • Invoerparameters:
    • stringFormat: {0}{1}
  • Uitvoerclaims:
    • outputClaim: Joe Fernando

GetLocalizedStringsTransformation

Hiermee kopieert u gelokaliseerde tekenreeksen naar claims. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
OutputClaim De naam van de gelokaliseerde tekenreeks tekenreeks Lijst met claimtypen die worden geproduceerd nadat deze claimtransformatie is aangeroepen.

De claimtransformatie getLocalizedStringsTransformation gebruiken:

  1. Definieer een lokalisatietekenreeks voor uw inhoudsdefinitie, zoals api.selfasserted.

  2. Het ElementType van het element LocalizedString moet worden ingesteld op GetLocalizedStringsTransformationClaimType.

  3. De StringId is een unieke id die u definieert en later gebruikt in uw claimtransformatie.

  4. Geef in de claimtransformatie de lijst met claims op die moeten worden ingesteld met de gelokaliseerde tekenreeks. De ClaimTypeReferenceId is een verwijzing naar een claim die al is gedefinieerd in de sectie ClaimsSchema in het beleid. De TransformationClaimType is de naam van de gelokaliseerde tekenreeks zoals gedefinieerd in het StringId van het element LocalizedString.

  5. Maak in een zelf-bevestigde of claimtransformatie van de claimtransformatie van het technische profiel een verwijzing naar uw claimtransformatie.

  6. Koppel het technische profiel aan de inhoudsdefinitie, zoals api.selfasserted. In het volgende voorbeeld ziet u hoe u een technisch profiel koppelt aan de api.selfasserted inhoudsdefinitie.

    <Metadata>
      <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    </Metadata>
    

In het volgende diagram ziet u hoe u de claimtransformatie configureert met de lokalisatie-elementen:

Diagram toont hoe u de claimtransformatie gelokaliseerde tekenreeksen ophalen moet gebruiken.

Voorbeeld van GetLocalizedStringsTransformation

In het volgende voorbeeld wordt gezocht naar het onderwerp van de e-mail, de hoofdtekst, het codebericht en de handtekening van het e-mailbericht, van gelokaliseerde tekenreeksen. De claims die later worden gebruikt door een aangepaste sjabloon voor e-mailverificatie.

Definieer gelokaliseerde tekenreeksen voor Engels (standaard) en Spaans.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
     </LocalizedStrings>
   </LocalizedResources>
   <LocalizedResources Id="api.localaccountsignup.es">
     <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Código de verificación del correo electrónico de la cuenta de Contoso</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Gracias por comprobar la cuenta de </LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Su código es</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Atentamente</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

Met de claimtransformatie wordt de waarde van het claimtype onderwerp ingesteld met de waarde van het StringIdemail_subject.

<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
    <OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
    <OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
    <OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
   </OutputClaims>
</ClaimsTransformation>
  • Uitvoerclaims:
    • onderwerp: e-mailverificatiecode voor contoso-account
    • bericht: Bedankt voor het verifiëren van uw account!
    • codeIntro: Uw code is
    • handtekening: Met vriendelijke groet

GetMappedValueFromLocalizedCollection

Hiermee wordt een element toegewezen aan de verzameling Beperking van de invoerclaim. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim mapFromClaim tekenreeks De claim die de tekst bevat die moet worden opgezocht in de claims restrictionValueClaim met de verzameling Beperking.
OutputClaim restrictionValueClaim tekenreeks De claim die de verzameling Beperking bevat. Nadat de claimtransformatie is aangeroepen, bevat de waarde van deze claim de waarde van het geselecteerde item.

Voorbeeld van GetMappedValueFromLocalizedCollection

In het volgende voorbeeld wordt de beschrijving van het foutbericht opgezocht op basis van de foutsleutel. De claim responseMsg bevat een verzameling foutberichten die aan de eindgebruiker moeten worden weergegeven of die naar de Relying Party moeten worden verzonden.

<ClaimType Id="responseMsg">
  <DisplayName>Error message: </DisplayName>
  <DataType>string</DataType>
  <UserInputType>Paragraph</UserInputType>
  <Restriction>
    <Enumeration Text="B2C_V1_90001" Value="You cannot sign in because you are a minor" />
    <Enumeration Text="B2C_V1_90002" Value="This action can only be performed by gold members" />
    <Enumeration Text="B2C_V1_90003" Value="You have not been enabled for this operation" />
  </Restriction>
</ClaimType>

De claimtransformatie zoekt de tekst van het item op en retourneert de waarde. Als de beperking is gelokaliseerd met behulp van <LocalizedCollection>, retourneert de claimtransformatie de gelokaliseerde waarde.

<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />        
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • mapFromClaim: B2C_V1_90001
  • Uitvoerclaims:
    • restrictionValueClaim: U kunt zich niet aanmelden omdat u een minderjarige bent.

LookupValue

Hiermee wordt gezocht naar een claimwaarde uit een lijst met waarden op basis van de waarde van een andere claim. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputParameterId tekenreeks De claim die de opzoekwaarde bevat
InputParameter tekenreeks Verzameling inputParameters.
InputParameter errorOnFailedLookup boolean Bepalen of er een fout wordt geretourneerd wanneer er geen overeenkomende zoekactie is.
OutputClaim outputClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. De waarde van de overeenkomende Id.

Voorbeeld van LookupValue

In het volgende voorbeeld wordt de domeinnaam in een van de inputParameters-verzamelingen opgezocht. De claimtransformatie zoekt de domeinnaam in de id op en retourneert de waarde (een toepassings-id).

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputParameterId: test.com
  • Invoerparameters:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: niet waar
  • Uitvoerclaims:
    • outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9

Voorbeeld van LookupValue met fout

Wanneer de invoerparameter errorOnFailedLookup is ingesteld op true, wordt de claimtransformatie LookupValue altijd uitgevoerd vanuit een technisch validatieprofiel dat wordt aangeroepen door een zelf-bevestigd technisch profiel of een DisplayControl. De LookupNotFound metagegevens van een zelf-gecontroleerd technisch profiel bepalen het foutbericht dat aan de gebruiker wordt gepresenteerd.

Diagram toont hoe u de claimtransformatie opzoekwaarde moet gebruiken.

In het volgende voorbeeld wordt de domeinnaam in een van de inputParameters-verzamelingen opgezocht. De claimtransformatie zoekt de domeinnaam in de id op en retourneert de waarde (een toepassings-id) of genereert een foutbericht.

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputParameterId: live.com
  • Invoerparameters:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: waar
  • Fout:
    • Er is geen overeenkomst gevonden voor de invoerclaimwaarde in de lijst met invoerparameter-id's en errorOnFailedLookup is waar.

NullClaim

Hiermee wordt de waarde van een bepaalde claim opgeschoond. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
OutputClaim claim_to_null tekenreeks De waarde van de claim is ingesteld op NULL.

Voorbeeld van NullClaim

Gebruik deze claimtransformatie om onnodige gegevens uit de claimeigenschapszak te verwijderen, zodat de sessiecookie kleiner wordt. In het volgende voorbeeld wordt de waarde van het TermsOfService claimtype verwijderd.

<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
  <OutputClaims>
  <OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • outputClaim: Welkom bij Contoso App. Als u doorgaat met bladeren en deze website te gebruiken, gaat u ermee akkoord om te voldoen aan en gebonden te zijn aan de volgende voorwaarden...
  • Uitvoerclaims:
    • outputClaim: NULL

ParseDomain

Hiermee haalt u het domeingedeelte van een e-mailadres op. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim emailAddress tekenreeks De claim die het e-mailadres bevat.
OutputClaim domain tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen - het domein.

Voorbeeld van ParseDomain

Gebruik deze claimtransformatie om de domeinnaam te parseren na het @-symbool van de gebruiker. De volgende claimtransformatie laat zien hoe u de domeinnaam van een claim e-mail kunt parseren.

<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • emailAddress: joe@outlook.com
  • Uitvoerclaims:
    • domain: outlook.com

SetClaimIfBooleansMatch

Hiermee wordt gecontroleerd of een Booleaanse claim true of false is. Zo ja, stelt u de uitvoerclaims in met de waarde die aanwezig is in outputClaimIfMatched invoerparameter. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim claimToMatch tekenreeks Het claimtype, dat moet worden gecontroleerd. Een null waarde genereert een uitzondering.
InputParameter matchTo tekenreeks De waarde die moet worden vergeleken met claimToMatch invoerclaim. Mogelijke waarden: true of false.
InputParameter outputClaimIfMatched tekenreeks De waarde die moet worden ingesteld als de invoerclaim gelijk is aan de matchTo invoerparameter.
OutputClaim outputClaim tekenreeks Als de claimToMatch invoerclaim gelijk is aan de matchTo invoerparameter, bevat deze uitvoerclaim de waarde van outputClaimIfMatched invoerparameter.

Voorbeeld van SetClaimIfBooleansMatch

Met de volgende claimtransformatie wordt bijvoorbeeld gecontroleerd of de waarde van de claim hasPromotionCode gelijk is aan true. Zo ja, retourneer de waarde naar Promotiecode niet gevonden.

<ClaimsTransformation Id="GeneratePromotionCodeError" TransformationMethod="SetClaimIfBooleansMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="hasPromotionCode" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="true" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="Promotion code not found." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="promotionCode" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • claimToMatch: true
  • Invoerparameters:
    • matchTo: true
    • outputClaimIfMatched: 'Promotiecode niet gevonden'.
  • Uitvoerclaims:
    • outputClaim: 'Promotiecode niet gevonden.'

SetClaimsIfRegexMatch

Controleert of een tekenreeksclaim claimToMatch en matchTo invoerparameter gelijk zijn en stelt de uitvoerclaims in met de waarde die aanwezig is in outputClaimIfMatched invoerparameter, samen met de vergelijking van de resultaatuitvoerclaim, die moet worden ingesteld als true of false op basis van het resultaat van de vergelijking.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
inputClaim claimToMatch tekenreeks Het type van de claim, dat moet worden vergeleken.
InputParameter matchTo tekenreeks De reguliere expressie waarmee de claim overeen moet komen.
InputParameter outputClaimIfMatched tekenreeks De waarde die moet worden ingesteld als tekenreeksen gelijk zijn.
InputParameter extractGroups boolean [Optioneel] Hiermee geeft u op of de Regex-overeenkomst groepswaarden moet extraheren. Mogelijke waarden: true of false (standaard).
OutputClaim outputClaim tekenreeks Als de reguliere expressie overeenkomt, bevat deze uitvoerclaim de waarde van outputClaimIfMatched invoerparameter. Of null, als er geen overeenkomst is.
OutputClaim regexCompareResultClaim boolean De reguliere expressie komt overeen met het resultaatuitvoerclaimtype, dat moet worden ingesteld als true of false op basis van het resultaat van overeenkomende waarden.
OutputClaim De naam van de claim tekenreeks Als de extractGroups-invoerparameter is ingesteld op waar, wordt een lijst met claimtypen weergegeven die worden geproduceerd nadat deze claimtransformatie is aangeroepen. De naam van de claim moet overeenkomen met de Regex-groepsnaam.

Voorbeeld van SetClaimsIfRegexMatch

Controleert of het opgegeven telefoonnummer geldig is, op basis van het reguliere expressiepatroon van het telefoonnummer.

<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="^[0-9]{4,16}$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="iPhone" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isPhoneBoolean" TransformationClaimType="regexCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • claimToMatch: '64854114520'
  • Invoerparameters:
    • matchTo: '^[0-9]{4,16}$'
    • outputClaimIfMatched: 'Telefoon'
  • Uitvoerclaims:
    • outputClaim: 'iPhone'
    • regexCompareResultClaim: true

Voorbeeld van SetClaimsIfRegexMatch met extractiegroepen

Controleert of het opgegeven e-mailadres geldig is en retourneert de e-mailalias. Bekijk de livedemo van deze claimtransformatie met extractiegroepen.

<ClaimsTransformation Id="GetAliasFromEmail" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="(?&lt;mailAlias&gt;.*)@(.*)$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
    <InputParameter Id="extractGroups" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
    <OutputClaim ClaimTypeReferenceId="mailAlias" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • claimToMatch: 'emily@contoso.com'
  • Invoerparameters:
    • matchTo: (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: 'isEmail'
    • extractGroups: true
  • Uitvoerclaims:
    • outputClaim: 'isEmail'
    • regexCompareResultClaim: true
    • mailAlias: emily

SetClaimsIfStringsAreEqual

Controleert of een tekenreeksclaim matchTo invoerparameter gelijk zijn en stelt de uitvoerclaims in met de waarde die aanwezig is in invoerparameters stringMatchMsg en stringMatchMsgCode, samen met de vergelijking van de resultaatuitvoerclaim, die moet worden ingesteld als true of false op basis van het resultaat van de vergelijking.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim tekenreeks Het type van de claim, dat moet worden vergeleken.
InputParameter matchTo tekenreeks De tekenreeks die moet worden vergeleken met inputClaim.
InputParameter stringComparison tekenreeks Mogelijke waarden: Ordinal of OrdinalIgnoreCase.
InputParameter stringMatchMsg tekenreeks Eerste waarde die moet worden ingesteld als tekenreeksen gelijk zijn.
InputParameter stringMatchMsgCode tekenreeks Tweede waarde die moet worden ingesteld als tekenreeksen gelijk zijn.
OutputClaim outputClaim1 tekenreeks Als tekenreeksen gelijk zijn aan, bevat deze uitvoerclaim de waarde van stringMatchMsg invoerparameter.
OutputClaim outputClaim2 tekenreeks Als tekenreeksen gelijk zijn aan, bevat deze uitvoerclaim de waarde van stringMatchMsgCode invoerparameter.
OutputClaim stringCompareResultClaim boolean Het claimtype resultaatuitvoer vergelijken, dat moet worden ingesteld als true of false op basis van het resultaat van de vergelijking.

Voorbeeld van SetClaimsIfStringsAreEqual

U kunt deze claimtransformatie gebruiken om te controleren of een claim gelijk is aan een waarde die u hebt opgegeven. Met de volgende claimtransformatie wordt bijvoorbeeld gecontroleerd of de waarde van de claim TermsOfUseConsentVersion gelijk is aan v1. Zo ja, wijzigt u de waarde in v2.

<ClaimsTransformation Id="CheckTheTOS" TransformationMethod="SetClaimsIfStringsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="v1" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="stringMatchMsgCode" DataType="string" Value="B2C_V1_90005" />
    <InputParameter Id="stringMatchMsg" DataType="string" Value="The TOS is upgraded to v2" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="outputClaim1" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeCode" TransformationClaimType="outputClaim2" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeResult" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: v1
  • Invoerparameters:
    • matchTo: V1
    • stringComparison: ordinalIgnoreCase
    • stringMatchMsgCode: B2C_V1_90005
    • stringMatchMsg: De TOS wordt bijgewerkt naar v2
  • Uitvoerclaims:
    • outputClaim1: B2C_V1_90005
    • outputClaim2: De TOS wordt bijgewerkt naar v2
    • stringCompareResultClaim: true

SetClaimsIfStringsMatch

Controleert of een tekenreeksclaim en matchTo invoerparameter gelijk zijn en stelt de uitvoerclaims in met de waarde die aanwezig is in outputClaimIfMatched invoerparameter, samen met de vergelijking van de resultaatuitvoerclaim, die moet worden ingesteld als true of false op basis van het resultaat van de vergelijking.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim claimToMatch tekenreeks Het type van de claim, dat moet worden vergeleken.
InputParameter matchTo tekenreeks De tekenreeks die moet worden vergeleken met inputClaim.
InputParameter stringComparison tekenreeks Mogelijke waarden: Ordinal of OrdinalIgnoreCase.
InputParameter outputClaimIfMatched tekenreeks De waarde die moet worden ingesteld als tekenreeksen gelijk zijn.
OutputClaim outputClaim tekenreeks Als tekenreeksen gelijk zijn aan, bevat deze uitvoerclaim de waarde van outputClaimIfMatched invoerparameter. Of null, als de tekenreeksen niet overeenkomen.
OutputClaim stringCompareResultClaim boolean Het claimtype resultaatuitvoer vergelijken, dat moet worden ingesteld als true of false op basis van het resultaat van de vergelijking.

Voorbeeld van SetClaimsIfStringsMatch

Met de volgende claimtransformatie wordt bijvoorbeeld gecontroleerd of de waarde van de claim ageGroup gelijk is aan Minor. Zo ja, retourneer de waarde naar B2C_V1_90001.

<ClaimsTransformation Id="SetIsMinor" TransformationMethod="SetClaimsIfStringsMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="ageGroup" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="Minor" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="B2C_V1_90001" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isMinor" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isMinorResponseCode" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • claimToMatch: Minor
  • Invoerparameters:
    • matchTo: Minor
    • stringComparison: ordinalIgnoreCase
    • outputClaimIfMatched: B2C_V1_90001
  • Uitvoerclaims:
    • isMinorResponseCode: true
    • isMinor: B2C_V1_90001

StringContains

Bepaalt of een opgegeven subtekenreeks plaatsvindt binnen de invoerclaim. Het resultaat is een nieuwe booleaanse claim met de waarde true of false. true als de waardeparameter zich in deze tekenreeks voordoet, anders, false.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim tekenreeks Het type van de claim, dat moet worden opgezocht.
InputParameter bevat tekenreeks De te zoeken waarde.
InputParameter ignoreCase tekenreeks Hiermee geeft u op of deze vergelijking het gebruik van hoofdletters of kleine letters moet negeren voor de tekenreeks die wordt vergeleken.
OutputClaim outputClaim tekenreeks De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. Een booleaanse indicator als de subtekenreeks optreedt binnen de invoerclaim.

Voorbeeld van StringContains

Gebruik deze claimtransformatie om te controleren of een tekenreeksclaimtype een subtekenreeks bevat. In het volgende voorbeeld wordt gecontroleerd of het claimtype van de tekenreeks roles de waarde beheerder bevat.

<ClaimsTransformation Id="CheckIsAdmin" TransformationMethod="StringContains">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
  </InputClaims>
  <InputParameters>
    <InputParameter  Id="contains" DataType="string" Value="admin"/>
    <InputParameter  Id="ignoreCase" DataType="string" Value="true"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: "Beheerder, Fiatteur, Editor"
  • Invoerparameters:
    • contains: "beheerder,"
    • ignoreCase: true
  • Uitvoerclaims:
    • outputClaim: true

StringSubstring

Extraheert onderdelen van een tekenreeksclaimtype, beginnend bij het teken op de opgegeven positie en retourneert het opgegeven aantal tekens. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim tekenreeks Het claimtype, dat de tekenreeks bevat.
InputParameter startIndex int De op nul gebaseerde begintekenpositie van een subtekenreeks in dit exemplaar.
InputParameter length int Het aantal tekens in de subtekenreeks.
OutputClaim outputClaim tekenreeks Een tekenreeks die gelijk is aan de subtekenreeks lengte die begint bij startIndex in dit exemplaar, of Leeg als startIndex gelijk is aan de lengte van dit exemplaar en de lengte nul is.

Voorbeeld van StringSubstring

Haal bijvoorbeeld het voorvoegsel land/regio van het telefoonnummer op.

<ClaimsTransformation Id="GetPhonePrefix" TransformationMethod="StringSubstring">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="startIndex" DataType="int" Value="0" />
  <InputParameter Id="length" DataType="int" Value="2" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phonePrefix" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: "+1644114520"
  • Invoerparameters:
    • startIndex: 0
    • length: 2
  • Uitvoerclaims:
    • outputClaim: "+1"

StringReplace

Zoekt in een claimtypetekenreeks naar een opgegeven waarde en retourneert een nieuwe claimtypetekenreeks waarin alle exemplaren van een opgegeven tekenreeks in de huidige tekenreeks worden vervangen door een andere opgegeven tekenreeks.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim tekenreeks Het claimtype, dat de tekenreeks bevat.
InputParameter oudeWaarde tekenreeks De tekenreeks die moet worden opgezocht.
InputParameter newValue tekenreeks De tekenreeks die alle exemplaren van oldValue vervangt
OutputClaim outputClaim boolean Een tekenreeks die gelijk is aan de huidige tekenreeks, behalve dat alle exemplaren van oldValue worden vervangen door newValue. Als oldValue niet wordt gevonden in het huidige exemplaar, retourneert de methode het huidige exemplaar ongewijzigd.

Voorbeeld van StringReplace

U kunt bijvoorbeeld een telefoonnummer normaliseren door de tekens - te verwijderen

<ClaimsTransformation Id="NormalizePhoneNumber" TransformationMethod="StringReplace">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="oldValue" DataType="string" Value="-" />
  <InputParameter Id="newValue" DataType="string" Value="" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: "+164-411-452-054"
  • Invoerparameters:
    • oldValue: "-"
    • newValue: ""
  • Uitvoerclaims:
    • outputClaim: "+164411452054"

StringJoin

Voegt de elementen van een opgegeven claimtype voor tekenreeksverzameling samen met behulp van het opgegeven scheidingsteken tussen elk element of lid.

Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim StringCollection Een verzameling die de tekenreeksen bevat die moeten worden samengevoegd.
InputParameter scheidingsteken tekenreeks De tekenreeks die moet worden gebruikt als scheidingsteken, zoals komma ,.
OutputClaim outputClaim tekenreeks Een tekenreeks die bestaat uit de leden van de tekenreeksverzameling inputClaim, gescheiden door de delimiter invoerparameter.

Voorbeeld van StringJoin

In het volgende voorbeeld wordt een tekenreeksverzameling met gebruikersrollen gebruikt en geconverteerd naar een tekenreeks met kommascheidingstekens. U kunt deze methode gebruiken om een tekenreeksverzameling op te slaan in een Azure AD B2C-gebruikersaccount. Wanneer u het account later uit de map leest, gebruikt u de StringSplit om de tekenreeks met kommascheidingstekens weer te converteren naar tekenreeksverzameling.

<ClaimsTransformation Id="ConvertRolesStringCollectionToCommaDelimiterString" TransformationMethod="StringJoin">
  <InputClaims>
   <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter DataType="string" Id="delimiter" Value="," />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="rolesCommaDelimiterConverted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: [ "Admin", "Author", "Reader" ]
  • Invoerparameters:
    • delimiter: ","
  • Uitvoerclaims:
    • outputClaim: "Admin,Author,Reader"

StringSplit

Retourneert een tekenreeksmatrix die de subtekenreeksen in dit exemplaar bevat die zijn gescheiden door elementen van een opgegeven tekenreeks. Bekijk de livedemo van deze claimtransformatie.

Element TransformationClaimType Gegevenstype Opmerkingen
InputClaim inputClaim tekenreeks Een tekenreeksclaimtype dat de subtekenreeksen bevat die moeten worden gesplitst.
InputParameter scheidingsteken tekenreeks De tekenreeks die moet worden gebruikt als scheidingsteken, zoals komma ,.
OutputClaim outputClaim StringCollection Een tekenreeksverzameling waarvan de elementen de subtekenreeksen in deze tekenreeks bevatten die zijn gescheiden door de delimiter invoerparameter.

Notitie

Bestaande elementen in de OutputClaim stringCollection worden verwijderd.

Voorbeeld van StringSplit

In het volgende voorbeeld wordt een tekenreeks met kommascheidingstekens met gebruikersrollen gebruikt en geconverteerd naar een tekenreeksverzameling.

<ClaimsTransformation Id="ConvertRolesToStringCollection" TransformationMethod="StringSplit">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="rolesCommaDelimiter" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
  <InputParameter DataType="string" Id="delimiter" Value="," />
    </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="roles" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Invoerclaims:
    • inputClaim: Admin,Author,Reader
  • Invoerparameters:
    • delimiter: ","
  • Uitvoerclaims:
    • outputClaim: [ "Admin", "Author", "Reader" ]

Expressies tekenreeksclaimtransformaties

Expressies voor claimtransformaties in Azure AD B2C aangepast beleid bieden contextinformatie over de tenant-id en technische profiel-id.

Expression Beschrijving Voorbeeld
{TechnicalProfileId} De naam van de technische profileId. Facebook-OAUTH
{RelyingPartyTenantId} De tenant-id van het Relying Party-beleid. your-tenant.onmicrosoft.com
{TrustFrameworkTenantId} De tenant-id van het vertrouwensframework. your-tenant.onmicrosoft.com

Volgende stappen