Condividi tramite


Trasformazioni di attestazioni di stringa

Questo articolo contiene esempi per l'uso delle trasformazioni di attestazioni di stringa dello schema Identity Experience Framework in Azure Active Directory B2C (Azure AD B2C). Per altre informazioni, vedere Trasformazioni delle attestazioni.

AssertStringClaimsAreEqual

Confronta due attestazioni e genera un'eccezione se non sono uguali in base all'input di confronto specificatoClaim1, inputClaim2 e stringComparison.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim1 string Tipo della prima attestazione di cui eseguire il confronto.
InputClaim inputClaim2 string Tipo della seconda attestazione di cui eseguire il confronto.
InputParameter stringComparison string Confronto tra le stringhe con valori Ordinal e OrdinalIgnoreCase.

La trasformazione delle attestazioni AssertStringClaimsAreEqual viene sempre eseguita da un profilo tecnico di convalida chiamato da un profilo tecnico autocertificato o da un displayControl. I metadati UserMessageIfClaimsTransformationStringsAreNotEqual di un profilo tecnico autocertificato controllano il messaggio di errore visualizzato all'utente. I messaggi di errore possono essere localizzati.

Il diagramma mostra come usare le attestazioni di stringa assert sono trasformazioni di attestazioni uguali.

Esempio di AssertStringClaimsAreEqual

È possibile usare questa trasformazione delle attestazioni per assicurarsi che due attestazioni abbiano lo stesso valore. In caso contrario, viene generato un messaggio di errore. L'esempio seguente verifica che l'attestazione strongAuthenticationEmailAddress sia uguale all'attestazione di posta elettronica . In caso contrario, viene generato un messaggio di errore.

<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>
  • Attestazioni di input:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • Parametri di input:
    • stringComparison: ordinalIgnoreCase
  • Risultato: errore generato

Chiamata alla trasformazione delle attestazioni AssertStringClaimsAreEqual

Il profilo tecnico di convalida login-NonInteractive chiama la trasformazione di attestazioni AssertEmailAndStrongAuthenticationEmailAddressAreEqual.

<TechnicalProfile Id="login-NonInteractive">
  ...
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
  </OutputClaimsTransformations>
</TechnicalProfile>

Il profilo tecnico autocertificato chiama il profilo tecnico login-NonInteractive di convalida.

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
  </Metadata>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

BuildUri

Crea un'ora in base all'URI della password temporale (TOTP). L'URI è una combinazione dell'identificatore univoco dell'utente, ad esempio l'indirizzo di posta elettronica e una chiave privata. L'URI viene successivamente convertito in un codice a matrice presentato all'utente. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim path string Identificatore univoco dell'utente, ad esempio indirizzo di posta elettronica, nome utente o numero di telefono.
InputClaim query.secret string Chiave privata TOTP.
InputParameter scheme string Parte dello schema dell'URI. Ad esempio: otpauth.
InputParameter host string Parte dello schema dell'URI. Ad esempio: totp.
InputParameter query.issuer string Parte dell'autorità emittente dell'URI. Ad esempio: {AuthenticatorIssuer}.
OutputClaim outputClaim string Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni.

Esempio di BuildUri

La trasformazione delle attestazioni seguente genera un URI TOTP che verrà visualizzato nel codice a matrice o nel collegamento diretto.

<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>
  • Attestazioni di input:
    • percorso: emily@fabrikam.com
    • query.secret: fay2lj7ynpntjgqa
  • Parametri di input:
    • schema: otpauth
    • host: totp
    • query.issuer: {AuthenticatorIssuer}
  • Attestazioni di output:
    • outputClaim: otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

ChangeCase

Modifica le maiuscole/minuscole dell'attestazione specificata a seconda dell'operatore. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim1 string Attestazione da modificare.
InputParameter toCase string Uno dei valori seguenti: LOWER o UPPER.
OutputClaim outputClaim string Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni.

Esempio di ChangeCase

La trasformazione dell'attestazione seguente modifica l'attestazione di posta elettronica in lettere minuscole.

<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>
  • Attestazioni di input:
    • email: SomeOne@contoso.com
  • Parametri di input:
    • toCase: LOWER
  • Attestazioni di output:
    • email: someone@contoso.com

CompareClaims

