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.
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}
- schema:
- Utdataanspråk:
- outputClaim:
otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
- outputClaim:
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, d.v.s. strängen som indataanspråksvärdena måste jämföras med: 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 Princip för startpaket för telefonnummer eller e-postinloggning.
<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
- outputClaim:
CreateRandomString
Skapar en slumpmässig sträng med hjälp av slumptalsgeneratorn. Om slumptalsgeneratorn är av typen integer
kan 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 | frö | 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:
- Definiera en lokaliseringssträng och associera den med en självsäkrad teknisk profil.
- Elementets
ElementType
LocalizedString
måste anges tillFormatLocalizedStringTransformationClaimType
. StringId
är en unik identifierare som du definierar och använder den senare i din anspråkstransformeringstringFormatId
.- I anspråkstransformeringen anger du listan över anspråk som ska anges med den lokaliserade strängen. Ange
stringFormatId
sedan tillStringId
för det lokaliserade strängelementet. - 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:
Definiera en lokaliseringssträng för innehållsdefinitionen, till exempel
api.selfasserted
.Elementets
ElementType
LocalizedString
måste anges tillGetLocalizedStringsTransformationClaimType
.StringId
är en unik identifierare som du definierar och använder den senare i din anspråkstransformering.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ängenStringId
enligt definitionen i elementetLocalizedString
.I en självsäkrad, eller anspråkstransformering av den tekniska profilens anspråkstransformering, refererar du till din anspråkstransformering.
Associera den tekniska profilen med innehållsdefinitionen, till exempel
api.selfasserted
. I följande exempel visas hur du associerar en teknisk profil med innehållsdefinitionenapi.selfasserted
.<Metadata> <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item> </Metadata>
Följande diagram visar hur du konfigurerar anspråkstransformeringen med lokaliseringselementen:
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 StringId
email_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
Mappar ett element från indataanspråkets begränsningssamling. 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 true
på 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.
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: "Phone"
- Utdataanspråk:
- outputClaim: "iPhone"
- 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="(?<mailAlias>.*)@(.*)$" />
<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:
(?<mailAlias>.*)@(.*)$
- outputClaimIfMatched: "isEmail"
- extractGroups: true
- matchTo:
- 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" ]
- inputClaim:
- Indataparametrar:
- avgränsare: ","
- Utdataanspråk:
- outputClaim:
"Admin,Author,Reader"
- outputClaim:
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
- inputClaim:
- Indataparametrar:
- avgränsare: ","
- Utdataanspråk:
- outputClaim:
[ "Admin", "Author", "Reader" ]
- outputClaim:
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