Omvandlingar av stränganspråk

Den här artikeln innehåller exempel på hur du använder stränganspråkstransformeringar av Identity Experience Framework-schemat i Azure Active Directory B2C (Azure AD B2C). Mer information finns i anspråkstransformeringar.

AssertStringClaimsAreEqual

Jämför två anspråk och utlöser ett undantag om de inte är lika med den angivna jämförelsen inputClaim1, inputClaim2 och stringComparison.

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim1 sträng Första anspråkets typ, som ska jämföras.
InputClaim inputClaim2 sträng Den andra anspråkstypen, som ska jämföras.
InputParameter stringComparison sträng strängjämförelse, ett av värdena: Ordinal, OrdinalIgnoreCase.

Anspråkstransformeringen AssertStringClaimsAreEqual körs alltid från en teknisk valideringsprofil som anropas av en självkontrollerad teknisk profil eller en DisplayControl. Metadata för UserMessageIfClaimsTransformationStringsAreNotEqual en självkontrollerad teknisk profil styr felmeddelandet som visas för användaren. Felmeddelandena kan lokaliseras.

Diagram shows how to use the assert string claims are equal claims transformation.

Exempel på AssertStringClaimsAreEqual

Du kan använda den här anspråkstransformeringen för att se till att två anspråk har samma värde. Annars utlöses ett felmeddelande. I följande exempel kontrolleras att strongAuthenticationEmailAddress-anspråket är lika med e-postanspråket . Annars utlöses ett felmeddelande.

<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>
  • Indataanspråk:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • Indataparametrar:
    • stringComparison: ordinalIgnoreCase
  • Resultat: Fel utlöses

Anropa AssertStringClaimsAreEqual-anspråkstransformeringen

Den tekniska profilen för inloggnings-NonInteractive-validering anropar anspråksomvandlingen AssertEmailAndStrongAuthenticationEmailAddressAreEqual .

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

Den självsäkra tekniska profilen anropar den tekniska profilen för valideringsinloggning utaninteraktiv .

<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

Skapar en tid baserat på tidslösenords-URI (TOTP). URI:n är en kombination av användarens unika identifierare, till exempel e-postadress och en hemlig nyckel. URI:n konverteras senare till en QR-kod som visas för användaren. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim path sträng Användarens unika identifierare, till exempel e-postadress, användarnamn eller telefonnummer.
InputClaim query.secret sträng TOTP-hemlighetsnyckeln.
InputParameter schema sträng Schemadelen av URI:n. Exempel: otpauth
InputParameter värd sträng Schemadelen av URI:n. Exempel: totp
InputParameter query.issuer sträng Utfärdardelen av URI:n. Exempel: {AuthenticatorIssuer}
OutputClaim outputClaim sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats.

Exempel på BuildUri

Följande anspråkstransformering genererar en TOTP-URI som visas i QR-koden eller djuplänken.

<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>
  • Indataanspråk:
    • sökväg: emily@fabrikam.com
    • query.secret: fay2lj7ynpntjgqa
  • Indataparametrar:
    • schema: otpauth
    • värd: totp
    • query.issuer: {AuthenticatorIssuer}
  • Utdataanspråk:
    • outputClaim: otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

ChangeCase

Ändrar fallet för det angivna anspråket till gemener eller versaler beroende på operatören. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim1 sträng Anspråket som ska ändras.
InputParameter toCase sträng Något av följande värden: LOWER eller UPPER.
OutputClaim outputClaim sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats.

Exempel på ChangeCase

Följande anspråkstransformering ändrar e-postanspråket till gemener.

<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>
  • Indataanspråk:
    • e-post: SomeOne@contoso.com
  • Indataparametrar:
    • toCase: LOWER
  • Utdataanspråk:
    • e-post: someone@contoso.com

CompareClaims

Avgör om ett stränganspråk är lika med ett annat. Resultatet är ett nytt booleskt anspråk med värdet true eller false. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim1 sträng Den första anspråkstypen, som ska jämföras.
InputClaim inputClaim2 sträng Den andra anspråkstypen, som ska jämföras.
InputParameter operator sträng Möjliga värden: EQUAL eller NOT EQUAL.
InputParameter ignoreCase sträng Anger om den här jämförelsen ska ignorera fallet med de strängar som jämförs.
OutputClaim outputClaim boolean Anspråket som skapas efter den här anspråkstransformeringen har anropats.