Determina se un'attestazione stringa è uguale a un'altra. Il risultato è una nuova attestazione booleana con valore o true false. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim1 string Tipo della prima attestazione di cui eseguire il confronto.
InputClaim inputClaim2 string Tipo della seconda attestazione di cui eseguire il confronto.
InputParameter Operatore string I valori possibili sono: EQUAL o NOT EQUAL.
InputParameter ignoreCase string Specifica se il confronto deve ignorare l'uso di maiuscole e minuscole nelle stringhe da confrontare.
OutputClaim outputClaim boolean Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni.

Esempio di CompareClaims

Usare questa trasformazione di attestazioni per verificare se un'attestazione è uguale a un'altra. La trasformazione delle attestazioni seguente controlla se il valore dell'attestazione di posta elettronica è identico all'attestazione Verified.Email .

<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Attestazioni di input:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • Parametri di input:
    • operator: NOT EQUAL
    • ignoreCase: true
  • Attestazioni di output:
    • outputClaim: true

CompareClaimToValue

Determina se un valore di attestazione è uguale al valore del parametro di input. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim1 string Tipo della prima attestazione di cui eseguire il confronto.
InputParameter Operatore string I valori possibili sono: EQUAL o NOT EQUAL.
InputParameter compareTo string Confronto tra stringhe, uno dei valori, ovvero la stringa a cui devono essere confrontati i valori dell'attestazione di input: Ordinal, OrdinalIgnoreCase.
InputParameter ignoreCase string Specifica se il confronto deve ignorare l'uso di maiuscole e minuscole nelle stringhe da confrontare.
OutputClaim outputClaim boolean Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni.

Esempio di CompareClaimToValue

Usare questa trasformazione delle attestazioni per verificare se un'attestazione è uguale a un valore specificato. La trasformazione di attestazioni seguente, ad esempio, controlla se il valore dell'attestazione termsOfUseConsentVersion è uguale a 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>
  • Attestazioni di input:
    • inputClaim1: v1
  • Parametri di input:
    • compareTo: V2
    • operator: NOT EQUAL
    • ignoreCase: true
  • Attestazioni di output:
    • outputClaim: true

CopyClaimIfPredicateMatch

Copia il valore di un'attestazione in un'altra se il valore dell'attestazione di input corrisponde al predicato dell'attestazione di output. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim string Tipo di attestazione da copiare.
OutputClaim outputClaim string Tipo di attestazione generato dopo la chiamata di questa trasformazione delle attestazioni. Il valore dell'attestazione di input viene controllato rispetto a questo predicato di attestazione.

Esempio di CopyClaimIfPredicateMatch

L'esempio seguente tenta di copiare il valore dell'attestazione signInName nell'attestazione phoneNumber. In questo esempio il valore non verrà copiato. L'attestazione signInName non è nel formato previsto, numero di telefono. Per l'esempio completo, vedere Numero di telefono o criteri di starter pack di accesso tramite posta elettronica.

<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Attestazioni di input:
    • inputClaim: bob@contoso.com
  • Attestazioni di output:
    • outputClaim: l'attestazione di output non verrà modificata rispetto al valore originale.

Esempio di CopyClaimIfPredicateMatch che rappresenta molto il predicato

In questo esempio la trasformazione delle attestazioni copia il valore. L'attestazione signInName è nel formato corretto, numero di telefono.

  • Attestazioni di input:
    • inputClaim: +11234567890
  • Attestazioni di output:
    • outputClaim: +11234567890

CreateOtpSecret

Crea un'attestazione di stringa TOTP. L'output di questa trasformazione delle attestazioni è un segreto TOTP archiviato in un secondo momento nell'account utente di Azure AD B2C e condiviso con l'app Microsoft Authenticator. L'app di autenticazione usa la chiave per generare codici TOTP quando l'utente deve passare tramite MFA. Il criterio usa la chiave per convalidare il codice TOTP fornito dall'utente.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
OutputClaim outputClaim string Attestazione generata dopo che questa trasformazione delle attestazioni è stata richiamata, con il codice TOTP generato.

Esempio di CreateOtpSecret

La trasformazione delle attestazioni seguente crea un segreto per l'autenticatore a più fattori TOTP.

<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Attestazioni di output:
    • outputClaim: hmlcmd4ph6fph64c

CreateRandomString

