Transformace deklarací řetězců
Tento článek obsahuje příklady použití řetězcových transformací deklarací identity schématu Identity Experience Framework v Azure Active Directory B2C (Azure AD B2C). Další informace najdete v tématu Transformace deklarací identity.
AssertStringClaimsAreEqual
Porovná dvě deklarace identity a vyvolá výjimku, pokud nejsou rovny podle zadaného porovnání inputClaim1, inputClaim2 a stringComparison.
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim1 | string | Typ první deklarace identity, který se má porovnat. |
InputClaim | inputClaim2 | string | Druhý typ deklarace identity, který se má porovnat. |
InputParameter | stringComparison | string | porovnání řetězců, jedna z hodnot: Řadový, OrdinalIgnoreCase. |
Transformace deklarací identity AssertStringClaimsAreEqual se vždy provádí z technického profilu ověření, který je volán vlastním technickým profilem nebo DisplayControl. Metadata UserMessageIfClaimsTransformationStringsAreNotEqual
samostatného technického profilu řídí chybovou zprávu, která se uživateli zobrazí. Chybové zprávy lze lokalizovat.
Příklad AssertStringClaimsAreEqual
Tuto transformaci deklarací identity můžete použít k zajištění, že dvě deklarace identity mají stejnou hodnotu. Pokud ne, zobrazí se chybová zpráva. Následující příklad zkontroluje, že deklarace identity strongAuthenticationEmailAddress je rovna e-mailové deklaraci identity. V opačném případě se vyvolá chybová zpráva.
<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>
- Vstupní deklarace identity:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Vstupní parametry:
- stringComparison: ordinalIgnoreCase
- Výsledek: Došlo k chybě
Volání transformace deklarací identity AssertStringClaimsAreEqual
Technický profil ověřování login-NonInteractive volá assertEmailAndStrongAuthenticationEmailAddressAreEqual deklarace identity.
<TechnicalProfile Id="login-NonInteractive">
...
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
</OutputClaimsTransformations>
</TechnicalProfile>
Technický profil s vlastním kontrolním výrazem volá technický profil pro ověření login-NonInteractive .
<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>
Identifikátor BuildUri
Vytvoří čas založený na identifikátoru URI hesla (TOTP). Identifikátor URI je kombinací jedinečného identifikátoru uživatele, například e-mailové adresy a tajného klíče. Identifikátor URI se později převede na kód QR, který se uživateli zobrazí. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | path | string | Jedinečný identifikátor uživatele, například e-mailovou adresu, uživatelské jméno nebo telefonní číslo. |
InputClaim | query.secret | string | Tajný klíč TOTP. |
InputParameter | scheme | string | Část schématu identifikátoru URI. Například otpauth . |
InputParameter | host | string | Část schématu identifikátoru URI. Například totp . |
InputParameter | query.issuer | string | Část vystavitele identifikátoru URI. Například {AuthenticatorIssuer} . |
OutputClaim | outputClaim | string | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. |
Příklad identifikátoru BuildUri
Následující transformace deklarací identity vygeneruje identifikátor URI TOTP, který se zobrazí v kódu QR nebo na přímý odkaz.
<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>
- Vstupní deklarace identity:
- cesta: emily@fabrikam.com
- query.secret:
fay2lj7ynpntjgqa
- Vstupní parametry:
- schéma:
otpauth
- hostitel:
totp
- query.issuer:
{AuthenticatorIssuer}
- schéma:
- Výstupní deklarace identity:
- outputClaim:
otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
- outputClaim:
Změnit malá písmena
Změní případ poskytnuté deklarace na malá nebo velká písmena v závislosti na operátoru. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim1 | string | Deklarace identity, která se má změnit. |
InputParameter | toCase | string | Jedna z následujících hodnot: LOWER nebo UPPER . |
OutputClaim | outputClaim | string | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. |
Příklad typu ChangeCase
Následující transformace deklarace identity změní deklaraci identity e-mailu na malá písmena.
<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>
- Vstupní deklarace identity:
- e-mail: SomeOne@contoso.com
- Vstupní parametry:
- toCase: LOWER
- Výstupní deklarace identity:
- e-mail: someone@contoso.com
CompareClaims
Určuje, zda se jedna deklarace identity řetězce rovná druhé. Výsledkem je nová logická deklarace identity s hodnotou true
nebo false
. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim1 | string | První typ deklarace identity, který se má porovnat. |
InputClaim | inputClaim2 | string | Druhý typ deklarace identity, který se má porovnat. |
InputParameter | operator | string | Možné hodnoty: EQUAL nebo NOT EQUAL . |
InputParameter | ignoreCase | string | Určuje, jestli by toto porovnání mělo ignorovat velikost porovnávaných řetězců. |
OutputClaim | outputClaim | boolean | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. |
Příklad compareClaims
Pomocí této transformace deklarací můžete zkontrolovat, jestli se deklarace identity rovná jiné deklaraci identity. Následující transformace deklarací identity zkontroluje, jestli je hodnota e-mailové deklarace identity identická s Verified.Email deklarací identity.
<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>
- Vstupní deklarace identity:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Vstupní parametry:
- operátor: NOT EQUAL
- ignoreCase: true
- Výstupní deklarace identity:
- outputClaim: true
CompareClaimToValue
Určuje, zda je hodnota deklarace identity rovna vstupní hodnotě parametru. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim1 | string | Typ deklarace identity, který se má porovnat. |
InputParameter | operator | string | Možné hodnoty: EQUAL nebo NOT EQUAL . |
InputParameter | compareTo | string | Porovnání řetězců, jedna z hodnot, tj. řetězec, ke kterému se vstupní hodnoty deklarace identity musí porovnávat s: Řadový, Pořadový, PořadovýIgnoreCase. |
InputParameter | ignoreCase | string | Určuje, jestli by toto porovnání mělo ignorovat velikost porovnávaných řetězců. |
OutputClaim | outputClaim | boolean | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. |
Příklad compareClaimToValue
Pomocí této transformace deklarací identity zkontrolujte, jestli se deklarace identity rovná zadané hodnotě. Například následující transformace deklarací identity zkontroluje, jestli je hodnota výrazu termsOfUseConsentVersion deklarace identity rovna 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>
- Vstupní deklarace identity:
- inputClaim1: v1
- Vstupní parametry:
- compareTo: V2
- operátor: NOT EQUAL
- ignoreCase: true
- Výstupní deklarace identity:
- outputClaim: true
CopyClaimIfPredicateMatch
Zkopíruje hodnotu deklarace identity do jiného, pokud hodnota vstupní deklarace identity odpovídá predikátu výstupní deklarace identity. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim | string | Typ deklarace identity, který se má zkopírovat. |
OutputClaim | outputClaim | string | Typ deklarace identity vytvořený po vyvolání této transformace deklarací identity. Hodnota vstupní deklarace identity je kontrolována proti tomuto predikátu deklarace identity. |
Příklad CopyClaimIfPredicateMatch
Následující příklad se pokusí zkopírovat hodnotu deklarace identity signInName do deklarace identity phoneNumber. V tomto příkladu se hodnota nezkopíruje. Deklarace identity signInName není v očekávaném formátu telefonního čísla. Kompletní ukázku najdete v tématu Telefonní číslo nebo zásady úvodního balíčku pro přihlášení k e-mailu.
<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Vstupní deklarace identity:
- inputClaim: bob@contoso.com
- Výstupní deklarace identity:
- outputClaim: Výstupní deklarace identity se nezmění z původní hodnoty.
Příklad CopyClaimIfPredicateMatch, který moct predikát
V tomto příkladu transformace deklarací identity zkopíruje hodnotu. Deklarace identity signInName je ve správném formátu, telefonním čísle.
- Vstupní deklarace identity:
- inputClaim: +11234567890
- Výstupní deklarace identity:
- outputClaim: +11234567890
CreateOtpSecret
Vytvoří deklaraci řetězce TOTP. Výstupem této transformace deklarací identity je tajný klíč TOTP, který se později uloží do účtu uživatele Azure AD B2C a sdílí se s aplikací Microsoft Authenticator. Ověřovací aplikace používá klíč k vygenerování kódů TOTP, když uživatel potřebuje procházet vícefaktorové ověřování. Vaše zásada používá klíč k ověření kódu TOTP poskytnutého uživatelem.
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
OutputClaim | outputClaim | string | Deklarace identity vytvořená po vyvolání této transformace deklarací identity s vygenerovaným kódem TOTP. |
Příklad createOtpSecret
Následující transformace deklarací identity vytvoří tajný kód pro vícefaktorový ověřovací program TOTP.
<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Výstupní deklarace identity:
- outputClaim:
hmlcmd4ph6fph64c
- outputClaim:
CreateRandomString
Vytvoří náhodný řetězec pomocí generátoru náhodných čísel. Pokud je generátor náhodných čísel typu integer
, volitelně parametr počátečního čísla a může být zadán maximální počet. Volitelný parametr formátu řetězce umožňuje formátování výstupu pomocí něj a volitelný parametr base64 určuje, jestli je výstup kódovaný randomGeneratorType [guid, integer] outputClaim (String).
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputParameter | randomGeneratorType | string | Určuje náhodnou hodnotu, která se má vygenerovat ( GUID globální jedinečné ID) nebo INTEGER (číslo). |
InputParameter | stringFormat | string | [Volitelné] Naformátujte náhodnou hodnotu. |
InputParameter | base64 | boolean | [Volitelné] Převeďte náhodnou hodnotu na base64. Pokud je použit formát řetězce, hodnota po zakódování formátu řetězce na base64. |
InputParameter | maximumNumber | int | [Volitelné] Pouze pro INTEGER randomGeneratorType. Zadejte maximální počet. |
InputParameter | semeno | int | [Volitelné] Pouze pro INTEGER randomGeneratorType. Zadejte počáteční hodnotu náhodné hodnoty. Poznámka: Stejné počáteční hodnoty poskytují stejnou sekvenci náhodných čísel. |
OutputClaim | outputClaim | string | Deklarace identity, které budou vytvořeny po vyvolání této transformace deklarací identity. Náhodná hodnota. |
Příklad CreateRandomString
Následující příklad vygeneruje globální jedinečné ID. Tato transformace deklarací identity slouží k vytvoření náhodného hlavního názvu uživatele (hlavní název uživatele).
<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Vstupní parametry:
- randomGeneratorType: GUID
- Výstupní deklarace identity:
- outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc
Příklad CreateRandomString vytvoření číselné hodnoty
Následující příklad vygeneruje celočíselnou náhodnou hodnotu mezi 0 a 1 000. Hodnota je formátována na OTP_{náhodná hodnota}.
<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>
- Vstupní parametry:
- randomGeneratorType: INTEGER
- maximumNumber: 1000
- stringFormat: OTP_{0}
- base64: false
- Výstupní deklarace identity:
- outputClaim: OTP_853
CreateStringClaim
Vytvoří deklaraci řetězce ze zadaného vstupního parametru v transformaci. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputParameter | hodnota | string | Řetězec, který se má nastavit. Tento vstupní parametr podporuje výrazy transformace deklarací řetězců. |
OutputClaim | createdClaim | string | Deklarace identity vytvořená po vyvolání této transformace deklarací identity s hodnotou zadanou ve vstupním parametru. |
Příklad CreateStringClaim
Následující transformace deklarací identity vytvoří řetězcovou hodnotu s podmínkami služby.
<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>
- Vstupní parametr:
- value: Podmínky služby Společnosti Contoso...
- Výstupní deklarace identity:
- createdClaim: Deklarace identity TOS obsahuje "Podmínky služby Contoso..." hodnota.
FormatLocalizedString
Formátuje více deklarací identity podle zadaného lokalizovaného řetězce formátu. Tato transformace používá metodu jazyka C# String.Format
. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaims | string | Kolekce vstupních deklarací identity, které fungují jako formát {0}řetězce , {1}{2} parametry. | |
InputParameter | stringFormatId | string | Lokalizovaný StringId řetězec. |
OutputClaim | outputClaim | string | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. |
Poznámka:
Počet vstupních deklarací identity, které můžete zadat, není nijak omezený, ale maximální délka formátovaného řetězce je 4000.
Použití transformace deklarací identity FormatLocalizedString:
- Definujte řetězec lokalizace a přidružte ho k profilu self-asserted-technical-profile.
- Prvek
ElementType
LocalizedString
musí být nastaven naFormatLocalizedStringTransformationClaimType
. - Jedná se
StringId
o jedinečný identifikátor, který definujete, a použijete ho později v transformaci deklaracístringFormatId
identity . - V transformaci deklarací zadejte seznam deklarací identity, které se mají nastavit s lokalizovaným řetězcem. Pak nastavte
stringFormatId
naStringId
lokalizovaný prvek řetězce. - V technickém profilu s vlastním kontrolním výrazem nebo transformaci vstupních nebo výstupních deklarací identity zobrazte odkaz na transformaci deklarací identity.
Příklad FormatLocalizedString
Následující příklad vygeneruje chybovou zprávu, pokud je účet již v adresáři. Příklad definuje lokalizované řetězce pro angličtinu (výchozí) a španělštinu.
<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="ResponseMessage_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="ResponseMessage_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>
Transformace deklarací identity vytvoří zprávu odpovědi na základě lokalizovaného řetězce. Zpráva obsahuje e-mailovou adresu uživatele vloženou do lokalizovaného ResponseMessage_EmailExists.
<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessage_EmailExists" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Vstupní deklarace identity:
- inputClaim: sarah@contoso.com
- Vstupní parametry:
- stringFormat: ResponseMessage_EmailExists
- Výstupní deklarace identity:
- outputClaim: E-mail 'sarah@contoso.com' je již účet v této organizaci. Vyberte Další, pokud se chcete přihlásit pomocí daného účtu.
FormatStringClaim
Naformátuje deklaraci identity podle zadaného řetězce formátu. Tato transformace používá metodu jazyka C# String.Format
. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim | string | Deklarace identity, která funguje jako parametr formátu {0} řetězce. |
InputParameter | stringFormat | string | Formát řetězce, včetně parametru {0} . Tento vstupní parametr podporuje výrazy transformace deklarací řetězců. |
OutputClaim | outputClaim | string | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. |
Poznámka:
Maximální povolená velikost formátu řetězce je 4000.
Příklad FormatStringClaim
Pomocí této transformace deklarací identity naformátujte libovolný řetězec s jedním parametrem {0}. Následující příklad vytvoří userPrincipalName. Všechny technické profily zprostředkovatele sociálních identit, například Facebook-OAUTH
volání CreateUserPrincipalName pro vygenerování 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>
- Vstupní deklarace identity:
- inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
- Vstupní parametry:
- stringFormat: cpim_{0}@{RelyingPartyTenantId}
- Výstupní deklarace identity:
- outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com
FormatStringMultipleClaims
Naformátuje dvě deklarace identity podle zadaného řetězce formátu. Tato transformace používá metodu jazyka C# String.Format
. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim1 | string | Deklarace identity, která funguje jako parametr formátu {0} řetězce. |
InputClaim | inputClaim2 | string | Deklarace identity, která funguje jako parametr formátu {1} řetězce. |
InputParameter | stringFormat | string | Formát řetězce, včetně parametrů{0}.{1} Tento vstupní parametr podporuje výrazy transformace deklarací řetězců. |
OutputClaim | outputClaim | string | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. |
Poznámka:
Maximální povolená velikost formátu řetězce je 4000.
Příklad FormatStringMultipleClaims
Pomocí této transformace deklarací identity naformátujte libovolný řetězec se dvěma parametry {0} a {1}. Následující příklad vytvoří displayName se zadaným formátem:
<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>
- Vstupní deklarace identity:
- inputClaim1: Joe
- inputClaim2: Fernando
- Vstupní parametry:
- stringFormat: {0}{1}
- Výstupní deklarace identity:
- outputClaim: Joe Fernando
GetLocalizedStringsTransformation
Zkopíruje lokalizované řetězce do deklarací identity. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
OutputClaim | Název lokalizovaného řetězce | string | Seznam typů deklarací identity vytvořených po vyvolání této transformace deklarací identity |
Použití transformace deklarací identity GetLocalizedStringsTransformation:
Definujte lokalizační řetězec pro definici obsahu, například
api.selfasserted
.Prvek
ElementType
LocalizedString
musí být nastaven naGetLocalizedStringsTransformationClaimType
.Jedná se
StringId
o jedinečný identifikátor, který definujete, a použijete ho později v transformaci deklarací identity.V transformaci deklarací zadejte seznam deklarací identity, které se mají nastavit s lokalizovaným řetězcem. Jedná se
ClaimTypeReferenceId
o odkaz na deklaraci identity, která je již definovaná v části ClaimsSchema v zásadách. Jedná seTransformationClaimType
o název lokalizovaného řetězce, jak je definováno vStringId
elementuLocalizedString
.V případě transformace deklarací identity nebo transformace deklarací identity v technickém profilu vytvořte odkaz na transformaci deklarací identity.
Přidružte technický profil k definici obsahu, například
api.selfasserted
. Následující příklad ukazuje, jak přidružitapi.selfasserted
technický profil k definici obsahu.<Metadata> <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item> </Metadata>
Následující diagram ukazuje, jak nakonfigurovat transformaci deklarací identity pomocí elementů lokalizace:
Příklad GetLocalizedStringsTransformation
Následující příklad vyhledá předmět e-mailu, text, zprávu s kódem a podpis e-mailu z lokalizovaných řetězců. Deklarace identity později používané vlastní šablonou pro ověření e-mailu.
Definujte lokalizované řetězce pro angličtinu (výchozí) a španělštinu.
<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>
Transformace deklarací identity nastaví hodnotu předmětu typu deklarace identity s hodnotou 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>
- Výstupní deklarace identity:
- předmět: Ověřovací kód e-mailu účtu Contoso
- zpráva: Děkujeme za ověření vašeho účtu!
- codeIntro: Váš kód je
- podpis: S pozdravem
GetMappedValueFromLocalizedCollection
Mapuje prvek ze vstupní kolekce omezení deklarace identity. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | mapFromClaim | string | Deklarace identity obsahující text, který se má vyhledat v deklarací restrictionValueClaim s kolekcí Omezení . |
OutputClaim | restrictionValueClaim | string | Deklarace identity, která obsahuje kolekci Omezení . Po vyvolání transformace deklarací identity obsahuje hodnota této deklarace identity hodnotu vybrané položky. |
Příklad GetMappedValueFromLocalizedCollection
Následující příklad vyhledá popis chybové zprávy na základě klíče chyby. Deklarace identity responseMsg obsahuje kolekci chybových zpráv, které se mají prezentovat koncovému uživateli nebo které se mají odeslat předávající straně.
<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>
Transformace deklarací identity vyhledá text položky a vrátí její hodnotu. Pokud je omezení lokalizované pomocí <LocalizedCollection>
, transformace deklarací identity vrátí lokalizovanou hodnotu.
<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />
</OutputClaims>
</ClaimsTransformation>
- Vstupní deklarace identity:
- mapFromClaim: B2C_V1_90001
- Výstupní deklarace identity:
- restrictionValueClaim: Nemůžete se přihlásit, protože jste podverze.
LookupValue
Vyhledá hodnotu deklarace identity ze seznamu hodnot na základě hodnoty jiné deklarace identity. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputParameterId | string | Deklarace identity, která obsahuje vyhledávací hodnotu |
InputParameter | string | Kolekce inputParameters. | |
InputParameter | errorOnFailedLookup | boolean | Řízení, zda je vrácena chyba, když žádné odpovídající vyhledávání. |
OutputClaim | outputClaim | string | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. Hodnota odpovídající Id hodnoty . |
Příklad funkce LookupValue
Následující příklad vyhledá název domény v jedné z kolekcí inputParameters. Transformace deklarací identity vyhledá název domény v identifikátoru a vrátí její hodnotu (ID aplikace).
<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>
- Vstupní deklarace identity:
- inputParameterId: test.com
- Vstupní parametry:
- contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
- microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
- test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
- errorOnFailedLookup: false
- Výstupní deklarace identity:
- outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9
Příklad funkce LookupValue s chybou
Pokud errorOnFailedLookup
je vstupní parametr nastaven na true
, je transformace deklarací identity LookupValue vždy provedena z ověřovacího technického profilu , který je volán vlastním kontrolním technickým profilem nebo DisplayConrtol. Metadata LookupNotFound
samostatného technického profilu řídí chybovou zprávu, která se uživateli zobrazí.
Následující příklad vyhledá název domény v jedné z kolekcí inputParameters. Transformace deklarací identity vyhledá název domény v identifikátoru a vrátí její hodnotu (ID aplikace) nebo vyvolá chybovou zprávu.
<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>
- Vstupní deklarace identity:
- inputParameterId: live.com
- Vstupní parametry:
- contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
- microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
- test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
- errorOnFailedLookup: true
- Chyba:
- Nebyla nalezena žádná shoda pro vstupní hodnotu deklarace identity v seznamu ID vstupních parametrů a errorOnFailedLookup je true.
NullClaim
Vyčistí hodnotu dané deklarace identity. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
OutputClaim | claim_to_null | string | Hodnota deklarace identity je nastavená na hodnotu NULL. |
Příklad NullClaim
Tuto transformaci deklarace identity použijte k odebrání nepotřebných dat z tašky vlastností deklarací identity, aby soubor cookie relace byl menší. Následující příklad odebere hodnotu TermsOfService
typu deklarace identity.
<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
</OutputClaims>
</ClaimsTransformation>
- Vstupní deklarace identity:
- outputClaim: Vítá vás aplikace Contoso. Pokud budete pokračovat v procházení a používání tohoto webu, souhlasíte s tím, že souhlasíte s dodržováním následujících podmínek a ujednání...
- Výstupní deklarace identity:
- outputClaim: NULL
ParseDomain
Získá část domény e-mailové adresy. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | emailAddress | string | Deklarace identity, která obsahuje e-mailovou adresu. |
OutputClaim | domain | string | Deklarace identity vytvořená po vyvolání této transformace deklarací identity – doména. |
Příklad parseDomain
Pomocí této transformace deklarací identity parsujte název domény za symbolem @ uživatele. Následující transformace deklarací identity ukazuje, jak analyzovat název domény z e-mailové deklarace identity.
<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
</OutputClaims>
</ClaimsTransformation>
- Vstupní deklarace identity:
- emailAddress: joe@outlook.com
- Výstupní deklarace identity:
- doména: outlook.com
SetClaimIfBooleansMatch
Kontroluje, zda je true
logická deklarace identity , nebo false
. Pokud ano, nastaví výstupní deklarace identity s hodnotou, která se nachází ve outputClaimIfMatched
vstupním parametru. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | claimToMatch | string | Typ deklarace identity, který se má zkontrolovat. Hodnota Null vyvolá výjimku. |
InputParameter | matchTo | string | Hodnota, která se má porovnat se vstupní deklarací claimToMatch identity. Možné hodnoty: true nebo false . |
InputParameter | outputClaimIfMatched | string | Hodnota, která se má nastavit, pokud se vstupní deklarace identity rovná vstupnímu parametru matchTo . |
OutputClaim | outputClaim | string | Pokud se claimToMatch vstupní deklarace identity rovná vstupnímu parametru matchTo , obsahuje tato výstupní deklarace identity hodnotu vstupního parametru outputClaimIfMatched . |
Příklad SetClaimIfBooleansMatch
Například následující transformace deklarací identity zkontroluje, jestli je hodnota deklarace identity hasPromotionCode rovna true
. Pokud ano, vrátí hodnotu do kódu povýšení, který nebyl nalezen.
<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>
- Vstupní deklarace identity:
- claimToMatch: true
- Vstupní parametry:
- matchTo: true
- outputClaimIfMatched: Kód povýšení nebyl nalezen.
- Výstupní deklarace identity:
- outputClaim: Kód povýšení nebyl nalezen.
SetClaimsIfRegexMatch
Zkontroluje, jestli je deklarace identity claimToMatch
řetězce a matchTo
vstupní parametr rovna, a nastaví výstupní deklarace identity s hodnotou, která se nachází ve outputClaimIfMatched
vstupním parametru, spolu s porovnáním výstupní deklarace výsledku, která se má nastavit jako true
výsledek porovnání nebo false
na základě výsledku porovnání.
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
inputClaim | claimToMatch | string | Typ deklarace identity, který se má porovnat. |
InputParameter | matchTo | string | Regulární výraz, který se má shodovat. |
InputParameter | outputClaimIfMatched | string | Hodnota, která se má nastavit, pokud jsou řetězce stejné. |
InputParameter | extractGroups | boolean | [Volitelné] Určuje, jestli se má shoda regulárních výrazů extrahovat hodnoty skupin. Možné hodnoty: true nebo false (výchozí). |
OutputClaim | outputClaim | string | Pokud se regulární výraz shoduje, obsahuje tato výstupní deklarace identity hodnotu vstupního parametru outputClaimIfMatched . Nebo null, pokud žádná shoda. |
OutputClaim | regexCompareResultClaim | boolean | Regulární výraz odpovídá výstupnímu typu deklarace identity, která se má nastavit jako true nebo false na základě výsledku porovnávání. |
OutputClaim | Název deklarace identity | string | Pokud je vstupní parametr extractGroups nastavený na true, seznam typů deklarací, které jsou vytvořeny po vyvolání této transformace deklarací identity. Název deklarace identity se musí shodovat s názvem skupiny Regex. |
Příklad SetClaimsIfRegexMatch
Zkontroluje, jestli je zadané telefonní číslo platné na základě vzorce regulárního výrazu telefonního čísla.
<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>
- Vstupní deklarace identity:
- claimToMatch: "64854114520"
- Vstupní parametry:
- matchTo: ^[0-9]{4,16}$"
- outputClaimIfMatched: "Phone"
- Výstupní deklarace identity:
- outputClaim: "iPhone"
- regexCompareResultClaim: true
Příklad SetClaimsIfRegexMatch se skupinami extrakce
Zkontroluje, jestli je zadaná e-mailová adresa platná, a vrátí e-mailový alias. Podívejte se na živou ukázku této transformace deklarací identity s extrahováním skupin.
<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>
- Vstupní deklarace identity:
- claimToMatch: "emily@contoso.com"
- Vstupní parametry:
- matchTo:
(?<mailAlias>.*)@(.*)$
- outputClaimIfMatched: "isEmail"
- extractGroups: true
- matchTo:
- Výstupní deklarace identity:
- outputClaim: "isEmail"
- regexCompareResultClaim: true
- mailAlias: emily
SetClaimsIfStringsAreEqual
Zkontroluje, že deklarace identity řetězce a matchTo
vstupní parametr jsou stejné, a nastaví výstupní deklarace identity s hodnotou, která se nachází v stringMatchMsg
a stringMatchMsgCode
vstupních parametrech, spolu s porovnáním výstupní deklarace výsledku, která se má nastavit jako true
výsledek porovnání nebo false
na základě výsledku porovnání.
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim | string | Typ deklarace identity, který se má porovnat. |
InputParameter | matchTo | string | Řetězec, který se má porovnat s inputClaim . |
InputParameter | stringComparison | string | Možné hodnoty: Ordinal nebo OrdinalIgnoreCase . |
InputParameter | stringMatchMsg | string | První hodnota, která se má nastavit, pokud jsou řetězce stejné. |
InputParameter | stringMatchMsgCode | string | Druhá hodnota, která se má nastavit, pokud jsou řetězce stejné. |
OutputClaim | outputClaim1 | string | Pokud jsou řetězce stejné, tato výstupní deklarace identity obsahuje hodnotu vstupního parametru stringMatchMsg . |
OutputClaim | outputClaim2 | string | Pokud jsou řetězce stejné, tato výstupní deklarace identity obsahuje hodnotu vstupního parametru stringMatchMsgCode . |
OutputClaim | stringCompareResultClaim | boolean | Porovnávaný výstupní typ deklarace identity výsledku, který se má nastavit jako true nebo false na základě výsledku porovnání. |
Příklad SetClaimsIfStringsAreEqual
Tuto transformaci deklarací identity můžete použít ke kontrole, jestli je deklarace identity rovna zadané hodnotě. Například následující transformace deklarací identity zkontroluje, jestli je hodnota výrazu termsOfUseConsentVersion deklarace identity rovna v1
. Pokud ano, změňte hodnotu na 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>
- Vstupní deklarace identity:
- inputClaim: v1
- Vstupní parametry:
- matchTo: V1
- stringComparison: ordinalIgnoreCase
- stringMatchMsgCode: B2C_V1_90005
- stringMatchMsg: Služba TOS se upgraduje na verzi 2.
- Výstupní deklarace identity:
- outputClaim1: B2C_V1_90005
- outputClaim2: Služba TOS se upgraduje na verzi 2.
- stringCompareResultClaim: true
SetClaimsIfStringsMatch
Zkontroluje, jestli je deklarace identity řetězce a matchTo
vstupní parametr rovna, a nastaví výstupní deklarace identity s hodnotou, která se nachází ve outputClaimIfMatched
vstupním parametru, spolu s porovnáním výstupní deklarace výsledku, která se má nastavit jako true
výsledek porovnání nebo false
na základě výsledku porovnání.
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | claimToMatch | string | Typ deklarace identity, který se má porovnat. |
InputParameter | matchTo | string | Řetězec, který se má porovnat se inputClaim. |
InputParameter | stringComparison | string | Možné hodnoty: Ordinal nebo OrdinalIgnoreCase . |
InputParameter | outputClaimIfMatched | string | Hodnota, která se má nastavit, pokud jsou řetězce stejné. |
OutputClaim | outputClaim | string | Pokud jsou řetězce stejné, tato výstupní deklarace identity obsahuje hodnotu vstupního parametru outputClaimIfMatched . Nebo null, pokud se řetězce neshodují. |
OutputClaim | stringCompareResultClaim | boolean | Porovnávaný výstupní typ deklarace identity výsledku, který se má nastavit jako true nebo false na základě výsledku porovnání. |
Příklad SetClaimsIfStringsMatch
Například následující transformace deklarací identity zkontroluje, jestli je hodnota deklarace ageGroup rovna Minor
. Pokud ano, vrátí hodnotu do 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>
- Vstupní deklarace identity:
- claimToMatch: Podverze
- Vstupní parametry:
- matchTo: Podverze
- stringComparison: ordinalIgnoreCase
- outputClaimIfMatched: B2C_V1_90001
- Výstupní deklarace identity:
- isMinorResponseCode: true
- isMinor: B2C_V1_90001
StringContains
Určuje, zda se zadaný podřetědec vyskytuje ve vstupní deklaraci identity. Výsledkem je nová logická deklarace identity s hodnotou true
nebo false
. true
pokud se parametr hodnoty vyskytuje v tomto řetězci, false
jinak .
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim | string | Typ deklarace identity, který se má prohledávat. |
InputParameter | obsahuje | string | Hodnota, kterou chcete vyhledat. |
InputParameter | ignoreCase | string | Určuje, jestli by toto porovnání mělo ignorovat velikost porovnávaného řetězce. |
OutputClaim | outputClaim | string | Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. Logický indikátor, pokud se podřetěžec vyskytuje ve vstupní deklaraci identity. |
Příklad StringContains
Pomocí této transformace deklarací identity zkontrolujte, jestli typ deklarace identity řetězce obsahuje podřetězce. V následujícím příkladu roles
zkontrolujete, jestli typ deklarace identity řetězce obsahuje hodnotu správce.
<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>
- Vstupní deklarace identity:
- inputClaim: "Admin, Approver, Editor"
- Vstupní parametry:
- obsahuje: "admin",
- ignoreCase: true
- Výstupní deklarace identity:
- outputClaim: true
StringSubstring
Extrahuje části typu deklarace identity řetězce, počínaje znakem na zadané pozici a vrátí zadaný počet znaků. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim | string | Typ deklarace identity, který obsahuje řetězec. |
InputParameter | startIndex | int | Pozice počátečního znaku založeného na nule podřetězdce v této instanci. |
InputParameter | length | int | Počet znaků v podřetědci. |
OutputClaim | outputClaim | string | Řetězec, který je ekvivalentní podřetězci délky, která začíná na startIndex v této instanci, nebo Prázdný, pokud startIndex je rovna délce této instance a délka je nula. |
Příklad řetězce Podřetězce
Například získejte předponu země/oblasti telefonního čísla.
<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>
- Vstupní deklarace identity:
- inputClaim: "+1644114520"
- Vstupní parametry:
- startIndex: 0
- délka: 2
- Výstupní deklarace identity:
- outputClaim: "+1"
StringReplace
Vyhledá řetězec typu deklarace identity zadanou hodnotu a vrátí nový řetězec typu deklarace identity, ve kterém se všechny výskyty zadaného řetězce v aktuálním řetězci nahradí jiným zadaným řetězcem.
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim | string | Typ deklarace identity, který obsahuje řetězec. |
InputParameter | oldValue | string | Řetězec, který se má prohledávat. |
InputParameter | newValue | string | Řetězec, který má nahradit všechny výskyty oldValue |
OutputClaim | outputClaim | boolean | Řetězec, který je ekvivalentní aktuálnímu řetězci s tím rozdílem, že všechny instance staré Hodnoty jsou nahrazeny newValue. Pokud se v aktuální instanci nenajde stará Hodnota, vrátí metoda aktuální instanci beze změny. |
Příklad StringReplace
Můžete třeba normalizovat telefonní číslo odebráním -
znaků.
<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>
- Vstupní deklarace identity:
- inputClaim: "+164-411-452-054"
- Vstupní parametry:
- oldValue: "-"
- newValue: ""
- Výstupní deklarace identity:
- outputClaim: "+164411452054"
StringJoin
Zřetězí prvky zadaného typu deklarace identity kolekce řetězců pomocí zadaného oddělovače mezi každým prvkem nebo členem.
Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim | stringCollection | Kolekce obsahující řetězce ke zřetězení. |
InputParameter | oddělovač | string | Řetězec, který se má použít jako oddělovač, například čárka , . |
OutputClaim | outputClaim | string | Řetězec, který se skládá ze členů inputClaim kolekce řetězců oddělený vstupním parametrem delimiter . |
Příklad StringJoin
Následující příklad přebírá kolekci řetězců uživatelských rolí a převede ji na řetězec oddělovače čárky. Tuto metodu můžete použít k uložení kolekce řetězců do uživatelského účtu Azure AD B2C. Později při čtení účtu z adresáře použijte StringSplit
k převodu řetězce oddělovače čárky zpět na kolekci řetězců.
<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>
- Vstupní deklarace identity:
- inputClaim:
[ "Admin", "Author", "Reader" ]
- inputClaim:
- Vstupní parametry:
- oddělovač: ","
- Výstupní deklarace identity:
- outputClaim:
"Admin,Author,Reader"
- outputClaim:
StringSplit
Vrátí pole řetězců obsahující podřetězce v této instanci, které jsou odděleny prvky zadaného řetězce. Podívejte se na živou ukázku této transformace deklarací identity.
Element (Prvek) | TransformationClaimType | Datový typ | Notes |
---|---|---|---|
InputClaim | inputClaim | string | Typ deklarace identity řetězce, který obsahuje podřetězce, které se mají rozdělit. |
InputParameter | oddělovač | string | Řetězec, který se má použít jako oddělovač, například čárka , . |
OutputClaim | outputClaim | stringCollection | Kolekce řetězců, jejíž prvky obsahují podřetězce v tomto řetězci, které jsou oddělené vstupním parametrem delimiter . |
Poznámka:
Všechny existující prvky v OutputClaim
stringCollection budou odebrány.
Příklad StringSplit
Následující příklad přebírá řetězec oddělovače čárkami uživatelských rolí a převede ho na kolekci řetězců.
<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>
- Vstupní deklarace identity:
- inputClaim:
Admin,Author,Reader
- inputClaim:
- Vstupní parametry:
- oddělovač: ","
- Výstupní deklarace identity:
- outputClaim:
[ "Admin", "Author", "Reader" ]
- outputClaim:
Výrazy transformací deklarací řetězců
Výrazy transformací deklarací identity ve vlastních zásadách Azure AD B2C poskytují kontextové informace o ID tenanta a ID technického profilu.
Expression | Popis | Příklad |
---|---|---|
{TechnicalProfileId} |
Název ID technického profilu. | Facebook-OAUTH |
{RelyingPartyTenantId} |
ID tenanta zásad předávající strany. | your-tenant.onmicrosoft.com |
{TrustFrameworkTenantId} |
ID tenanta architektury důvěryhodnosti. | your-tenant.onmicrosoft.com |
Další kroky
- Další ukázky transformace deklarací identity najdete v úložišti GitHub komunity Azure AD B2C.