Sdílet prostřednictvím


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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace inputClaim1 – Deklarace řetězec Typ první deklarace identity, který se má porovnat.
Vstupní deklarace inputClaim2 – Deklarace nároku 2 řetězec Druhý typ deklarace identity, který se má porovnat.
VstupníParametr stringComparison řetězec 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.

Diagram znázorňuje, jak používat deklarace deklarací řetězců assert jsou stejné transformace deklarací identity.

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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace cesta řetězec Jedinečný identifikátor uživatele, například e-mailovou adresu, uživatelské jméno nebo telefonní číslo.
Vstupní deklarace query.secret řetězec Tajný klíč TOTP.
VstupníParametr schéma řetězec Část schématu identifikátoru URI. Například otpauth.
VstupníParametr Hostitel řetězec Část schématu identifikátoru URI. Například totp.
VstupníParametr query.issuer řetězec Část vystavitele identifikátoru URI. Například {AuthenticatorIssuer}.
Výstupní deklarace Deklarace výstupu řetězec 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}
  • Výstupní deklarace identity:
    • outputClaim: otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace inputClaim1 – Deklarace řetězec Deklarace identity, která se má změnit.
VstupníParametr toCase řetězec Jedna z následujících hodnot: LOWER nebo UPPER.
Výstupní deklarace Deklarace výstupu řetězec 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace inputClaim1 – Deklarace řetězec První typ deklarace identity, který se má porovnat.
Vstupní deklarace inputClaim2 – Deklarace nároku 2 řetězec Druhý typ deklarace identity, který se má porovnat.
VstupníParametr operátor řetězec Možné hodnoty: EQUAL nebo NOT EQUAL.
VstupníParametr ignorovat případ řetězec Určuje, jestli by toto porovnání mělo ignorovat velikost porovnávaných řetězců.
Výstupní deklarace Deklarace výstupu 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace inputClaim1 – Deklarace řetězec Typ deklarace identity, který se má porovnat.
VstupníParametr operátor řetězec Možné hodnoty: EQUAL nebo NOT EQUAL.
VstupníParametr compareTo řetězec 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.
VstupníParametr ignorovat případ řetězec Určuje, jestli by toto porovnání mělo ignorovat velikost porovnávaných řetězců.
Výstupní deklarace Deklarace výstupu 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu řetězec Typ deklarace identity, který se má zkopírovat.
Výstupní deklarace Deklarace výstupu řetězec 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) TransformaceClaimType Datový typ Poznámky
Výstupní deklarace Deklarace výstupu řetězec 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

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) TransformaceClaimType Datový typ Poznámky
VstupníParametr randomGeneratorType řetězec Určuje náhodnou hodnotu, která se má vygenerovat ( GUID globální jedinečné ID) nebo INTEGER (číslo).
VstupníParametr stringFormat řetězec [Volitelné] Naformátujte náhodnou hodnotu.
VstupníParametr 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.
VstupníParametr maximumNumber int (integer) [Volitelné] Pouze pro INTEGER randomGeneratorType. Zadejte maximální počet.
VstupníParametr semeno int (integer) [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.
Výstupní deklarace Deklarace výstupu řetězec 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) TransformaceClaimType Datový typ Poznámky
VstupníParametr hodnota řetězec Řetězec, který se má nastavit. Tento vstupní parametr podporuje výrazy transformace deklarací řetězců.
Výstupní deklarace createdClaim řetězec 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace identity řetězec Kolekce vstupních deklarací identity, které fungují jako formát {0}řetězce , {1}{2} parametry.
VstupníParametr stringFormatId řetězec Lokalizovaný StringIdřetězec.
Výstupní deklarace Deklarace výstupu řetězec 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:

  1. Definujte řetězec lokalizace a přidružte ho k profilu self-asserted-technical-profile.
  2. Prvek ElementTypeLocalizedString musí být nastaven na FormatLocalizedStringTransformationClaimType.
  3. Jedná se StringId o jedinečný identifikátor, který definujete, a použijete ho později v transformaci deklarací stringFormatIdidentity .
  4. V transformaci deklarací zadejte seznam deklarací identity, které se mají nastavit s lokalizovaným řetězcem. Pak nastavte stringFormatId na StringId lokalizovaný prvek řetězce.
  5. 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 řetězce 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu řetězec Deklarace identity, která funguje jako parametr formátu {0} řetězce.