Crea una stringa casuale tramite il generatore di numeri casuali. Se il generatore di numeri casuali è di tipo integer, possono essere specificati un valore di inizializzazione e un numero massimo. Un parametro di formato di stringa facoltativo consente la formattazione dell'output e un parametro base64 facoltativo specifica se l'output è un elemento randomGeneratorType [guid, integer] o un elemento outputClaim (String) codificato in formato base64.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputParameter randomGeneratorType string Specifica il valore casuale da generare GUID (ID univoco globale) o INTEGER (numero).
InputParameter stringFormat string [Facoltativo] Formatta il valore casuale.
InputParameter base64 boolean [Facoltativo] Converte il valore casuale in base 64. Se si applica il formato della stringa, il valore successivo è codificato in formato base64.
InputParameter maximumNumber int [Facoltativo] Solo per elementi randomGeneratorType di tipo INTEGER. Specificare il numero massimo.
InputParameter seed int [Facoltativo] Solo per elementi randomGeneratorType di tipo INTEGER. Specifica il valore di inizializzazione per il valore casuale. Nota: uno stesso valore di inizializzazione genera la stessa sequenza di numeri casuali.
OutputClaim outputClaim string Attestazioni che verranno generate dopo la chiamata di questa trasformazione delle attestazioni. Valore casuale.

Esempio di CreateRandomString

L'esempio seguente genera un ID univoco globale. Questa trasformazione di attestazioni viene usata per creare un nome UPN casuale (nome dell'entità utente).

<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Parametri di input:
    • randomGeneratorType: GUID
  • Attestazioni di output:
    • outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc

Esempio di CreateRandomString per creare un valore numerico

L'esempio seguente genera un valore intero casuale compreso tra 0 e 1000. Il valore viene formattato su OTP_{valore casuale}.

<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>
  • Parametri di input:
    • randomGeneratorType: INTEGER
    • maximumNumber: 1000
    • stringFormat: OTP_{0}
    • base64: false
  • Attestazioni di output:
    • outputClaim: OTP_853

CreateStringClaim

Crea un'attestazione di stringa dal parametro di input specificato nella trasformazione. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputParameter value string Stringa da impostare. Il parametro di input supporta espressioni di trasformazione di attestazioni di stringa.
OutputClaim createdClaim string Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni, con il valore specificato nel parametro di input.

Esempio di CreateStringClaim

La trasformazione delle attestazioni seguente crea un valore stringa con termini di servizio.

<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>
  • Parametro di input:
    • value: Condizioni d'uso di Contoso...
  • Attestazioni di output:
    • createdClaim: l'attestazione TOS contiene le condizioni per il servizio Contoso..." valore.

FormatLocalizedString

Formatta più attestazioni in base a una stringa di formato localizzata specificata. Questa trasformazione usa il metodo C# String.Format. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaims string Raccolta di attestazioni di input che funge da formato {0}stringa , {1}parametri {2} .
InputParameter stringFormatId string Oggetto StringId di una stringa localizzata.
OutputClaim outputClaim string Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni.

Nota

Non esiste alcun limite al numero di attestazioni di input che è possibile specificare, ma la lunghezza massima della stringa formattata è 4000.

Per usare la trasformazione delle attestazioni FormatLocalizedString:

  1. Definire una stringa di localizzazione e associarla a un profilo tecnico autocertificato.
  2. L'oggetto ElementType dell'elemento LocalizedString deve essere impostato su FormatLocalizedStringTransformationClaimType.
  3. StringId è un identificatore univoco definito dall'utente e usarlo più avanti nella trasformazione stringFormatIddelle attestazioni .
  4. Nella trasformazione di attestazioni specificare l'elenco di attestazioni da impostare con la stringa localizzata. Impostare quindi su stringFormatId dell'elemento StringId stringa localizzato.
  5. In una trasformazione di attestazioni di input o di output di un profilo tecnico autocertificato o di un controllo di visualizzazione, creare un riferimento alla trasformazione di attestazioni.

Esempio di FormatLocalizedString

Nell'esempio seguente viene generato un messaggio di errore quando un account è già presente nella directory . Nell'esempio vengono definite stringhe localizzate per l'inglese (impostazione predefinita) e lo spagnolo.

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

La trasformazione delle attestazioni crea un messaggio di risposta basato sulla stringa localizzata. Il messaggio contiene l'indirizzo di posta elettronica dell'utente incorporato nel ResponseMessge_EmailExists di sting localizzato.

<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>
  • Attestazioni di input:
    • inputClaim: sarah@contoso.com
  • Parametri di input:
    • stringFormat: ResponseMessge_EmailExists
  • Attestazioni di output:
    • outputClaim: il messaggio di posta elettronica 'sarah@contoso.com' è già un account in questa organizzazione. Selezionare Avanti per accedere con tale account.

FormatStringClaim

