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.

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

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}
  • 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) 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: Řadový, OrdinalIgnoreCase.
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 Telefon čí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

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 Osiva 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..." Hodnotu.

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:

  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="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
      </LocalizedStrings>
    </LocalizedResources>
  <LocalizedResources Id="api.localaccountsignup.es">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

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

<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Vstupní deklarace identity:
    • inputClaim: sarah@contoso.com
  • Vstupní parametry:
    • stringFormat: ResponseMessge_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:

  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 shows how to use the get localized strings claims transformation.

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

Mapy prvek ze vstupní deklarace identity Kolekce omezení 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í 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 shows how to use the lookup value claims transformation.

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 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) 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: truenebo 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: truenebo 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: "Telefon"
  • Výstupní deklarace identity:
    • outputClaim: "i Telefon"
    • 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) 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, falsejinak .

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: "Správa, Schvalovatel, 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" ]
  • 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) 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
  • 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.

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.