Exempel på CompareClaims

Använd den här anspråkstransformeringen för att kontrollera om ett anspråk är lika med ett annat anspråk. Följande anspråkstransformering kontrollerar om värdet för e-postanspråket är identiskt med det Verified.Email anspråket.

<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>
  • Indataanspråk:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • Indataparametrar:
    • operator: NOT EQUAL
    • ignoreCase: true
  • Utdataanspråk:
    • outputClaim: true

CompareClaimToValue

Avgör om ett anspråksvärde är lika med indataparametervärdet. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim1 sträng Anspråkets typ, som ska jämföras.
InputParameter operator sträng Möjliga värden: EQUAL eller NOT EQUAL.
InputParameter compareTo sträng Strängjämförelse, ett av värdena: Ordinal, OrdinalIgnoreCase.
InputParameter ignoreCase sträng Anger om den här jämförelsen ska ignorera fallet med de strängar som jämförs.
OutputClaim outputClaim boolean Anspråket som skapas efter den här anspråkstransformeringen har anropats.

Exempel på CompareClaimToValue

Använd den här anspråkstransformeringen för att kontrollera om ett anspråk är lika med ett värde som du har angett. Följande anspråkstransformering kontrollerar till exempel om värdet för termernaOfUseConsentVersion-anspråket är lika med 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>
  • Indataanspråk:
    • inputClaim1: v1
  • Indataparametrar:
    • compareTo: V2
    • operator: NOT EQUAL
    • ignoreCase: true
  • Utdataanspråk:
    • outputClaim: true

CopyClaimIfPredicateMatch

Kopierar värdet för ett anspråk till ett annat om värdet för indataanspråket matchar utdataanspråkets predikat. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim sträng Anspråkstypen som ska kopieras.
OutputClaim outputClaim sträng Anspråkstypen som skapas efter den här anspråkstransformeringen har anropats. Värdet för indataanspråket kontrolleras mot det här anspråkspredikatet.

Exempel på CopyClaimIfPredicateMatch

I följande exempel försöker kopiera signInName-anspråksvärdet till phoneNumber-anspråk. I det här exemplet kopieras inte värdet. SignInName-anspråket är inte i förväntat format, telefonnummer. Det fullständiga exemplet finns i Telefon nummer- eller e-postinloggningsprincip för startpaket.

<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Indataanspråk:
    • inputClaim: bob@contoso.com
  • Utdataanspråk:
    • outputClaim: Utdataanspråket ändras inte från det ursprungliga värdet.

Exempel på CopyClaimIfPredicateMatch som åsyskar predikatet

I det här exemplet kopierar anspråkstransformeringen värdet. SignInName-anspråket har rätt format, telefonnummer.

  • Indataanspråk:
    • inputClaim: +11234567890
  • Utdataanspråk:
    • outputClaim: +11234567890

CreateOtpSecret

Skapar ett TOTP-stränganspråk. Utdata från den här anspråkstransformeringen är en TOTP-hemlighet som senare lagras i Azure AD B2C-användarens konto och delas med Microsoft Authenticator-appen. Autentiseringsappen använder nyckeln för att generera TOTP-koder när användaren behöver gå igenom MFA. Din princip använder nyckeln för att verifiera TOTP-koden som tillhandahålls av användaren.

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
OutputClaim outputClaim sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats med den genererade TOTP-koden.

Exempel på CreateOtpSecret

Följande anspråkstransformering skapar en hemlighet för TOTP-multifaktorautentiseringen.

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

CreateRandomString