Formatta un'attestazione in base alla stringa di formato specificata. Questa trasformazione usa il metodo C# String.Format. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim string Attestazione che funge da parametro di formato {0} stringa.
InputParameter stringFormat string Formato stringa, incluso il {0} parametro . Il parametro di input supporta espressioni di trasformazione di attestazioni di stringa.
OutputClaim outputClaim string Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni.

Nota

La dimensione massima consentita del formato stringa è 4000.

Esempio di FormatStringClaim

Usare questa trasformazione di attestazioni per formattare qualsiasi stringa con un parametro {0}. L'esempio seguente crea un elemento userPrincipalName. Tutti i profili tecnici di provider di identità social, ad esempio Facebook-OAUTH, chiamano CreateUserPrincipalName per generare un elemento 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>
  • Attestazioni di input:
    • inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
  • Parametri di input:
    • stringFormat: cpim_{0}@{RelyingPartyTenantId}
  • Attestazioni di output:
    • outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com

FormatStringMultipleClaims

Formatta due attestazioni in base alla stringa di formato specificata. Questa trasformazione usa il metodo C# String.Format. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim1 string Attestazione che funge da parametro di formato {0} stringa.
InputClaim inputClaim2 string Attestazione che funge da parametro di formato {1} stringa.
InputParameter stringFormat string Formato della stringa, ad esempio i parametri {0} e {1}. Il parametro di input supporta espressioni di trasformazione di attestazioni di stringa.
OutputClaim outputClaim string Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni.

Nota

La dimensione massima consentita del formato stringa è 4000.

Esempio di FormatStringMultipleClaims

Usare questa trasformazione di attestazioni per formattare qualsiasi stringa con due parametri, {0} e {1}. L'esempio seguente crea un elemento displayName con il formato specificato:

<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>
  • Attestazioni di input:
    • inputClaim1: Joe
    • inputClaim2: Fernando
  • Parametri di input:
    • stringFormat: {0}{1}
  • Attestazioni di output:
    • outputClaim: Joe Fernando

GetLocalizedStringsTransformation

Copia le stringhe localizzate in attestazioni. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
OutputClaim Nome della stringa localizzata. string Elenco dei tipi di attestazione generati dopo la chiamata della trasformazione di attestazioni.

Per usare la trasformazione di attestazioni GetLocalizedStringsTransformation:

  1. Definire una stringa di localizzazione per la definizione del contenuto, ad esempio api.selfasserted.

  2. L'oggetto ElementType dell'elemento LocalizedString deve essere impostato su GetLocalizedStringsTransformationClaimType.

  3. StringId è un identificatore univoco che viene definito e usato in un secondo momento nella trasformazione di attestazioni.

  4. Nella trasformazione di attestazioni specificare l'elenco di attestazioni da impostare con la stringa localizzata. ClaimTypeReferenceId è un riferimento a un'attestazione già definita nella sezione ClaimsSchema nei criteri. TransformationClaimType è il nome della striga localizzata come definito in StringId dell'elemento LocalizedString.

  5. Nella trasformazione delle attestazioni tecniche di un profilo tecnico di trasformazione delle attestazioni autocertificata o autocertificata, creare un riferimento alla trasformazione delle attestazioni.

  6. Associare il profilo tecnico alla definizione del contenuto, ad esempio api.selfasserted. Nell'esempio seguente viene illustrato come associare un profilo tecnico alla definizione del api.selfasserted contenuto.

    <Metadata>
      <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    </Metadata>
    

Il diagramma seguente illustra come configurare la trasformazione delle attestazioni con gli elementi di localizzazione:

Diagramma che mostra come usare la trasformazione delle attestazioni delle stringhe localizzate get.

Esempio di GetLocalizedStringsTransformation

Nell'esempio seguente vengono cercati l'oggetto, il corpo, il messaggio di codice e la firma del messaggio e-mail dalle stringhe localizzate. Le attestazioni usate successivamente dal modello di verifica della posta elettronica personalizzato.

Definire le stringhe localizzate per la lingua inglese (impostazione predefinita) e per lo spagnolo.

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

La trasformazione di attestazioni imposta il valore del tipo di attestazione subject sul valore email_subject di StringId.

<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>
  • Attestazioni di output:
    • subject: Codice di verifica della posta elettronica dell'account Contoso
    • messaggio: Grazie per aver verificato il tuo account!
    • codeIntro: il codice è
    • firma: Sinceramente

GetMappedValueFromLocalizedCollection