VstupníParametr stringFormat řetězec Formát řetězce, včetně parametru {0} . Tento vstupní parametr podporuje výrazy transformace deklarací řetězců.
Výstupní deklarace Deklarace výstupu řetězec 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace inputClaim1 – Deklarace řetězec Deklarace identity, která funguje jako parametr formátu {0} řetězce.
Vstupní deklarace inputClaim2 – Deklarace nároku 2 řetězec Deklarace identity, která funguje jako parametr formátu {1} řetězce.
VstupníParametr stringFormat řetězec Formát řetězce, včetně parametrů{0}.{1} Tento vstupní parametr podporuje výrazy transformace deklarací řetězců.
Výstupní deklarace Deklarace výstupu řetězec 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) TransformaceClaimType Datový typ Poznámky
Výstupní deklarace Název lokalizovaného řetězce řetězec Seznam typů deklarací identity vytvořených po vyvolání této transformace deklarací identity

Použití transformace deklarací identity GetLocalizedStringsTransformation:

  1. Definujte lokalizační řetězec pro definici obsahu, například api.selfasserted.

  2. Prvek ElementTypeLocalizedString musí být nastaven na GetLocalizedStringsTransformationClaimType.

  3. Jedná se StringId o jedinečný identifikátor, který definujete, a použijete ho později v transformaci deklarací identity.

  4. 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á se TransformationClaimType o název lokalizovaného řetězce, jak je definováno v StringId elementu LocalizedString .

  5. V případě transformace deklarací identity nebo transformace deklarací identity v technickém profilu vytvořte odkaz na transformaci deklarací identity.

  6. Přidružte technický profil k definici obsahu, například api.selfasserted. Následující příklad ukazuje, jak přidružit api.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:

Diagram znázorňuje použití transformace deklarací deklarací identity lokalizovaných řetězců.

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

<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
    <OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
    <OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
    <OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
   </OutputClaims>
</ClaimsTransformation>
  • 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace mapFromClaim řetězec Deklarace identity obsahující text, který se má vyhledat v deklarací restrictionValueClaim s kolekcí Omezení .
Výstupní deklarace restrictionValueClaim řetězec 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace inputParameterId řetězec Deklarace identity, která obsahuje vyhledávací hodnotu
VstupníParametr řetězec Kolekce inputParameters.
VstupníParametr errorOnFailedLookup Boolean Řízení, zda je vrácena chyba, když žádné odpovídající vyhledávání.
Výstupní deklarace Deklarace výstupu řetězec Deklarace identity, která se vytvoří po vyvolání této transformace deklarací. Hodnota odpovídající Idhodnoty .

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

Diagram znázorňuje, jak používat transformaci deklarací deklarací identity vyhledávací hodnoty.

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) TransformaceClaimType Datový typ Poznámky
Výstupní deklarace claim_to_null řetězec 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace e-mailová adresa řetězec Deklarace identity, která obsahuje e-mailovou adresu.
Výstupní deklarace doména řetězec 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 truelogická 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace claimToMatch řetězec Typ deklarace identity, který se má zkontrolovat. Hodnota Null vyvolá výjimku.
VstupníParametr matchTo řetězec Hodnota, která se má porovnat se vstupní deklarací claimToMatch identity. Možné hodnoty: truenebo false.
VstupníParametr outputClaimIfMatched řetězec Hodnota, která se má nastavit, pokud se vstupní deklarace identity rovná vstupnímu parametru matchTo .
Výstupní deklarace Deklarace výstupu řetězec 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) TransformaceClaimType Datový typ Poznámky
Požadavek vstupu claimToMatch řetězec Typ deklarace identity, který se má porovnat.
VstupníParametr matchTo řetězec Regulární výraz, který se má shodovat.
VstupníParametr outputClaimIfMatched řetězec Hodnota, která se má nastavit, pokud jsou řetězce stejné.
VstupníParametr extractGroups Boolean [Volitelné] Určuje, jestli se má shoda regulárních výrazů extrahovat hodnoty skupin. Možné hodnoty: truenebo false (výchozí).
Výstupní deklarace Deklarace výstupu řetězec Pokud se regulární výraz shoduje, obsahuje tato výstupní deklarace identity hodnotu vstupního parametru outputClaimIfMatched . Nebo null, pokud žádná shoda.
Výstupní deklarace 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í.
Výstupní deklarace Název deklarace identity řetězec 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="(?&lt;mailAlias&gt;.*)@(.*)$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
    <InputParameter Id="extractGroups" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
    <OutputClaim ClaimTypeReferenceId="mailAlias" />
  </OutputClaims>