Skapar en slumpmässig sträng med hjälp av slumptalsgeneratorn. Om slumptalsgeneratorn är av typen integerkan du ange en startparameter och ett maximalt tal. Med en valfri strängformatparameter kan utdata formateras med den, och en valfri base64-parameter anger om utdata är base64-kodad randomGeneratorType [guid, heltal] outputClaim (String).

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputParameter randomGeneratorType sträng Anger det slumpmässiga värde som ska genereras, GUID (globalt unikt ID) eller INTEGER (ett tal).
InputParameter stringFormat sträng [Valfritt] Formatera det slumpmässiga värdet.
InputParameter base64 boolean [Valfritt] Konvertera det slumpmässiga värdet till base64. Om strängformat tillämpas kodas värdet efter strängformatet till base64.
InputParameter maximumNumber heltal [Valfritt] Endast för INTEGER randomGeneratorType. Ange det maximala antalet.
InputParameter Utsäde heltal [Valfritt] Endast för INTEGER randomGeneratorType. Ange seed för det slumpmässiga värdet. Obs! Samma frö ger samma sekvens av slumpmässiga tal.
OutputClaim outputClaim sträng De anspråk som kommer att skapas efter att denna anspråkstransformering har anropats. Det slumpmässiga värdet.

Exempel på CreateRandomString

I följande exempel genereras ett globalt unikt ID. Den här anspråkstransformeringen används för att skapa det slumpmässiga UPN(användarnamnet för användaren).

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

Exempel på CreateRandomString, skapa ett numeriskt värde

I följande exempel genereras ett slumpmässigt heltalsvärde mellan 0 och 1 000. Värdet formateras till OTP_{random value}.

<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>
  • Indataparametrar:
    • randomGeneratorType: INTEGER
    • maximumNumber: 1000
    • stringFormat: OTP_{0}
    • base64: false
  • Utdataanspråk:
    • outputClaim: OTP_853

CreateStringClaim

Skapar ett stränganspråk från den angivna indataparametern i omvandlingen. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputParameter värde sträng Strängen som ska anges. Den här indataparametern stöder omvandlingsuttryck för stränganspråk.
OutputClaim createdClaim sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats, med det värde som anges i indataparametern.

Exempel på CreateStringClaim

Följande anspråkstransformering skapar ett strängvärde med användningsvillkor.

<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>
  • Indataparameter:
    • värde: Contosos tjänstvillkor...
  • Utdataanspråk:
    • createdClaim: TOS-anspråket innehåller "Contosos användarvillkor..." Värde.

FormatLocalizedString

Formaterar flera anspråk enligt en angivet lokaliserad formatsträng. Den här omvandlingen använder C#- String.Format metoden. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaims sträng Samlingen med indataanspråk som fungerar som strängformat {0}, {1}, {2} parametrar.
InputParameter stringFormatId sträng För StringId en lokaliserad sträng.
OutputClaim outputClaim sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats.

Kommentar

Det finns ingen gräns för antalet indataanspråk som du kan ange, men den maximala längden på den formaterade strängen är 4 000.

Så här använder du formatLocalizedString-anspråkstransformeringen:

  1. Definiera en lokaliseringssträng och associera den med en självsäkrad teknisk profil.
  2. Elementets ElementTypeLocalizedString måste anges till FormatLocalizedStringTransformationClaimType.
  3. StringId är en unik identifierare som du definierar och använder den senare i din anspråkstransformering stringFormatId.
  4. I anspråkstransformeringen anger du listan över anspråk som ska anges med den lokaliserade strängen. Ange stringFormatId sedan till StringId för det lokaliserade strängelementet.
  5. I en självkontrollerad teknisk profil, eller en transformering av indata- eller utdataanspråk för visningskontroll , refererar du till din anspråkstransformering.

Exempel på FormatLocalizedString

I följande exempel genereras ett felmeddelande när ett konto redan finns i katalogen. Exemplet definierar lokaliserade strängar för engelska (standard) och spanska.

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

Anspråkstransformeringen skapar ett svarsmeddelande baserat på den lokaliserade strängen. Meddelandet innehåller användarens e-postadress inbäddad i den lokaliserade sting-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>
  • Indataanspråk:
    • inputClaim: sarah@contoso.com
  • Indataparametrar:
    • stringFormat: ResponseMessge_EmailExists
  • Utdataanspråk:
    • outputClaim: E-postmeddelandet ärsarah@contoso.com redan ett konto i den här organisationen. Välj Nästa för att logga in med det kontot.

FormatStringClaim

Formaterar ett anspråk enligt den angivna formatsträngen. Den här omvandlingen använder C#- String.Format metoden. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim sträng Anspråket som fungerar som strängformatparameter {0} .
InputParameter stringFormat sträng Strängformatet, inklusive parametern {0} . Den här indataparametern stöder omvandlingsuttryck för stränganspråk.
OutputClaim outputClaim sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats.