Esegue il mapping di un elemento dalla raccolta Di restrizioni dell'attestazione di input. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim mapFromClaim string Attestazione che contiene il testo in cui eseguire la ricerca nelle attestazioni restrictionValueClaim con la raccolta Restriction.
OutputClaim restrictionValueClaim string Attestazione che contiene la raccolta Restriction. Dopo che la trasformazione di attestazioni è stata richiamata, il valore di questa attestazione contiene il valore dell'elemento selezionato.

Esempio di GetMappedValueFromLocalizedCollection

L'esempio seguente cerca la descrizione del messaggio di errore in base alla chiave di errore. L'attestazione responseMsg contiene una raccolta di messaggi di errori da presentare all'utente finale o da inviare alla relying party.

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

La trasformazione di attestazioni esegue la ricerca del testo dell'elemento e ne restituisce il valore. Se la restrizione è localizzata usando <LocalizedCollection>, la trasformazione di attestazioni restituisce il valore localizzato.

<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />        
  </OutputClaims>
</ClaimsTransformation>
  • Attestazioni di input:
    • mapFromClaim: B2C_V1_90001
  • Attestazioni di output:
    • restrictionValueClaim: non è possibile accedere perché si è un minore.

LookupValue

Cerca un valore attestazione da un elenco di valori in base al valore di un'altra attestazione. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputParameterId string Attestazione che contiene il valore di ricerca
InputParameter string Raccolta di elementi inputParameters.
InputParameter errorOnFailedLookup boolean Controlla se viene restituito un errore quando non esiste alcuna ricerca corrispondente.
OutputClaim outputClaim string Attestazione che verrà generata dopo la chiamata di questa trasformazione delle attestazioni. Valore dell'ID corrispondente Id.

Esempio di LookupValue

L'esempio seguente cerca il nome di dominio in una delle raccolte inpuParameters. La trasformazione delle attestazioni esegue la ricerca del nome di dominio nell'identificatore e ne restituisce il valore (ID applicazione).

 <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>
  • Attestazioni di input:
    • inputParameterId: test.com
  • Parametri di input:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: false
  • Attestazioni di output:
    • outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9

Esempio di LookupValue con errore

Quando il parametro di input errorOnFailedLookup è impostato su true, la trasformazione di attestazioni LookupValue viene sempre eseguita da un profilo tecnico di convalida chiamato da un profilo tecnico autocertificato o da un controllo di visualizzazione. I metadati LookupNotFound di un profilo tecnico autocertificato controllano il messaggio di errore visualizzato all'utente.

Diagramma che mostra come usare la trasformazione delle attestazioni di valore di ricerca.

L'esempio seguente cerca il nome di dominio in una delle raccolte inpuParameters. La trasformazione di attestazioni esegue la ricerca del nome di dominio nell'identificatore e ne restituisce il valore (ID applicazione) oppure genera un messaggio di errore.

 <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>
  • Attestazioni di input:
    • inputParameterId: live.com
  • Parametri di input:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: true
  • Errore:
    • Nessuna corrispondenza trovata per il valore dell'attestazione di input nell'elenco di ID parametro di input e errorOnFailedLookup è true.

NullClaim

Pulisce il valore di una determinata attestazione. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
OutputClaim claim_to_null string Il valore dell'attestazione è impostato su NULL.

Esempio di NullClaim

Usare questa trasformazione di attestazione per rimuovere i dati non necessari dal contenitore delle proprietà delle attestazioni, in modo che il cookie di sessione sia minore. L'esempio seguente rimuove il valore del tipo di attestazione TermsOfService.

<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
  <OutputClaims>
  <OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
  </OutputClaims>
</ClaimsTransformation>
  • Attestazioni di input:
    • outputClaim: Benvenuto nell'app Contoso. Se si continua a esplorare e utilizzare questo sito Web, si accetta di rispettare e essere vincolati dai termini e condizioni seguenti...
  • Attestazioni di output:
    • outputClaim: NULL

ParseDomain

Ottiene la parte di dominio di un indirizzo di posta elettronica. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim emailAddress string Attestazione che contiene l'indirizzo di posta elettronica.
OutputClaim dominio string Attestazione generata dopo che questa trasformazione delle attestazioni è stata richiamata, ovvero il dominio.

Esempio di ParseDomain

Usare questa trasformazione di attestazioni per analizzare il nome di dominio dopo il simbolo @ dell'utente. La trasformazione di attestazioni seguenti dimostra come analizzare il nome di dominio da un'attestazione email.

