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.
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}
- schema:
- Attestazioni di output:
- outputClaim:
otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
- outputClaim:
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
- outputClaim:
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:
- Definire una stringa di localizzazione e associarla a un profilo tecnico autocertificato.
- L'oggetto
ElementType
dell'elementoLocalizedString
deve essere impostato suFormatLocalizedStringTransformationClaimType
. StringId
è un identificatore univoco definito dall'utente e usarlo più avanti nella trasformazionestringFormatId
delle attestazioni .- Nella trasformazione di attestazioni specificare l'elenco di attestazioni da impostare con la stringa localizzata. Impostare quindi su
stringFormatId
dell'elementoStringId
stringa localizzato. - 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:
Definire una stringa di localizzazione per la definizione del contenuto, ad esempio
api.selfasserted
.L'oggetto
ElementType
dell'elementoLocalizedString
deve essere impostato suGetLocalizedStringsTransformationClaimType
.StringId
è un identificatore univoco che viene definito e usato in un secondo momento nella trasformazione di attestazioni.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 inStringId
dell'elementoLocalizedString
.Nella trasformazione delle attestazioni tecniche di un profilo tecnico di trasformazione delle attestazioni autocertificata o autocertificata, creare un riferimento alla trasformazione delle attestazioni.
Associare il profilo tecnico alla definizione del contenuto, ad esempio
api.selfasserted
. Nell'esempio seguente viene illustrato come associare un profilo tecnico alla definizione delapi.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:
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.
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 true
o 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: true o 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 outputClaimIfMatched
true
orfalse
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 | 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="(?<mailAlias>.*)@(.*)$" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
<InputParameter Id="extractGroups" DataType="boolean" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
<OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
<OutputClaim ClaimTypeReferenceId="mailAlias" />
</OutputClaims>
</ClaimsTransformation>
- Attestazioni di input:
- claimToMatch: "emily@contoso.com"
- Parametri di input:
- matchTo:
(?<mailAlias>.*)@(.*)$
- outputClaimIfMatched: "isEmail"
- extractGroups: true
- matchTo:
- 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" ]
- inputClaim:
- Parametri di input:
- delimiter: ","
- Attestazioni di output:
- outputClaim:
"Admin,Author,Reader"
- outputClaim:
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
- inputClaim:
- Parametri di input:
- delimiter: ","
- Attestazioni di output:
- outputClaim:
[ "Admin", "Author", "Reader" ]
- outputClaim:
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
- Altri esempi di trasformazione delle attestazioni sono disponibili nel repository GitHub della community di Azure AD B2C