Kommentar

Högsta tillåtna storlek för strängformat är 4 000.

Exempel på FormatStringClaim

Använd den här anspråkstransformeringen för att formatera valfri sträng med en parameter {0}. I följande exempel skapas ett userPrincipalName. Alla tekniska profiler för social identitetsprovider, till exempel Facebook-OAUTH anrop till CreateUserPrincipalName för att generera ett userPrincipalName.

<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>
  • Indataanspråk:
    • inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
  • Indataparametrar:
    • stringFormat: cpim_{0}@{RelyingPartyTenantId}
  • Utdataanspråk:
    • outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com

FormatStringMultipleClaims

Formaterar två anspråk enligt den angivna formatsträngen. Den här omvandlingen använder C#- String.Format metoden. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim1 sträng Anspråket som fungerar som strängformatparameter {0} .
InputClaim inputClaim2 sträng Anspråket som fungerar som strängformatparameter {1} .
InputParameter stringFormat sträng Strängformatet, inklusive parametrarna {0} och {1} . Den här indataparametern stöder omvandlingsuttryck för stränganspråk.
OutputClaim outputClaim sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats.

Kommentar

Högsta tillåtna storlek för strängformat är 4 000.

Exempel på FormatStringMultipleClaims

Använd den här anspråkstransformeringen för att formatera valfri sträng med två parametrar och {0}{1}. I följande exempel skapas ett displayName med det angivna formatet:

<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>
  • Indataanspråk:
    • inputClaim1: Joe
    • inputClaim2: Fernando
  • Indataparametrar:
    • stringFormat: {0}{1}
  • Utdataanspråk:
    • outputClaim: Joe Fernando

GetLocalizedStringsTransformation

Kopierar lokaliserade strängar till anspråk. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
OutputClaim Namnet på den lokaliserade strängen sträng Lista över anspråkstyper som skapas efter att den här anspråkstransformeringen har anropats.

Så här använder du anspråkstransformationen GetLocalizedStringsTransformation:

  1. Definiera en lokaliseringssträng för innehållsdefinitionen, till exempel api.selfasserted.

  2. Elementets ElementTypeLocalizedString måste anges till GetLocalizedStringsTransformationClaimType.

  3. StringId är en unik identifierare som du definierar och använder den senare i din anspråkstransformering.

  4. I anspråkstransformeringen anger du listan över anspråk som ska anges med den lokaliserade strängen. ClaimTypeReferenceId är en referens till ett anspråk som redan definierats i avsnittet ClaimsSchema i principen. TransformationClaimType är namnet på den lokaliserade strängen StringId enligt definitionen i elementetLocalizedString.

  5. I en självsäkrad, eller anspråkstransformering av den tekniska profilens anspråkstransformering, refererar du till din anspråkstransformering.

  6. Associera den tekniska profilen med innehållsdefinitionen, till exempel api.selfasserted. I följande exempel visas hur du associerar en teknisk profil med innehållsdefinitionen api.selfasserted .

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

Följande diagram visar hur du konfigurerar anspråkstransformeringen med lokaliseringselementen:

Diagram shows how to use the get localized strings claims transformation.

Exempel på GetLocalizedStringsTransformation

I följande exempel visas e-postämnet, brödtexten, kodmeddelandet och e-postmeddelandets signatur från lokaliserade strängar. Anspråken som senare används av mallen för anpassad e-postverifiering.

Definiera lokaliserade strängar för engelska (standard) och spanska.

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

Anspråkstransformeringen anger värdet för anspråkstypsämnet med värdet för 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>
  • Utdataanspråk:
    • ämne: E-postverifieringskod för Contoso-konto
    • meddelande: Tack för att du verifierar ditt konto!
    • codeIntro: Din kod är
    • signatur: Uppriktigt

GetMappedValueFromLocalizedCollection

Kartor ett element från indataanspråkets Begränsningsinsamling. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim mapFromClaim sträng Anspråket som innehåller texten som ska letas upp i restrictionValueClaim-anspråken med begränsningssamlingen.
OutputClaim restrictionValueClaim sträng Anspråket som innehåller samlingen Begränsning . När anspråkstransformeringen har anropats innehåller värdet för det här anspråket värdet för det valda objektet.