</ClaimsTransformation>
  • Vstupní deklarace identity:
    • claimToMatch: "emily@contoso.com"
  • Vstupní parametry:
    • matchTo: (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: "isEmail"
    • extractGroups: true
  • 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu řetězec Typ deklarace identity, který se má porovnat.
VstupníParametr matchTo řetězec Řetězec, který se má porovnat s inputClaim.
VstupníParametr stringComparison řetězec Možné hodnoty: Ordinal nebo OrdinalIgnoreCase.
VstupníParametr stringMatchMsg řetězec První hodnota, která se má nastavit, pokud jsou řetězce stejné.
VstupníParametr stringMatchMsgCode řetězec Druhá hodnota, která se má nastavit, pokud jsou řetězce stejné.
Výstupní deklarace outputClaim1 řetězec Pokud jsou řetězce stejné, tato výstupní deklarace identity obsahuje hodnotu vstupního parametru stringMatchMsg .
Výstupní deklarace outputClaim2 řetězec Pokud jsou řetězce stejné, tato výstupní deklarace identity obsahuje hodnotu vstupního parametru stringMatchMsgCode .
Výstupní deklarace 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace claimToMatch řetězec Typ deklarace identity, který se má porovnat.
VstupníParametr matchTo řetězec Řetězec, který se má porovnat se inputClaim.
VstupníParametr stringComparison řetězec Možné hodnoty: Ordinal nebo OrdinalIgnoreCase.
VstupníParametr outputClaimIfMatched řetězec Hodnota, která se má nastavit, pokud jsou řetězce stejné.
Výstupní deklarace Deklarace výstupu řetězec Pokud jsou řetězce stejné, tato výstupní deklarace identity obsahuje hodnotu vstupního parametru outputClaimIfMatched . Nebo null, pokud se řetězce neshodují.
Výstupní deklarace 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, falsejinak .

Podívejte se na živou ukázku této transformace deklarací identity.

Element (Prvek) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu řetězec Typ deklarace identity, který se má prohledávat.
VstupníParametr obsahuje řetězec Hodnota, kterou chcete vyhledat.
VstupníParametr ignorovat případ řetězec Určuje, jestli by toto porovnání mělo ignorovat velikost porovnávaného řetězce.
Výstupní deklarace Deklarace výstupu řetězec 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu řetězec Typ deklarace identity, který obsahuje řetězec.
VstupníParametr startIndex int (integer) Pozice počátečního znaku založeného na nule podřetězdce v této instanci.
VstupníParametr délka int (integer) Počet znaků v podřetědci.
Výstupní deklarace Deklarace výstupu řetězec Ř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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu řetězec Typ deklarace identity, který obsahuje řetězec.
VstupníParametr oldValue řetězec Řetězec, který se má prohledávat.
VstupníParametr newValue řetězec Řetězec, který má nahradit všechny výskyty oldValue
Výstupní deklarace Deklarace výstupu 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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu Kolekce řetězců Kolekce obsahující řetězce ke zřetězení.
VstupníParametr oddělovač řetězec Řetězec, který se má použít jako oddělovač, například čárka ,.
Výstupní deklarace Deklarace výstupu řetězec Ř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" ]
  • Vstupní parametry:
    • oddělovač: ","
  • Výstupní deklarace identity:
    • outputClaim: "Admin,Author,Reader"

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) TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu řetězec Typ deklarace identity řetězce, který obsahuje podřetězce, které se mají rozdělit.
VstupníParametr oddělovač řetězec Řetězec, který se má použít jako oddělovač, například čárka ,.
Výstupní deklarace Deklarace výstupu Kolekce řetězců 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
  • Vstupní parametry:
    • oddělovač: ","
  • Výstupní deklarace identity:
    • outputClaim: [ "Admin", "Author", "Reader" ]

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.

Výraz 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.