<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
  </OutputClaims>
</ClaimsTransformation>
  • Attestazioni di input:
    • emailAddress: joe@outlook.com
  • Attestazioni di output:
    • domain: outlook.com

SetClaimIfBooleansMatch

Verifica che un'attestazione booleana sia trueo false. In caso affermativo, imposta le attestazioni di output con il valore presente nel outputClaimIfMatched parametro di input. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim claimToMatch string Tipo di attestazione da controllare. I valori Null generano un'eccezione.
InputParameter matchTo string Valore da confrontare con l'attestazione claimToMatch di input. Valori possibili: trueo false.
InputParameter outputClaimIfMatched string Valore da impostare se l'attestazione di input è uguale al matchTo parametro di input.
OutputClaim outputClaim string Se l'attestazione claimToMatch di input è uguale al matchTo parametro di input, questa attestazione di output contiene il valore del parametro di outputClaimIfMatched input.

Esempio di SetClaimIfBooleansMatch

Ad esempio, la trasformazione delle attestazioni seguente controlla se il valore dell'attestazione hasPromotionCode è uguale a true. In caso affermativo, restituire il valore al codice promozionale non trovato.

<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>
  • Attestazioni di input:
    • claimToMatch: true
  • Parametri di input:
    • matchTo: true
    • outputClaimIfMatched: "Codice promozionale non trovato".
  • Attestazioni di output:
    • outputClaim: "Codice promozionale non trovato".

SetClaimsIfRegexMatch

Verifica che un'attestazione di stringa e il parametro di input claimToMatch siano uguali e imposta le attestazioni di output con il valore presente nel parametro di input matchTo, insieme all'attestazione di output del risultato di confronto che deve essere impostato come outputClaimIfMatchedtrueorfalsein base al risultato del confronto.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
inputClaim claimToMatch string Tipo dell'attestazione di cui eseguire il confronto.
InputParameter matchTo string Espressione regolare in base a cui trovare una corrispondenza.
InputParameter outputClaimIfMatched string Valore da impostare se le stringhe sono uguali.
InputParameter extractGroups boolean [Facoltativo] Specifica se la corrispondenza regex deve estrarre i valori dei gruppi. Valori possibili: true o false (impostazione predefinita).
OutputClaim outputClaim string Se l'espressione regolare corrisponde, l'attestazione di output contiene il valore del parametro di input outputClaimIfMatched. Se non è presente alcuna corrispondenza, il valore è Null.
OutputClaim regexCompareResultClaim boolean Tipo di attestazione di output del risultato della corrispondenza di espressione regolare, che deve essere impostato come true o false in base al risultato della corrispondenza.
OutputClaim Nome dell'attestazione string Se il parametro di input extractGroups è impostato su true, viene richiamato l'elenco dei tipi di attestazione generati dopo la trasformazione di attestazioni. Il nome dell'attestazione deve corrispondere al nome del gruppo Regex.

Esempio di SetClaimsIfRegexMatch

Verifica se il numero di telefono indicato è valido, in base al modello di espressione regolare del numero di telefono.

<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>
  • Attestazioni di input:
    • claimToMatch: "64854114520"
  • Parametri di input:
    • matchTo: "^[0-9]{4,16}$"
    • outputClaimIfMatched: "Phone"
  • Attestazioni di output:
    • outputClaim: "iPhone"
    • regexCompareResultClaim: true

Esempio di SetClaimsIfRegexMatch con gruppi di estrazione

Verifica se l'indirizzo e-mail specificato è valido e restituisce l'alias di posta elettronica. Vedere la demo live di questa trasformazione delle attestazioni con i gruppi di estrazione.