Exempel på GetMappedValueFromLocalizedCollection

I följande exempel visas beskrivningen av felmeddelandet baserat på felnyckeln. ResponseMsg-anspråket innehåller en samling felmeddelanden som ska presenteras för slutanvändaren eller skickas till den förlitande parten.

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

Anspråkstransformeringen söker upp texten i objektet och returnerar dess värde. Om begränsningen lokaliseras med hjälp av <LocalizedCollection>returnerar anspråkstransformeringen det lokaliserade värdet.

<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />        
  </OutputClaims>
</ClaimsTransformation>
  • Indataanspråk:
    • mapFromClaim: B2C_V1_90001
  • Utdataanspråk:
    • restrictionValueClaim: Du kan inte logga in eftersom du är mindre.

LookupValue

Söker upp ett anspråksvärde från en lista med värden baserat på värdet för ett annat anspråk. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputParameterId sträng Anspråket som innehåller uppslagsvärdet
InputParameter sträng Samling indataParametrar.
InputParameter errorOnFailedLookup boolean Kontrollera om ett fel returneras när det inte finns någon matchande sökning.
OutputClaim outputClaim sträng Anspråket som kommer att skapas efter att denna anspråkstransformering har anropats. Värdet för matchande Id.

Exempel på LookupValue

I följande exempel söker vi upp domännamnet i någon av indataparametersamlingarna. Anspråkstransformeringen söker upp domännamnet i identifieraren och returnerar dess värde (ett program-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>
  • Indataanspråk:
    • inputParameterId: test.com
  • Indataparametrar:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: false
  • Utdataanspråk:
    • outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9

Exempel på LookupValue med fel

När errorOnFailedLookup indataparametern är inställd truepå körs lookupValue-anspråkstransformeringen alltid från en teknisk valideringsprofil som anropas av en självsäkrad teknisk profil eller en DisplayConrtol. Metadata för LookupNotFound en självkontrollerad teknisk profil styr felmeddelandet som visas för användaren.

Diagram shows how to use the lookup value claims transformation.

I följande exempel söker vi upp domännamnet i någon av indataparametersamlingarna. Anspråkstransformeringen söker upp domännamnet i identifieraren och returnerar dess värde (ett program-ID) eller genererar ett felmeddelande.

 <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>
  • Indataanspråk:
    • inputParameterId: live.com
  • Indataparametrar:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: true
  • Fel:
    • Ingen matchning hittades för indataanspråksvärdet i listan över indataparameter-ID:n och errorOnFailedLookup är sant.

NullClaim

Rensar värdet för ett visst anspråk. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
OutputClaim claim_to_null sträng Anspråkets värde är inställt på NULL.

Exempel på NullClaim

Använd den här anspråkstransformeringen för att ta bort onödiga data från anspråksegenskapspåsen så att sessionscookien blir mindre. I följande exempel tar du bort värdet för anspråkstypen TermsOfService .

<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
  <OutputClaims>
  <OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
  </OutputClaims>
</ClaimsTransformation>
  • Indataanspråk:
    • outputClaim: Välkommen till Contoso App. Om du fortsätter att bläddra och använda den här webbplatsen samtycker du till att följa och vara bunden av följande villkor...
  • Utdataanspråk:
    • outputClaim: NULL

ParseDomain

Hämtar domändelen av en e-postadress. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim Emailaddress sträng Anspråket som innehåller e-postadressen.
OutputClaim domain sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats – domänen.

Exempel på ParseDomain

Använd den här anspråkstransformeringen för att parsa domännamnet efter @-symbolen för användaren. Följande anspråkstransformering visar hur du parsar domännamnet från ett e-postanspråk .

<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
  </OutputClaims>
</ClaimsTransformation>
  • Indataanspråk:
    • emailAddress: joe@outlook.com
  • Utdataanspråk:
    • domän: outlook.com

SetClaimIfBooleansMatch

Kontrollerar att ett booleskt anspråk är true, eller false. Om ja anger utdataanspråken med värdet som finns i outputClaimIfMatched indataparametern. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim claimToMatch sträng Anspråkstypen som ska kontrolleras. Null-värdet genererar ett undantag.
InputParameter matchTo sträng Värdet som ska jämföras med claimToMatch indataanspråket. Möjliga värden: true, eller false.
InputParameter outputClaimIfMatched sträng Värdet som ska anges om indataanspråket är lika med indataparametern matchTo .
OutputClaim outputClaim sträng Om indataanspråket claimToMatch är lika med matchTo indataparametern innehåller det här utdataanspråket värdet för outputClaimIfMatched indataparametern.

Exempel på SetClaimIfBooleansMatch

Följande anspråkstransformering kontrollerar till exempel om värdet för hasPromotionCode-anspråket är lika med true. Om ja returnerar du värdet till Kampanjkod hittades inte.

<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>
  • Indataanspråk:
    • claimToMatch: true
  • Indataparametrar:
    • matchTo: true
    • outputClaimIfMatched: "Det går inte att hitta kampanjkoden."
  • Utdataanspråk:
    • outputClaim: "Det går inte att hitta kampanjkoden."

SetClaimsIfRegexMatch

Kontrollerar att ett stränganspråk claimToMatch och matchTo en indataparameter är lika med och anger utdataanspråken med värdet som finns i outputClaimIfMatched indataparametern, tillsammans med jämförelseresultatutdataanspråket, som ska anges som true eller false baserat på resultatet av jämförelsen.

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
inputClaim claimToMatch sträng Anspråkstypen, som ska jämföras.
InputParameter matchTo sträng Det reguljära uttryck som ska matchas.
InputParameter outputClaimIfMatched sträng Värdet som ska anges om strängarna är lika med.
InputParameter extractGroups boolean [Valfritt] Anger om Regex-matchningen ska extrahera gruppvärden. Möjliga värden: true, eller false (standard).
OutputClaim outputClaim sträng Om reguljära uttryck matchar innehåller det här utdataanspråket värdet outputClaimIfMatched för indataparametern. Eller null, om ingen matchning.
OutputClaim regexCompareResultClaim boolean Det reguljära uttrycket matchar resultatutdataanspråkstypen, som ska anges som true eller false baserat på resultatet av matchningen.
OutputClaim Namnet på anspråket sträng Om parametern extractGroups-indata har angetts till true har en lista över anspråkstyper som skapas efter den här anspråkstransformeringen anropats. Namnet på anspråket måste matcha Regex-gruppnamnet.

Exempel på SetClaimsIfRegexMatch

Kontrollerar om det angivna telefonnumret är giltigt baserat på mönster för reguljära telefonnummeruttryck.

<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>
  • Indataanspråk:
    • claimToMatch: "64854114520"
  • Indataparametrar:
    • matchTo: "^[0-9]{4,16}$"
    • outputClaimIfMatched: "Telefon"
  • Utdataanspråk:
    • outputClaim: "i Telefon"
    • regexCompareResultClaim: true

Exempel på SetClaimsIfRegexMatch med extraheringsgrupper

Kontrollerar om den angivna e-postadressen är giltig och returnerar e-postaliaset. Kolla in live-demonstrationen av den här anspråkstransformeringen med extraheringsgrupper.

<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>
  • Indataanspråk:
    • claimToMatch: "emily@contoso.com"
  • Indataparametrar:
    • matchTo: (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: "isEmail"
    • extractGroups: true
  • Utdataanspråk:
    • outputClaim: "isEmail"
    • regexCompareResultClaim: true
    • mailAlias: emily

SetClaimsIfStringsAreEqual

Kontrollerar att ett stränganspråk och matchTo en indataparameter är lika med och anger utdataanspråken med värdet som finns i stringMatchMsg parametrarna och stringMatchMsgCode indataparametrarna, tillsammans med jämför resultatets utdataanspråk, som ska anges som true eller false baseras på resultatet av jämförelsen.

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim sträng Anspråkstypen, som ska jämföras.
InputParameter matchTo sträng Strängen som ska jämföras med inputClaim.
InputParameter stringComparison sträng Möjliga värden: Ordinal eller OrdinalIgnoreCase.
InputParameter stringMatchMsg sträng Första värdet som ska anges om strängarna är lika med.
InputParameter stringMatchMsgCode sträng Det andra värdet som ska anges om strängarna är lika med.
OutputClaim outputClaim1 sträng Om strängar är lika med innehåller det här utdataanspråket värdet stringMatchMsg för indataparametern.
OutputClaim outputClaim2 sträng Om strängar är lika med innehåller det här utdataanspråket värdet stringMatchMsgCode för indataparametern.
OutputClaim stringCompareResultClaim boolean Jämförelseresultatets anspråkstyp, som ska anges som true eller false baserat på resultatet av jämförelsen.

Exempel på SetClaimsIfStringsAreEqual

Du kan använda den här anspråkstransformeringen för att kontrollera om ett anspråk är lika med det värde som du har angett. Följande anspråkstransformering kontrollerar till exempel om värdet för termernaOfUseConsentVersion-anspråket är lika med v1. Om ja ändrar du värdet till 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>
  • Indataanspråk:
    • inputClaim: v1
  • Indataparametrar:
    • matchTo: V1
    • stringComparison: ordinalIgnoreCase
    • stringMatchMsgCode: B2C_V1_90005
    • stringMatchMsg: TOS uppgraderas till v2
  • Utdataanspråk:
    • outputClaim1: B2C_V1_90005
    • outputClaim2: TOS uppgraderas till v2
    • stringCompareResultClaim: true

SetClaimsIfStringsMatch

Kontrollerar att ett stränganspråk och matchTo en indataparameter är lika med och anger utdataanspråken med värdet som finns i outputClaimIfMatched indataparametern, tillsammans med jämförelseresultatutdataanspråket, som ska anges som true eller false baserat på resultatet av jämförelsen.

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim claimToMatch sträng Anspråkstypen, som ska jämföras.
InputParameter matchTo sträng Strängen som ska jämföras med inputClaim.
InputParameter stringComparison sträng Möjliga värden: Ordinal eller OrdinalIgnoreCase.
InputParameter outputClaimIfMatched sträng Värdet som ska anges om strängarna är lika med.
OutputClaim outputClaim sträng Om strängar är lika med innehåller det här utdataanspråket värdet outputClaimIfMatched för indataparametern. Eller null, om strängarna inte matchar.
OutputClaim stringCompareResultClaim boolean Jämförelseresultatets anspråkstyp, som ska anges som true eller false baserat på resultatet av jämförelsen.

Exempel på SetClaimsIfStringsMatch

Följande anspråkstransformering kontrollerar till exempel om värdet för ageGroup-anspråket är lika med Minor. Om ja returnerar du värdet till 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>
  • Indataanspråk:
    • claimToMatch: Mindre
  • Indataparametrar:
    • matchTo: Mindre
    • stringComparison: ordinalIgnoreCase
    • outputClaimIfMatched: B2C_V1_90001
  • Utdataanspråk:
    • isMinorResponseCode: true
    • isMinor: B2C_V1_90001

StringContains

Avgör om en angiven delsträng inträffar inom indataanspråket. Resultatet är ett nytt booleskt anspråk med värdet true eller false. true om värdeparametern inträffar i den här strängen, annars , false.

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim sträng Anspråkstypen som ska genomsökas.
InputParameter innehåller sträng Det värde som ska sökas.
InputParameter ignoreCase sträng Anger om den här jämförelsen ska ignorera fallet med strängen som jämförs.
OutputClaim outputClaim sträng Anspråket som skapas efter den här anspråkstransformeringen har anropats. En boolesk indikator om delsträngen inträffar inom indataanspråket.

Exempel på StringContains

Använd den här anspråkstransformeringen för att kontrollera om en stränganspråkstyp innehåller en delsträng. I följande exempel kontrollerar du om stränganspråkstypen roles innehåller värdet för administratören.

<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>
  • Indataanspråk:
    • inputClaim: "Admin, Approver, Editor"
  • Indataparametrar:
    • innehåller: "admin",
    • ignoreCase: true
  • Utdataanspråk:
    • outputClaim: true

StringSubstring

Extraherar delar av en stränganspråkstyp med början vid tecknet vid den angivna positionen och returnerar det angivna antalet tecken. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim sträng Anspråkstypen, som innehåller strängen.
InputParameter startIndex heltal Den nollbaserade startteckenpositionen för en delsträng i den här instansen.
InputParameter längd heltal Antalet tecken i understrängen.
OutputClaim outputClaim sträng En sträng som motsvarar den delsträng av längden som börjar vid startIndex i den här instansen, eller Tom om startIndex är lika med längden på den här instansen och längden är noll.

Exempel på StringSubstring

Hämta till exempel telefonnumrets lands-/regionprefix.

<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>
  • Indataanspråk:
    • inputClaim: "+1644114520"
  • Indataparametrar:
    • startIndex: 0
    • längd: 2
  • Utdataanspråk:
    • outputClaim: "+1"

StringReplace

Söker i en anspråkstypsträng efter ett angivet värde och returnerar en ny anspråkstypsträng där alla förekomster av en angiven sträng i den aktuella strängen ersätts med en annan angiven sträng.

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim sträng Anspråkstypen, som innehåller strängen.
InputParameter oldValue sträng Strängen som ska sökas igenom.
InputParameter newValue sträng Strängen som ersätter alla förekomster av oldValue
OutputClaim outputClaim boolean En sträng som motsvarar den aktuella strängen förutom att alla instanser av oldValue ersätts med newValue. Om oldValue inte hittas i den aktuella instansen returnerar metoden den aktuella instansen oförändrad.

Exempel på StringReplace

Normalisera till exempel ett telefonnummer genom att ta bort - tecknen

<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>
  • Indataanspråk:
    • inputClaim: "+164-411-452-054"
  • Indataparametrar:
    • oldValue: "-"
    • newValue: ""
  • Utdataanspråk:
    • outputClaim: "+164411452054"

StringJoin

Sammanfogar elementen i en angiven typ av strängsamlingsanspråk med hjälp av den angivna avgränsaren mellan varje element eller medlem.

Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim stringCollection En samling som innehåller strängarna som ska sammanfogas.
InputParameter Avgränsare sträng Strängen som ska användas som avgränsare, till exempel kommatecken ,.
OutputClaim outputClaim sträng En sträng som består av medlemmarna i strängsamlingen inputClaim , avgränsad med delimiter indataparametern.

Exempel på StringJoin

Följande exempel tar en strängsamling med användarroller och konverterar den till en kommaavgränsarsträng. Du kan använda den här metoden för att lagra en strängsamling i ett Azure AD B2C-användarkonto. När du senare läser kontot från katalogen använder du StringSplit för att konvertera kommaavgränsarsträngen tillbaka till strängsamlingen.

<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>
  • Indataanspråk:
    • inputClaim: [ "Admin", "Author", "Reader" ]
  • Indataparametrar:
    • avgränsare: ","
  • Utdataanspråk:
    • outputClaim: "Admin,Author,Reader"

StringSplit

Returnerar en strängmatris som innehåller delsträngarna i den här instansen som avgränsas av element i en angiven sträng. Kolla in live-demonstrationen av den här anspråkstransformeringen.

Element TransformationClaimType Datatyp Kommentar
InputClaim inputClaim sträng En stränganspråkstyp som innehåller de understrängar som ska delas.
InputParameter Avgränsare sträng Strängen som ska användas som avgränsare, till exempel kommatecken ,.
OutputClaim outputClaim stringCollection En strängsamling vars element innehåller delsträngarna i den här strängen delimiter som avgränsas av indataparametern.

Kommentar

Alla befintliga element i OutputClaim stringCollection tas bort.

Exempel på StringSplit

Följande exempel tar en kommaavgränsarsträng med användarroller och konverterar den till en strängsamling.

<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>
  • Indataanspråk:
    • inputClaim: Admin,Author,Reader
  • Indataparametrar:
    • avgränsare: ","
  • Utdataanspråk:
    • outputClaim: [ "Admin", "Author", "Reader" ]

Uttryck för stränganspråktransformeringar

Anspråkstransformeringsuttryck i anpassade Azure AD B2C-principer ger kontextinformation om klientorganisations-ID och tekniskt profil-ID.

Uttryck Beskrivning Exempel
{TechnicalProfileId} Det tekniska profileId-namnet. Facebook-OAUTH
{RelyingPartyTenantId} Klientorganisations-ID:t för den förlitande partens princip. your-tenant.onmicrosoft.com
{TrustFrameworkTenantId} Klientorganisations-ID för förtroenderamverket. your-tenant.onmicrosoft.com

Nästa steg

  • Hitta fler exempel på anspråkstransformering på GitHub-lagringsplatsen för Azure AD B2C-communityn