Tekenreeksclaimtransformaties
Dit artikel bevat voorbeelden voor het gebruik van tekenreeksclaimtransformaties van het Identity Experience Framework-schema in Azure Active Directory B2C (Azure AD B2C). Zie claimtransformaties voor meer informatie.
AssertStringClaimsAreEqual
Vergelijkt twee claims en genereert een uitzondering als deze niet gelijk zijn aan de opgegeven vergelijking inputClaim1, inputClaim2 en stringComparison.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim1 | tekenreeks | Het type van de eerste claim, dat moet worden vergeleken. |
InputClaim | inputClaim2 | tekenreeks | Het type van de tweede claim, dat moet worden vergeleken. |
InputParameter | stringComparison | tekenreeks | tekenreeksvergelijking, een van de waarden: Ordinal, OrdinalIgnoreCase. |
De claimtransformatie AssertStringClaimsAreEqual wordt altijd uitgevoerd vanuit een technisch validatieprofiel dat wordt aangeroepen door een zelf-gecontroleerd technisch profiel of een DisplayControl. De UserMessageIfClaimsTransformationStringsAreNotEqual
metagegevens van een zelf-gecontroleerd technisch profiel bepalen het foutbericht dat aan de gebruiker wordt gepresenteerd. De foutberichten kunnen worden gelokaliseerd.
Voorbeeld van AssertStringClaimsAreEqual
U kunt deze claimtransformatie gebruiken om ervoor te zorgen dat twee claims dezelfde waarde hebben. Als dat niet het probleem is, wordt er een foutbericht gegenereerd. In het volgende voorbeeld wordt gecontroleerd of de claim strongAuthenticationEmailAddress gelijk is aan de claim e-mail. Anders wordt er een foutbericht gegenereerd.
<ClaimsTransformation Id="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
<InputClaims>
<InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
</InputParameters>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Invoerparameters:
- stringComparison: ordinalIgnoreCase
- Resultaat: fout gegenereerd
De claimtransformatie assertstringClaimsAreEqual aanroepen
Het technische validatieprofiel login-NonInteractive roept de claimtransformatie AssertEmailAndStrongAuthenticationEmailAddressAreEqual aan.
<TechnicalProfile Id="login-NonInteractive">
...
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
</OutputClaimsTransformations>
</TechnicalProfile>
Het zelf-gecontroleerde technische profiel roept het technische validatieprofiel login-NonInteractive aan.
<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
<Metadata>
<Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
</Metadata>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
BuildUri
Hiermee maakt u een tijd op basis van de TOTP-URI (Time Password). De URI is een combinatie van de unieke id van de gebruiker, zoals e-mailadres en een geheime sleutel. De URI wordt later geconverteerd naar een QR-code die wordt gepresenteerd aan de gebruiker. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | path | tekenreeks | De unieke id van de gebruiker, zoals e-mailadres, gebruikersnaam of telefoonnummer. |
InputClaim | query.secret | tekenreeks | De TOTP-geheime sleutel. |
InputParameter | scheme | tekenreeks | Het schemagedeelte van de URI. Bijvoorbeeld: otpauth . |
InputParameter | host | tekenreeks | Het schemagedeelte van de URI. Bijvoorbeeld: totp . |
InputParameter | query.issuer | tekenreeks | Het verlenergedeelte van de URI. Bijvoorbeeld: {AuthenticatorIssuer} . |
OutputClaim | outputClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. |
Voorbeeld van BuildUri
Met de volgende claimtransformatie wordt een TOTP-URI gegenereerd die wordt weergegeven in de QR-code of deep link.
<ClaimsTransformation Id="CreateUriString" TransformationMethod="BuildUri">
<InputClaims>
<InputClaim ClaimTypeReferenceId="uriLabel" TransformationClaimType="path" />
<InputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="query.secret" />
</InputClaims>
<InputParameters>
<InputParameter Id="scheme" DataType="string" Value="otpauth" />
<InputParameter Id="host" DataType="string" Value="totp" />
<InputParameter Id="query.issuer" DataType="string" Value="{AuthenticatorIssuer}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="qrCodeContent" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- pad: emily@fabrikam.com
- query.secret:
fay2lj7ynpntjgqa
- Invoerparameters:
- schema:
otpauth
- host:
totp
- query.issuer:
{AuthenticatorIssuer}
- schema:
- Uitvoerclaims:
- outputClaim:
otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
- outputClaim:
ChangeCase
Wijzigt de letters van de opgegeven claim in kleine letters of hoofdletters, afhankelijk van de operator. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim1 | tekenreeks | De claim die moet worden gewijzigd. |
InputParameter | toCase | tekenreeks | Een van de volgende waarden: LOWER of UPPER . |
OutputClaim | outputClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. |
Voorbeeld van ChangeCase
Met de volgende claimtransformatie wordt de e-mailclaim gewijzigd in kleine letters.
<ClaimsTransformation Id="ChangeToLower" TransformationMethod="ChangeCase">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
</InputClaims>
<InputParameters>
<InputParameter Id="toCase" DataType="string" Value="LOWER" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- email: SomeOne@contoso.com
- Invoerparameters:
- toCase: LOWER
- Uitvoerclaims:
- email: someone@contoso.com
CompareClaims
Bepaalt of de ene tekenreeksclaim gelijk is aan een andere. Het resultaat is een nieuwe booleaanse claim met de waarde true
of false
. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim1 | tekenreeks | Het type van de eerste claim, dat moet worden vergeleken. |
InputClaim | inputClaim2 | tekenreeks | Het type van de tweede claim, dat moet worden vergeleken. |
InputParameter | operator | tekenreeks | Mogelijke waarden: EQUAL of NOT EQUAL . |
InputParameter | ignoreCase | tekenreeks | Hiermee geeft u op of deze vergelijking het gebruik van hoofdletters of kleine letters moet negeren voor de tekenreeksen die worden vergeleken. |
OutputClaim | outputClaim | boolean | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. |
Voorbeeld van CompareClaims
Gebruik deze claimtransformatie om te controleren of een claim gelijk is aan een andere claim. Met de volgende claimtransformatie wordt gecontroleerd of de waarde van de claim email identiek is aan de claim Verified.Email.
<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Invoerparameters:
- operator: NOT EQUAL
- ignoreCase: true
- Uitvoerclaims:
- outputClaim: true
CompareClaimToValue
Bepaalt of een claimwaarde gelijk is aan de invoerparameterwaarde. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim1 | tekenreeks | Het type van de claim, dat moet worden vergeleken. |
InputParameter | operator | tekenreeks | Mogelijke waarden: EQUAL of NOT EQUAL . |
InputParameter | compareTo | tekenreeks | Tekenreeksvergelijking, een van de waarden, dat wil zeggen, de tekenreeks waarmee de invoerclaimwaarden moeten worden vergeleken: Ordinal, OrdinalIgnoreCase. |
InputParameter | ignoreCase | tekenreeks | Hiermee geeft u op of deze vergelijking het gebruik van hoofdletters of kleine letters moet negeren voor de tekenreeksen die worden vergeleken. |
OutputClaim | outputClaim | boolean | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. |
Voorbeeld van CompareClaimToValue
Gebruik deze claimtransformatie om te controleren of een claim gelijk is aan een waarde die u hebt opgegeven. Met de volgende claimtransformatie wordt bijvoorbeeld gecontroleerd of de waarde van de claim TermsOfUseConsentVersion gelijk is aan V2
.
<ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
</InputClaims>
<InputParameters>
<InputParameter Id="compareTo" DataType="string" Value="V2" />
<InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim1: v1
- Invoerparameters:
- compareTo: V2
- operator: NOT EQUAL
- ignoreCase: true
- Uitvoerclaims:
- outputClaim: true
CopyClaimIfPredicateMatch
Kopieert de waarde van een claim naar een andere als de waarde van de invoerclaim overeenkomt met het predicaat van de uitvoerclaim. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim | tekenreeks | Het claimtype, dat moet worden gekopieerd. |
OutputClaim | outputClaim | tekenreeks | Het claimtype dat wordt geproduceerd nadat deze claimtransformatie is aangeroepen. De waarde van de invoerclaim wordt gecontroleerd op basis van dit claimpredicaat. |
Voorbeeld van CopyClaimIfPredicateMatch
In het volgende voorbeeld wordt geprobeerd de signInName-claimwaarde te kopiëren naar de claim phoneNumber. In dit voorbeeld wordt de waarde niet gekopieerd. De signInName-claim heeft niet de verwachte notatie, het telefoonnummer. Zie het startpakketbeleid Aanmelden met telefoonnummer of e-mail voor het volledige voorbeeld.
<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim: bob@contoso.com
- Uitvoerclaims:
- outputClaim: de uitvoerclaim wordt niet gewijzigd van de oorspronkelijke waarde.
Voorbeeld van CopyClaimIfPredicateMatch dat het predicaat verveelvoudigt
In dit voorbeeld kopieert de claimtransformatie de waarde. De signInName-claim heeft de juiste notatie, telefoonnummer.
- Invoerclaims:
- inputClaim: +11234567890
- Uitvoerclaims:
- outputClaim: +11234567890
CreateOtpSecret
Hiermee maakt u een TOTP-tekenreeksclaim. De uitvoer van deze claimtransformatie is een TOTP-geheim dat later wordt opgeslagen in het Azure AD B2C-account van de gebruiker en wordt gedeeld met de Microsoft Authenticator-app. De Authenticator-app gebruikt de sleutel om TOTP-codes te genereren wanneer de gebruiker MFA moet doorlopen. Uw beleid gebruikt de sleutel om de TOTP-code van de gebruiker te valideren.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
OutputClaim | outputClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen, met de gegenereerde TOTP-code. |
Voorbeeld van CreateOtpSecret
Met de volgende claimtransformatie wordt een geheim gemaakt voor de TOTP Multi-Factor Authenticator.
<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Uitvoerclaims:
- outputClaim:
hmlcmd4ph6fph64c
- outputClaim:
CreateRandomString
Hiermee maakt u een willekeurige tekenreeks met behulp van de generator voor willekeurige getallen. Als de generator voor willekeurige getallen van het type integer
is, kan eventueel een seed-parameter en een maximumaantal worden opgegeven. Met een optionele parameter voor tekenreeksindeling kan de uitvoer worden opgemaakt en met een optionele base64-parameter wordt aangegeven of de uitvoer base64 gecodeerd randomGeneratorType [guid, integer] outputClaim (String) is.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputParameter | randomGeneratorType | tekenreeks | Hiermee geeft u de willekeurige waarde die moet worden gegenereerd, GUID (globale unieke id) of INTEGER (een getal). |
InputParameter | stringFormat | tekenreeks | [Optioneel] Maak de willekeurige waarde op. |
InputParameter | base64 | boolean | [Optioneel] Converteer de willekeurige waarde naar base64. Als de tekenreeksindeling is toegepast, is dit de waarde nadat de tekenreeksindeling is gecodeerd in base64. |
InputParameter | maximumNumber | int | [Optioneel] Alleen voor INTEGER randomGeneratorType. Geef het maximumaantal op. |
InputParameter | seed | int | [Optioneel] Alleen voor INTEGER randomGeneratorType. Geef de seed op voor de willekeurige waarde. Opmerking: dezelfde seed levert dezelfde reeks willekeurige getallen op. |
OutputClaim | outputClaim | tekenreeks | De claims die worden geproduceerd nadat deze claimtransformatie is aangeroepen. De willekeurige waarde. |
Voorbeeld van CreateRandomString
In het volgende voorbeeld wordt een globale unieke id gegenereerd. Deze claimtransformatie wordt gebruikt om de willekeurige UPN (user principal name) te maken.
<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerparameters:
- randomGeneratorType: GUID
- Uitvoerclaims:
- outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc
Voorbeeld van CreateRandomString waarbij een numerieke waarde wordt gemaakt
In het volgende voorbeeld wordt een willekeurige geheel getalwaarde tussen 0 en 1000 gegenereerd. De waarde is opgemaakt voor OTP_{willekeurige waarde}.
<ClaimsTransformation Id="SetRandomNumber" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="INTEGER" />
<InputParameter Id="maximumNumber" DataType="int" Value="1000" />
<InputParameter Id="stringFormat" DataType="string" Value="OTP_{0}" />
<InputParameter Id="base64" DataType="boolean" Value="false" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="randomNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerparameters:
- randomGeneratorType: INTEGER
- maximumNumber: 1000
- stringFormat: OTP_{0}
- base64: false
- Uitvoerclaims:
- outputClaim: OTP_853
CreateStringClaim
Hiermee maakt u een tekenreeksclaim op basis van de opgegeven invoerparameter in de transformatie. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputParameter | waarde | tekenreeks | De tekenreeks die moet worden ingesteld. Deze invoerparameter ondersteunt transformatie-expressies voor tekenreeksclaims. |
OutputClaim | createdClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen, met de waarde die is opgegeven in de invoerparameter. |
Voorbeeld van CreateStringClaim
Met de volgende claimtransformatie maakt u een tekenreekswaarde met servicevoorwaarden.
<ClaimsTransformation Id="CreateTermsOfService" TransformationMethod="CreateStringClaim">
<InputParameters>
<InputParameter Id="value" DataType="string" Value="Contoso terms of service..." />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="TOS" TransformationClaimType="createdClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerparameter:
- waarde: De servicevoorwaarden van Contoso...
- Uitvoerclaims:
- createdClaim: De TOS-claim bevat de waarde 'Contoso-servicevoorwaarden...'.
FormatLocalizedString
Hiermee worden meerdere claims opgemaakt op basis van een opgegeven gelokaliseerde notatietekenreeks. Deze transformatie maakt gebruik van de C# String.Format
-methode. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaims | tekenreeks | De verzameling invoerclaims die fungeren als tekenreeksindeling{0}, {1}, {2} parameters. | |
InputParameter | stringFormatId | tekenreeks | De StringId van een gelokaliseerde tekenreeks. |
OutputClaim | outputClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. |
Notitie
Er is geen limiet voor het aantal invoerclaims dat u kunt opgeven, maar de maximale lengte van de opgemaakte tekenreeks is 4000.
De claimtransformatie FormatLocalizedString gebruiken:
- Definieer een lokalisatietekenreeks en koppel deze aan een zelf-bevestigd-technisch-profiel.
- Het
ElementType
van het elementLocalizedString
moet worden ingesteld opFormatLocalizedStringTransformationClaimType
. - De
StringId
is een unieke id die u definieert en later gebruikt in uw claimtransformatiestringFormatId
. - Geef in de claimtransformatie de lijst met claims op die moeten worden ingesteld met de gelokaliseerde tekenreeks. Stel vervolgens het
stringFormatId
in op hetStringId
van het gelokaliseerde tekenreekselement. - In een zelf-bevestigd technisch profiel, of een invoer- of uitvoerclaimtransformatie weergavebeheer, maakt u een verwijzing naar uw claimtransformatie.
Voorbeeld van FormatLocalizedString
In het volgende voorbeeld wordt een foutbericht gegenereerd wanneer een account zich al in de map bevindt. In het voorbeeld worden gelokaliseerde tekenreeksen gedefinieerd voor Engels (standaard) en Spaans.
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedStrings>
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
<LocalizedResources Id="api.localaccountsignup.es">
<LocalizedStrings>
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
</Localization>
Met de claimtransformatie wordt een antwoordbericht gemaakt op basis van de gelokaliseerde tekenreeks. Het bericht bevat het e-mailadres van de gebruiker dat is ingesloten in de gelokaliseerde tekenreeks ResponseMessge_EmailExists.
<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim: sarah@contoso.com
- Invoerparameters:
- stringFormat: ResponseMessge_EmailExists
- Uitvoerclaims:
- outputClaim: het e-mailadres 'sarah@contoso.com' is al een account in deze organisatie. Selecteer Volgende om u aan te melden met dat account.
FormatStringClaim
Hiermee wordt een claim opgemaakt op basis van de opgegeven notatietekenreeks. Deze transformatie maakt gebruik van de C# String.Format
-methode. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim | tekenreeks | De claim die fungeert als parameter voor tekenreeksindeling {0}. |
InputParameter | stringFormat | tekenreeks | De tekenreeksindeling, inclusief de parameter {0}. Deze invoerparameter ondersteunt transformatie-expressies voor tekenreeksclaims. |
OutputClaim | outputClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. |
Notitie
De maximale toegestane tekenreeksindeling is 4000.
Voorbeeld van FormatStringClaim
Gebruik deze claimtransformatie om een tekenreeks met één parameter {0} op te maken. In het volgende voorbeeld wordt een userPrincipalName gemaakt. Alle technische profielen van sociale id-providers, zoals Facebook-OAUTH
roept de createUserPrincipalName aan om een userPrincipalName te genereren.
<ClaimsTransformation Id="CreateUserPrincipalName" TransformationMethod="FormatStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="cpim_{0}@{RelyingPartyTenantId}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="userPrincipalName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
- Invoerparameters:
- stringFormat: cpim_{0}@{RelyingPartyTenantId}
- Uitvoerclaims:
- outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com
FormatStringMultipleClaims
Hiermee worden twee claims opgemaakt op basis van de opgegeven notatietekenreeks. Deze transformatie maakt gebruik van de C# String.Format
-methode. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim1 | tekenreeks | De claim die fungeert als parameter voor tekenreeksindeling {0}. |
InputClaim | inputClaim2 | tekenreeks | De claim die fungeert als parameter voor tekenreeksindeling {1}. |
InputParameter | stringFormat | tekenreeks | De tekenreeksindeling, inclusief de parameters {0} en {1}. Deze invoerparameter ondersteunt transformatie-expressies voor tekenreeksclaims. |
OutputClaim | outputClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. |
Notitie
De maximale toegestane tekenreeksindeling is 4000.
Voorbeeld van FormatStringMultipleClaims
Gebruik deze claimtransformatie om een tekenreeks met twee parameters, {0} en {1}, op te maken. In het volgende voorbeeld wordt een displayName gemaakt met de opgegeven indeling:
<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="surName" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim1: Joe
- inputClaim2: Fernando
- Invoerparameters:
- stringFormat: {0}{1}
- Uitvoerclaims:
- outputClaim: Joe Fernando
GetLocalizedStringsTransformation
Hiermee kopieert u gelokaliseerde tekenreeksen naar claims. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
OutputClaim | De naam van de gelokaliseerde tekenreeks | tekenreeks | Lijst met claimtypen die worden geproduceerd nadat deze claimtransformatie is aangeroepen. |
De claimtransformatie getLocalizedStringsTransformation gebruiken:
Definieer een lokalisatietekenreeks voor uw inhoudsdefinitie, zoals
api.selfasserted
.Het
ElementType
van het elementLocalizedString
moet worden ingesteld opGetLocalizedStringsTransformationClaimType
.De
StringId
is een unieke id die u definieert en later gebruikt in uw claimtransformatie.Geef in de claimtransformatie de lijst met claims op die moeten worden ingesteld met de gelokaliseerde tekenreeks. De
ClaimTypeReferenceId
is een verwijzing naar een claim die al is gedefinieerd in de sectie ClaimsSchema in het beleid. DeTransformationClaimType
is de naam van de gelokaliseerde tekenreeks zoals gedefinieerd in hetStringId
van het elementLocalizedString
.Maak in een zelf-bevestigde of claimtransformatie van de claimtransformatie van het technische profiel een verwijzing naar uw claimtransformatie.
Koppel het technische profiel aan de inhoudsdefinitie, zoals
api.selfasserted
. In het volgende voorbeeld ziet u hoe u een technisch profiel koppelt aan deapi.selfasserted
inhoudsdefinitie.<Metadata> <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item> </Metadata>
In het volgende diagram ziet u hoe u de claimtransformatie configureert met de lokalisatie-elementen:
Voorbeeld van GetLocalizedStringsTransformation
In het volgende voorbeeld wordt gezocht naar het onderwerp van de e-mail, de hoofdtekst, het codebericht en de handtekening van het e-mailbericht, van gelokaliseerde tekenreeksen. De claims die later worden gebruikt door een aangepaste sjabloon voor e-mailverificatie.
Definieer gelokaliseerde tekenreeksen voor Engels (standaard) en Spaans.
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedStrings>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
<LocalizedResources Id="api.localaccountsignup.es">
<LocalizedStrings>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Código de verificación del correo electrónico de la cuenta de Contoso</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Gracias por comprobar la cuenta de </LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Su código es</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Atentamente</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
</Localization>
Met de claimtransformatie wordt de waarde van het claimtypeonderwerp ingesteld met de waarde van de 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>
- Uitvoerclaims:
- onderwerp: e-mailverificatiecode voor contoso-account
- bericht: Bedankt voor het verifiëren van uw account!
- codeIntro: Uw code is
- handtekening: Met vriendelijke groet
GetMappedValueFromLocalizedCollection
Hiermee wordt een element toegewezen aan de verzameling Beperking van de invoerclaim. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | mapFromClaim | tekenreeks | De claim die de tekst bevat die moet worden opgezocht in de claims restrictionValueClaim met de verzameling Beperking. |
OutputClaim | restrictionValueClaim | tekenreeks | De claim die de verzameling Beperking bevat. Nadat de claimtransformatie is aangeroepen, bevat de waarde van deze claim de waarde van het geselecteerde item. |
Voorbeeld van GetMappedValueFromLocalizedCollection
In het volgende voorbeeld wordt de beschrijving van het foutbericht opgezocht op basis van de foutsleutel. De claim responseMsg bevat een verzameling foutberichten die aan de eindgebruiker moeten worden weergegeven of die naar de Relying Party moeten worden verzonden.
<ClaimType Id="responseMsg">
<DisplayName>Error message: </DisplayName>
<DataType>string</DataType>
<UserInputType>Paragraph</UserInputType>
<Restriction>
<Enumeration Text="B2C_V1_90001" Value="You cannot sign in because you are a minor" />
<Enumeration Text="B2C_V1_90002" Value="This action can only be performed by gold members" />
<Enumeration Text="B2C_V1_90003" Value="You have not been enabled for this operation" />
</Restriction>
</ClaimType>
De claimtransformatie zoekt de tekst van het item op en retourneert de waarde. Als de beperking is gelokaliseerd met behulp van <LocalizedCollection>
, retourneert de claimtransformatie de gelokaliseerde waarde.
<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- mapFromClaim: B2C_V1_90001
- Uitvoerclaims:
- restrictionValueClaim: U kunt zich niet aanmelden omdat u een minderjarige bent.
LookupValue
Hiermee wordt gezocht naar een claimwaarde uit een lijst met waarden op basis van de waarde van een andere claim. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputParameterId | tekenreeks | De claim die de opzoekwaarde bevat |
InputParameter | tekenreeks | Verzameling inputParameters. | |
InputParameter | errorOnFailedLookup | boolean | Bepalen of er een fout wordt geretourneerd wanneer er geen overeenkomende zoekactie is. |
OutputClaim | outputClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. De waarde van de overeenkomende Id . |
Voorbeeld van LookupValue
In het volgende voorbeeld wordt de domeinnaam in een van de inputParameters-verzamelingen opgezocht. De claimtransformatie zoekt de domeinnaam in de id op en retourneert de waarde (een toepassings-id).
<ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
</InputClaims>
<InputParameters>
<InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
<InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
<InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
<InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputParameterId: test.com
- Invoerparameters:
- contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
- microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
- test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
- errorOnFailedLookup: niet waar
- Uitvoerclaims:
- outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9
Voorbeeld van LookupValue met fout
Wanneer de invoerparameter errorOnFailedLookup
is ingesteld op true
, wordt de claimtransformatie LookupValue altijd uitgevoerd vanuit een technisch validatieprofiel dat wordt aangeroepen door een zelf-bevestigd technisch profiel of een DisplayControl. De LookupNotFound
metagegevens van een zelf-gecontroleerd technisch profiel bepalen het foutbericht dat aan de gebruiker wordt gepresenteerd.
In het volgende voorbeeld wordt de domeinnaam in een van de inputParameters-verzamelingen opgezocht. De claimtransformatie zoekt de domeinnaam in de id op en retourneert de waarde (een toepassings-id) of genereert een foutbericht.
<ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
</InputClaims>
<InputParameters>
<InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
<InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
<InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
<InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputParameterId: live.com
- Invoerparameters:
- contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
- microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
- test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
- errorOnFailedLookup: waar
- Fout:
- Er is geen overeenkomst gevonden voor de invoerclaimwaarde in de lijst met invoerparameter-id's en errorOnFailedLookup is waar.
NullClaim
Hiermee wordt de waarde van een bepaalde claim opgeschoond. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
OutputClaim | claim_to_null | tekenreeks | De waarde van de claim is ingesteld op NULL. |
Voorbeeld van NullClaim
Gebruik deze claimtransformatie om onnodige gegevens uit de claimeigenschapszak te verwijderen, zodat de sessiecookie kleiner wordt. In het volgende voorbeeld wordt de waarde van het TermsOfService
claimtype verwijderd.
<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- outputClaim: Welkom bij Contoso App. Als u doorgaat met bladeren en deze website te gebruiken, gaat u ermee akkoord om te voldoen aan en gebonden te zijn aan de volgende voorwaarden...
- Uitvoerclaims:
- outputClaim: NULL
ParseDomain
Hiermee haalt u het domeingedeelte van een e-mailadres op. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | emailAddress | tekenreeks | De claim die het e-mailadres bevat. |
OutputClaim | domain | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen - het domein. |
Voorbeeld van ParseDomain
Gebruik deze claimtransformatie om de domeinnaam te parseren na het @-symbool van de gebruiker. De volgende claimtransformatie laat zien hoe u de domeinnaam van een claim e-mail kunt parseren.
<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- emailAddress: joe@outlook.com
- Uitvoerclaims:
- domain: outlook.com
SetClaimIfBooleansMatch
Hiermee wordt gecontroleerd of een Booleaanse claim true
of false
is. Zo ja, stelt u de uitvoerclaims in met de waarde die aanwezig is in outputClaimIfMatched
invoerparameter. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | claimToMatch | tekenreeks | Het claimtype, dat moet worden gecontroleerd. Een null waarde genereert een uitzondering. |
InputParameter | matchTo | tekenreeks | De waarde die moet worden vergeleken met claimToMatch invoerclaim. Mogelijke waarden: true of false . |
InputParameter | outputClaimIfMatched | tekenreeks | De waarde die moet worden ingesteld als de invoerclaim gelijk is aan de matchTo invoerparameter. |
OutputClaim | outputClaim | tekenreeks | Als de claimToMatch invoerclaim gelijk is aan de matchTo invoerparameter, bevat deze uitvoerclaim de waarde van outputClaimIfMatched invoerparameter. |
Voorbeeld van SetClaimIfBooleansMatch
Met de volgende claimtransformatie wordt bijvoorbeeld gecontroleerd of de waarde van de claim hasPromotionCode gelijk is aan true
. Zo ja, retourneer de waarde naar Promotiecode niet gevonden.
<ClaimsTransformation Id="GeneratePromotionCodeError" TransformationMethod="SetClaimIfBooleansMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="hasPromotionCode" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="true" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="Promotion code not found." />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="promotionCode" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- claimToMatch: true
- Invoerparameters:
- matchTo: true
- outputClaimIfMatched: 'Promotiecode niet gevonden'.
- Uitvoerclaims:
- outputClaim: 'Promotiecode niet gevonden.'
SetClaimsIfRegexMatch
Controleert of een tekenreeksclaim claimToMatch
en matchTo
invoerparameter gelijk zijn en stelt de uitvoerclaims in met de waarde die aanwezig is in outputClaimIfMatched
invoerparameter, samen met de vergelijking van de resultaatuitvoerclaim, die moet worden ingesteld als true
of false
op basis van het resultaat van de vergelijking.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
inputClaim | claimToMatch | tekenreeks | Het type van de claim, dat moet worden vergeleken. |
InputParameter | matchTo | tekenreeks | De reguliere expressie waarmee de claim overeen moet komen. |
InputParameter | outputClaimIfMatched | tekenreeks | De waarde die moet worden ingesteld als tekenreeksen gelijk zijn. |
InputParameter | extractGroups | boolean | [Optioneel] Hiermee geeft u op of de Regex-overeenkomst groepswaarden moet extraheren. Mogelijke waarden: true of false (standaard). |
OutputClaim | outputClaim | tekenreeks | Als de reguliere expressie overeenkomt, bevat deze uitvoerclaim de waarde van outputClaimIfMatched invoerparameter. Of null, als er geen overeenkomst is. |
OutputClaim | regexCompareResultClaim | boolean | De reguliere expressie komt overeen met het resultaatuitvoerclaimtype, dat moet worden ingesteld als true of false op basis van het resultaat van overeenkomende waarden. |
OutputClaim | De naam van de claim | tekenreeks | Als de extractGroups-invoerparameter is ingesteld op waar, wordt een lijst met claimtypen weergegeven die worden geproduceerd nadat deze claimtransformatie is aangeroepen. De naam van de claim moet overeenkomen met de Regex-groepsnaam. |
Voorbeeld van SetClaimsIfRegexMatch
Controleert of het opgegeven telefoonnummer geldig is, op basis van het reguliere expressiepatroon van het telefoonnummer.
<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="^[0-9]{4,16}$" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="iPhone" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
<OutputClaim ClaimTypeReferenceId="isPhoneBoolean" TransformationClaimType="regexCompareResultClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- claimToMatch: '64854114520'
- Invoerparameters:
- matchTo: '^[0-9]{4,16}$'
- outputClaimIfMatched: 'Telefoon'
- Uitvoerclaims:
- outputClaim: 'iPhone'
- regexCompareResultClaim: true
Voorbeeld van SetClaimsIfRegexMatch met extractiegroepen
Controleert of het opgegeven e-mailadres geldig is en retourneert de e-mailalias. Bekijk de livedemo van deze claimtransformatie met extractiegroepen.
<ClaimsTransformation Id="GetAliasFromEmail" TransformationMethod="SetClaimsIfRegexMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="(?<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>
- Invoerclaims:
- claimToMatch: 'emily@contoso.com'
- Invoerparameters:
- matchTo:
(?<mailAlias>.*)@(.*)$
- outputClaimIfMatched: 'isEmail'
- extractGroups: true
- matchTo:
- Uitvoerclaims:
- outputClaim: 'isEmail'
- regexCompareResultClaim: true
- mailAlias: emily
SetClaimsIfStringsAreEqual
Controleert of een tekenreeksclaim matchTo
invoerparameter gelijk zijn en stelt de uitvoerclaims in met de waarde die aanwezig is in invoerparameters stringMatchMsg
en stringMatchMsgCode
, samen met de vergelijking van de resultaatuitvoerclaim, die moet worden ingesteld als true
of false
op basis van het resultaat van de vergelijking.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim | tekenreeks | Het type van de claim, dat moet worden vergeleken. |
InputParameter | matchTo | tekenreeks | De tekenreeks die moet worden vergeleken met inputClaim . |
InputParameter | stringComparison | tekenreeks | Mogelijke waarden: Ordinal of OrdinalIgnoreCase . |
InputParameter | stringMatchMsg | tekenreeks | Eerste waarde die moet worden ingesteld als tekenreeksen gelijk zijn. |
InputParameter | stringMatchMsgCode | tekenreeks | Tweede waarde die moet worden ingesteld als tekenreeksen gelijk zijn. |
OutputClaim | outputClaim1 | tekenreeks | Als tekenreeksen gelijk zijn aan, bevat deze uitvoerclaim de waarde van stringMatchMsg invoerparameter. |
OutputClaim | outputClaim2 | tekenreeks | Als tekenreeksen gelijk zijn aan, bevat deze uitvoerclaim de waarde van stringMatchMsgCode invoerparameter. |
OutputClaim | stringCompareResultClaim | boolean | Het claimtype resultaatuitvoer vergelijken, dat moet worden ingesteld als true of false op basis van het resultaat van de vergelijking. |
Voorbeeld van SetClaimsIfStringsAreEqual
U kunt deze claimtransformatie gebruiken om te controleren of een claim gelijk is aan een waarde die u hebt opgegeven. Met de volgende claimtransformatie wordt bijvoorbeeld gecontroleerd of de waarde van de claim TermsOfUseConsentVersion gelijk is aan v1
. Zo ja, wijzigt u de waarde in v2
.
<ClaimsTransformation Id="CheckTheTOS" TransformationMethod="SetClaimsIfStringsAreEqual">
<InputClaims>
<InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="v1" />
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
<InputParameter Id="stringMatchMsgCode" DataType="string" Value="B2C_V1_90005" />
<InputParameter Id="stringMatchMsg" DataType="string" Value="The TOS is upgraded to v2" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="outputClaim1" />
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeCode" TransformationClaimType="outputClaim2" />
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeResult" TransformationClaimType="stringCompareResultClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim: v1
- Invoerparameters:
- matchTo: V1
- stringComparison: ordinalIgnoreCase
- stringMatchMsgCode: B2C_V1_90005
- stringMatchMsg: De TOS wordt bijgewerkt naar v2
- Uitvoerclaims:
- outputClaim1: B2C_V1_90005
- outputClaim2: De TOS wordt bijgewerkt naar v2
- stringCompareResultClaim: true
SetClaimsIfStringsMatch
Controleert of een tekenreeksclaim en matchTo
invoerparameter gelijk zijn en stelt de uitvoerclaims in met de waarde die aanwezig is in outputClaimIfMatched
invoerparameter, samen met de vergelijking van de resultaatuitvoerclaim, die moet worden ingesteld als true
of false
op basis van het resultaat van de vergelijking.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | claimToMatch | tekenreeks | Het type van de claim, dat moet worden vergeleken. |
InputParameter | matchTo | tekenreeks | De tekenreeks die moet worden vergeleken met inputClaim. |
InputParameter | stringComparison | tekenreeks | Mogelijke waarden: Ordinal of OrdinalIgnoreCase . |
InputParameter | outputClaimIfMatched | tekenreeks | De waarde die moet worden ingesteld als tekenreeksen gelijk zijn. |
OutputClaim | outputClaim | tekenreeks | Als tekenreeksen gelijk zijn aan, bevat deze uitvoerclaim de waarde van outputClaimIfMatched invoerparameter. Of null, als de tekenreeksen niet overeenkomen. |
OutputClaim | stringCompareResultClaim | boolean | Het claimtype resultaatuitvoer vergelijken, dat moet worden ingesteld als true of false op basis van het resultaat van de vergelijking. |
Voorbeeld van SetClaimsIfStringsMatch
Met de volgende claimtransformatie wordt bijvoorbeeld gecontroleerd of de waarde van de claim ageGroup gelijk is aan Minor
. Zo ja, retourneer de waarde naar B2C_V1_90001
.
<ClaimsTransformation Id="SetIsMinor" TransformationMethod="SetClaimsIfStringsMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="ageGroup" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="Minor" />
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="B2C_V1_90001" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isMinor" TransformationClaimType="outputClaim" />
<OutputClaim ClaimTypeReferenceId="isMinorResponseCode" TransformationClaimType="stringCompareResultClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- claimToMatch: Minor
- Invoerparameters:
- matchTo: Minor
- stringComparison: ordinalIgnoreCase
- outputClaimIfMatched: B2C_V1_90001
- Uitvoerclaims:
- isMinorResponseCode: true
- isMinor: B2C_V1_90001
StringContains
Bepaalt of een opgegeven subtekenreeks plaatsvindt binnen de invoerclaim. Het resultaat is een nieuwe booleaanse claim met de waarde true
of false
. true
als de waardeparameter zich in deze tekenreeks voordoet, anders, false
.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim | tekenreeks | Het type van de claim, dat moet worden opgezocht. |
InputParameter | bevat | tekenreeks | De te zoeken waarde. |
InputParameter | ignoreCase | tekenreeks | Hiermee geeft u op of deze vergelijking het gebruik van hoofdletters of kleine letters moet negeren voor de tekenreeks die wordt vergeleken. |
OutputClaim | outputClaim | tekenreeks | De claim die wordt geproduceerd nadat deze claimtransformatie is aangeroepen. Een booleaanse indicator als de subtekenreeks optreedt binnen de invoerclaim. |
Voorbeeld van StringContains
Gebruik deze claimtransformatie om te controleren of een tekenreeksclaimtype een subtekenreeks bevat. In het volgende voorbeeld wordt gecontroleerd of het claimtype van de tekenreeks roles
de waarde beheerder bevat.
<ClaimsTransformation Id="CheckIsAdmin" TransformationMethod="StringContains">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
</InputClaims>
<InputParameters>
<InputParameter Id="contains" DataType="string" Value="admin"/>
<InputParameter Id="ignoreCase" DataType="string" Value="true"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim: "Beheerder, Fiatteur, Editor"
- Invoerparameters:
- contains: "beheerder,"
- ignoreCase: true
- Uitvoerclaims:
- outputClaim: true
StringSubstring
Extraheert onderdelen van een tekenreeksclaimtype, beginnend bij het teken op de opgegeven positie en retourneert het opgegeven aantal tekens. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim | tekenreeks | Het claimtype, dat de tekenreeks bevat. |
InputParameter | startIndex | int | De op nul gebaseerde begintekenpositie van een subtekenreeks in dit exemplaar. |
InputParameter | length | int | Het aantal tekens in de subtekenreeks. |
OutputClaim | outputClaim | tekenreeks | Een tekenreeks die gelijk is aan de subtekenreeks lengte die begint bij startIndex in dit exemplaar, of Leeg als startIndex gelijk is aan de lengte van dit exemplaar en de lengte nul is. |
Voorbeeld van StringSubstring
Haal bijvoorbeeld het voorvoegsel land/regio van het telefoonnummer op.
<ClaimsTransformation Id="GetPhonePrefix" TransformationMethod="StringSubstring">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="startIndex" DataType="int" Value="0" />
<InputParameter Id="length" DataType="int" Value="2" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phonePrefix" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim: "+1644114520"
- Invoerparameters:
- startIndex: 0
- length: 2
- Uitvoerclaims:
- outputClaim: "+1"
StringReplace
Zoekt in een claimtypetekenreeks naar een opgegeven waarde en retourneert een nieuwe claimtypetekenreeks waarin alle exemplaren van een opgegeven tekenreeks in de huidige tekenreeks worden vervangen door een andere opgegeven tekenreeks.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim | tekenreeks | Het claimtype, dat de tekenreeks bevat. |
InputParameter | oudeWaarde | tekenreeks | De tekenreeks die moet worden opgezocht. |
InputParameter | newValue | tekenreeks | De tekenreeks die alle exemplaren van oldValue vervangt |
OutputClaim | outputClaim | boolean | Een tekenreeks die gelijk is aan de huidige tekenreeks, behalve dat alle exemplaren van oldValue worden vervangen door newValue. Als oldValue niet wordt gevonden in het huidige exemplaar, retourneert de methode het huidige exemplaar ongewijzigd. |
Voorbeeld van StringReplace
U kunt bijvoorbeeld een telefoonnummer normaliseren door de tekens -
te verwijderen
<ClaimsTransformation Id="NormalizePhoneNumber" TransformationMethod="StringReplace">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="oldValue" DataType="string" Value="-" />
<InputParameter Id="newValue" DataType="string" Value="" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim: "+164-411-452-054"
- Invoerparameters:
- oldValue: "-"
- newValue: ""
- Uitvoerclaims:
- outputClaim: "+164411452054"
StringJoin
Voegt de elementen van een opgegeven claimtype voor tekenreeksverzameling samen met behulp van het opgegeven scheidingsteken tussen elk element of lid.
Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim | StringCollection | Een verzameling die de tekenreeksen bevat die moeten worden samengevoegd. |
InputParameter | scheidingsteken | tekenreeks | De tekenreeks die moet worden gebruikt als scheidingsteken, zoals komma , . |
OutputClaim | outputClaim | tekenreeks | Een tekenreeks die bestaat uit de leden van de tekenreeksverzameling inputClaim , gescheiden door de delimiter invoerparameter. |
Voorbeeld van StringJoin
In het volgende voorbeeld wordt een tekenreeksverzameling met gebruikersrollen gebruikt en geconverteerd naar een tekenreeks met kommascheidingstekens. U kunt deze methode gebruiken om een tekenreeksverzameling op te slaan in een Azure AD B2C-gebruikersaccount. Wanneer u het account later uit de map leest, gebruikt u de StringSplit
om de tekenreeks met kommascheidingstekens weer te converteren naar tekenreeksverzameling.
<ClaimsTransformation Id="ConvertRolesStringCollectionToCommaDelimiterString" TransformationMethod="StringJoin">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter DataType="string" Id="delimiter" Value="," />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="rolesCommaDelimiterConverted" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim:
[ "Admin", "Author", "Reader" ]
- inputClaim:
- Invoerparameters:
- delimiter: ","
- Uitvoerclaims:
- outputClaim:
"Admin,Author,Reader"
- outputClaim:
StringSplit
Retourneert een tekenreeksmatrix die de subtekenreeksen in dit exemplaar bevat die zijn gescheiden door elementen van een opgegeven tekenreeks. Bekijk de livedemo van deze claimtransformatie.
Element | TransformationClaimType | Gegevenstype | Opmerkingen |
---|---|---|---|
InputClaim | inputClaim | tekenreeks | Een tekenreeksclaimtype dat de subtekenreeksen bevat die moeten worden gesplitst. |
InputParameter | scheidingsteken | tekenreeks | De tekenreeks die moet worden gebruikt als scheidingsteken, zoals komma , . |
OutputClaim | outputClaim | StringCollection | Een tekenreeksverzameling waarvan de elementen de subtekenreeksen in deze tekenreeks bevatten die zijn gescheiden door de delimiter invoerparameter. |
Notitie
Bestaande elementen in de OutputClaim
stringCollection worden verwijderd.
Voorbeeld van StringSplit
In het volgende voorbeeld wordt een tekenreeks met kommascheidingstekens met gebruikersrollen gebruikt en geconverteerd naar een tekenreeksverzameling.
<ClaimsTransformation Id="ConvertRolesToStringCollection" TransformationMethod="StringSplit">
<InputClaims>
<InputClaim ClaimTypeReferenceId="rolesCommaDelimiter" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter DataType="string" Id="delimiter" Value="," />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="roles" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Invoerclaims:
- inputClaim:
Admin,Author,Reader
- inputClaim:
- Invoerparameters:
- delimiter: ","
- Uitvoerclaims:
- outputClaim:
[ "Admin", "Author", "Reader" ]
- outputClaim:
Expressies tekenreeksclaimtransformaties
Expressies voor claimtransformaties in Azure AD B2C aangepast beleid bieden contextinformatie over de tenant-id en technische profiel-id.
Expression | Beschrijving | Voorbeeld |
---|---|---|
{TechnicalProfileId} |
De naam van de technische profileId. | Facebook-OAUTH |
{RelyingPartyTenantId} |
De tenant-id van het Relying Party-beleid. | your-tenant.onmicrosoft.com |
{TrustFrameworkTenantId} |
De tenant-id van het vertrouwensframework. | your-tenant.onmicrosoft.com |
Volgende stappen
- Meer voorbeelden van claimtransformaties kunt u vinden in de GitHub-opslagplaats van de Azure AD B2C-community