<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>
  • Attestazioni di input:
    • claimToMatch: "emily@contoso.com"
  • Parametri di input:
    • matchTo: (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: "isEmail"
    • extractGroups: true
  • Attestazioni di output:
    • outputClaim: "isEmail"
    • regexCompareResultClaim: true
    • mailAlias: emily

SetClaimsIfStringsAreEqual

Verifica che un'attestazione di stringa e il parametro di input matchTo siano uguali e imposta le attestazioni di output con il valore presente nei parametri di input stringMatchMsg e stringMatchMsgCode, insieme all'attestazione di output del risultato di confronto che deve essere impostato come true o false in base al risultato del confronto.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim string Tipo dell'attestazione di cui eseguire il confronto.
InputParameter matchTo string Stringa da confrontare con inputClaim.
InputParameter stringComparison string I valori possibili sono: Ordinal o OrdinalIgnoreCase.
InputParameter stringMatchMsg string Primo valore da impostare se le stringhe sono uguali.
InputParameter stringMatchMsgCode string Secondo valore da impostare se le stringhe sono uguali.
OutputClaim outputClaim1 string Se le stringhe sono uguali, l'attestazione di output contiene il valore del parametro di output stringMatchMsg.
OutputClaim outputClaim2 string Se le stringhe sono uguali, l'attestazione di output contiene il valore del parametro di output stringMatchMsgCode.
OutputClaim stringCompareResultClaim boolean Tipo dell'attestazione di output del risultato del confronto che deve essere impostato come true o false in base al risultato del confronto.

Esempio di SetClaimsIfStringsAreEqual

È possibile usare questa trasformazione di attestazioni per controllare se un'attestazione è uguale a un valore specificato. La trasformazione di attestazioni seguente, ad esempio, controlla se il valore dell'attestazione termsOfUseConsentVersion è uguale a v1. In caso affermativo, impostare il valore su 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>
  • Attestazioni di input:
    • inputClaim: v1
  • Parametri di input:
    • matchTo: V1
    • stringComparison: ordinalIgnoreCase
    • stringMatchMsgCode: B2C_V1_90005
    • stringMatchMsg: il tos viene aggiornato alla versione 2
  • Attestazioni di output:
    • outputClaim1: B2C_V1_90005
    • outputClaim2: Le condizioni d'uso sono aggiornate alla versione 2
    • stringCompareResultClaim: true

SetClaimsIfStringsMatch

Verifica che un'attestazione di stringa e il parametro di input matchTo siano uguali e imposta le attestazioni di output con il valore presente nel parametro di input outputClaimIfMatched, insieme all'attestazione di output del risultato di confronto che deve essere impostato come true or false in base al risultato del confronto.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim claimToMatch string Tipo dell'attestazione di cui eseguire il confronto.
InputParameter matchTo string Stringa da confrontare con inputClaim.
InputParameter stringComparison string I valori possibili sono: Ordinal o OrdinalIgnoreCase.
InputParameter outputClaimIfMatched string Valore da impostare se le stringhe sono uguali.
OutputClaim outputClaim string Se le stringhe sono uguali, l'attestazione di output contiene il valore del parametro di output outputClaimIfMatched. Se le stringhe non corrispondono, il valore contenuto è null.
OutputClaim stringCompareResultClaim boolean Tipo dell'attestazione di output del risultato del confronto che deve essere impostato come true o false in base al risultato del confronto.

Esempio di SetClaimsIfStringsMatch

La trasformazione di attestazioni seguente, ad esempio, controlla se il valore dell'attestazione ageGroup è uguale a Minor. In caso affermativo, restituisce il valore a 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>
  • Attestazioni di input:
    • claimToMatch: Minor
  • Parametri di input:
    • matchTo: Minor
    • stringComparison: ordinalIgnoreCase
    • outputClaimIfMatched: B2C_V1_90001
  • Attestazioni di output:
    • isMinorResponseCode: true
    • isMinor: B2C_V1_90001

StringContains

Determina se una sottostringa specificata si verifica all'interno dell'attestazione di input. Il risultato è una nuova attestazione booleana con valore o true false. true se il parametro del valore si trova all'interno di questa stringa; in caso contrario false.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim string Tipo di attestazione in cui eseguire la ricerca.
InputParameter contains string Valore da cercare.
InputParameter ignoreCase string Specifica se il confronto deve ignorare l'uso di maiuscole e minuscole nelle stringhe da confrontare.
OutputClaim outputClaim string Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni. Indicatore booleano se la substring si trova all'interno dell'attestazione di input.

Esempio di StringContains

Usare questa trasformazione di attestazioni per verificare se un tipo di attestazione di stringa contiene una substring. Nell'esempio seguente viene verificato se il tipo di attestazione di stringa roles contiene il valore admin.

<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>
  • Attestazioni di input:
    • inputClaim: "Admin, Approver, Editor"
  • Parametri di input:
    • contains: "admin,"
    • ignoreCase: true
  • Attestazioni di output:
    • outputClaim: true

StringSubstring

Estrae parti di un tipo di attestazione di stringa, a partire dal carattere in corrispondenza della posizione specificata, e restituisce il numero di caratteri specificato. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim string Tipo di attestazione che contiene la stringa.
InputParameter startIndex int Posizione iniziale in base zero del carattere di una substring in questa istanza.
InputParameter length int Numero di caratteri nella substring.
OutputClaim outputClaim string Stringa equivalente alla substring di lunghezza a partire dalla startIndex in questa istanza oppure Empty se startIndex è uguale alla lunghezza di questa istanza e la lunghezza è zero.

Esempio di StringSubstring

Ottenere ad esempio il prefisso del paese/area geografica del numero di telefono.

<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>
  • Attestazioni di input:
    • inputClaim: "+1644114520"
  • Parametri di input:
    • startIndex: 0
    • lunghezza: 2
  • Attestazioni di output:
    • outputClaim: "+1"

StringReplace

Cerca un valore specificato in una stringa del tipo di attestazione e restituisce una nuova stringa del tipo di attestazione in cui tutte le occorrenze di una stringa specificata in quella corrente vengono sostituite con un'altra stringa specificata.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim string Tipo di attestazione che contiene la stringa.
InputParameter oldValue string Stringa da cercare
InputParameter newValue string Stringa con cui sostituire tutte le occorrenze di oldValue
OutputClaim outputClaim boolean Stringa equivalente alla stringa corrente, ad eccezione del fatto che tutte le istanze di oldValue vengono sostituite con newValue. Se oldValue non viene trovato nell'istanza corrente, il metodo restituisce l'istanza corrente invariata.

Esempio di StringReplace

Normalizzare ad esempio un numero di telefono rimuovendo i caratteri -

<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>
  • Attestazioni di input:
    • inputClaim: "+164-411-452-054"
  • Parametri di input:
    • oldValue: "-"
    • newValue: ""
  • Attestazioni di output:
    • outputClaim: "+164411452054"

StringJoin

Concatena gli elementi di un tipo di attestazione della raccolta di stringhe specificato usando il separatore specificato tra ogni elemento o membro.

Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim stringCollection Raccolta che contiene le stringhe da concatenare.
InputParameter delimiter string Stringa da utilizzare come separatore, ad esempio virgola ,.
OutputClaim outputClaim string Stringa costituita dai membri della raccolta di stringhe inputClaim, delimitata dal parametro di input delimiter.

Esempio di StringJoin

L'esempio seguente accetta una raccolta di stringhe di ruoli utente e la converte in una stringa con delimitatore virgola. È possibile usare questo metodo per archiviare una raccolta di stringhe in un account utente di Azure AD B2C. In seguito, quando l'account viene letto dalla directory, usare StringSplit per convertire nuovamente la stringa con delimitatore virgola nella raccolta di stringhe.

<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>
  • Attestazioni di input:
    • inputClaim: [ "Admin", "Author", "Reader" ]
  • Parametri di input:
    • delimiter: ","
  • Attestazioni di output:
    • outputClaim: "Admin,Author,Reader"

StringSplit

Restituisce una matrice di stringhe contenente le sottostringhe di questa stringa delimitate dagli elementi di una stringa specificata. Vedere la demo live di questa trasformazione delle attestazioni.

Elemento TransformationClaimType Tipo di dati Note
InputClaim inputClaim string Tipo di attestazione di stringa che contiene le sottostringhe da dividere.
InputParameter delimiter string Stringa da utilizzare come separatore, ad esempio virgola ,.
OutputClaim outputClaim stringCollection Raccolta di stringhe i cui elementi contengono le sottostringhe in questa stringa delimitate dal parametro di input delimiter.

Nota

Tutti gli elementi esistenti in OutputClaim stringCollection verranno rimossi.

Esempio di StringSplit

L'esempio seguente accetta una stringa di ruoli utente con delimitatore virgola e la converte in una raccolta di stringhe.

<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>
  • Attestazioni di input:
    • inputClaim: Admin,Author,Reader
  • Parametri di input:
    • delimiter: ","
  • Attestazioni di output:
    • outputClaim: [ "Admin", "Author", "Reader" ]

Espressioni di trasformazioni di attestazioni di stringa

Le espressioni di trasformazioni di attestazioni nei criteri personalizzati di Azure AD B2C forniscono informazioni di contesto sull'ID tenant e sull'ID profilo tecnico.

Expression Descrizione Esempio
{TechnicalProfileId} Nome profileId tecnico. Facebook-OAUTH
{RelyingPartyTenantId} ID del tenant dei criteri della relying party. your-tenant.onmicrosoft.com
{TrustFrameworkTenantId} ID del tenant del framework attendibilità. your-tenant.onmicrosoft.com

Passaggi successivi