Profili tecnici

Nota

In Azure Active Directory B2C i criteri personalizzati sono stati progettati principalmente per far fronte a scenari complessi. Per la maggior parte degli scenari, è consigliabile usare i flussi utente predefiniti. In caso contrario, vedere Introduzione ai criteri personalizzati in Active Directory B2C.

Un profilo tecnico fornisce un framework con un meccanismo predefinito per comunicare con diversi tipi di parti. I profili tecnici vengono usati per comunicare con il tenant di Azure Active Directory B2C (Azure AD B2C) per creare un utente o leggere un profilo utente. Un profilo tecnico può essere autocertificato per consentire l'interazione con l'utente, Ad esempio, un profilo tecnico può raccogliere le credenziali dell'utente per accedere e quindi eseguire il rendering della pagina di iscrizione o della reimpostazione della password.

Tipi di profili tecnici

Un profilo tecnico supporta i tipi di scenario riportati di seguito.

  • Application Insights: invia i dati degli eventi ad Application Insights.
  • Microsoft Entra ID: fornisce supporto per la gestione degli utenti di Azure AD B2C.
  • Autenticazione a più fattori Microsoft Entra: fornisce supporto per la verifica di un numero di telefono tramite l'autenticazione a più fattori Di Microsoft Entra.
  • Trasformazione delle attestazioni: chiama le trasformazioni delle attestazioni di output per modificare i valori delle attestazioni, convalidare le attestazioni o impostare i valori predefiniti per un set di attestazioni di output.
  • Hint del token ID: convalida la firma del id_token_hint token JWT, il nome dell'autorità emittente e il gruppo di destinatari del token ed estrae l'attestazione dal token in ingresso.
  • Autorità emittente di token JWT: genera un token JWT restituito all'applicazione relying party.
  • OAuth1: federazione con qualsiasi provider di identità del protocollo OAuth 1.0.
  • OAuth2: federazione con qualsiasi provider di identità del protocollo OAuth 2.0.
  • Password monouso: fornisce supporto per la gestione della generazione e della verifica di una password monouso.
  • OpenID Connessione: federazione con qualsiasi provider di identità del protocollo OpenID Connessione.
  • fattore Telefono: supporta la registrazione e la verifica dei numeri di telefono.
  • Provider RESTful: chiama i servizi API REST, ad esempio la convalida dell'input dell'utente, l'arricchimento dei dati utente o l'integrazione con applicazioni line-of-business.
  • Provider di identità SAML: federazione con qualsiasi provider di identità del protocollo SAML.
  • Autorità di certificazione del token SAML: genera un token SAML restituito all'applicazione relying party.
  • Autocertificata: interagisce con l'utente. Ad esempio, raccoglie le credenziali dell'utente per accedere, eseguire il rendering della pagina di iscrizione o reimpostare la password.
  • Gestione delle sessioni: gestisce diversi tipi di sessioni.

Flusso dei profili tecnici

Tutti i tipi di profili tecnici condividono lo stesso concetto. Per iniziare, leggere le attestazioni di input ed eseguire le trasformazioni delle attestazioni. Comunicano quindi con l'entità configurata, ad esempio un provider di identità, un'API REST o i servizi directory Microsoft Entra. Al termine del processo, il profilo tecnico restituisce le attestazioni di output e potrebbe eseguire trasformazioni delle attestazioni di output. Il diagramma seguente illustra come vengono elaborati le trasformazioni e i mapping a cui viene fatto riferimento nel profilo tecnico. Dopo l'esecuzione della trasformazione delle attestazioni, le attestazioni di output vengono archiviate immediatamente nel contenitore delle attestazioni, indipendentemente dall'entità con cui interagisce il profilo tecnico.

Diagram that illustrates the technical profile flow.

  1. Gestione delle sessioni Single Sign-On (SSO): ripristina lo stato della sessione del profilo tecnico usando la gestione delle sessioni SSO.
  2. Trasformazione delle attestazioni di input: prima dell'avvio del profilo tecnico, Azure AD B2C esegue la trasformazione delle attestazioni di input.
  3. Attestazioni di input: le attestazioni vengono prelevate dal contenitore di attestazioni usato per il profilo tecnico.
  4. Esecuzione del profilo tecnico: il profilo tecnico scambia le attestazioni con l'entità configurata. Ad esempio:
    • Reindirizza l'utente al provider di identità per completare l'accesso. Dopo aver completato l'accesso, l'utente torna indietro e l'esecuzione del profilo tecnico continua.
    • Chiama un'API REST durante l'invio di parametri come InputClaims e il recupero di informazioni come OutputClaims.
    • Crea o aggiorna l'account utente.
    • Invia e verifica il messaggio di testo di autenticazione a più fattori.
  5. Profili tecnici di convalida: un profilo tecnico autocertivo può chiamare profili tecnici di convalida per convalidare i dati profilati dall'utente. Solo i profili tecnici autocertificati possono usare profili tecnici di convalida.
  6. Attestazioni di output: le attestazioni vengono restituite al contenitore delle attestazioni. È possibile usare tali attestazioni nel passaggio successivo di orchestrazioni o trasformazioni delle attestazioni di output.
  7. Trasformazioni delle attestazioni di output: al termine del profilo tecnico, Azure AD B2C esegue le trasformazioni delle attestazioni di output.
  8. Gestione delle sessioni SSO: rende persistenti i dati del profilo tecnico nella sessione usando la gestione della sessione SSO.

Un elemento TechnicalProfiles contiene un set di profili tecnici supportati dal provider di attestazioni. Ogni provider di attestazioni deve avere almeno un profilo tecnico. Il profilo tecnico determina gli endpoint e i protocolli necessari per comunicare con il provider di attestazioni. Un provider di attestazioni può avere più profili tecnici.

<ClaimsProvider>
  <DisplayName>Display name</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="Technical profile identifier">
      <DisplayName>Display name of technical profile</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        ...
      </Metadata>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

L'elemento TechnicalProfile contiene l'attributo seguente:

Attributo Richiesto Descrizione
ID Un identificatore univoco del profilo tecnico. È possibile fare riferimento al profilo tecnico usando questo identificatore di altri elementi nel file dei criteri. Gli esempi sono OrchestrationSteps e ValidationTechnicalProfile.

L'elemento TechnicalProfile contiene gli elementi seguenti:

Elemento Occorrenze Descrizione
Domain 0:1 Il nome di dominio per il profilo tecnico. Ad esempio, se il profilo tecnico specifica il provider di identità Facebook, il nome di dominio è Facebook.com.
DisplayName 1:1 Nome visualizzato del profilo tecnico.
Descrizione 0:1 Descrizione del profilo tecnico.
Protocollo 1:1 Il protocollo usato per la comunicazione con altre entità.
Metadati UFX 0:1 Set di chiavi e valori che controllano il comportamento del profilo tecnico.
InputTokenFormat 0:1 Il formato del token di input. I possibili valori sono JSON, JWT, SAML11 o SAML2. Il JWT valore rappresenta un token Web JSON in base alla specifica IETF. Il SAML11 valore rappresenta un token di sicurezza SAML 1.1 in base alla specifica OASIS. Il SAML2 valore rappresenta un token di sicurezza SAML 2.0 in base alla specifica OASIS.
OutputTokenFormat 0:1 Il formato del token di output. I possibili valori sono JSON, JWT, SAML11 o SAML2.
CryptographicKeys 0:1 Un elenco di chiavi di crittografia usate nel profilo tecnico.
InputClaimsTransformations 0:1 Un elenco di riferimenti definiti in precedenza per le trasformazioni di attestazioni che devono essere eseguiti prima che le attestazioni siano inviate al provider di attestazioni o relying party.
InputClaims 0:1 Elenco di riferimenti definiti in precedenza ai tipi di attestazione presi come input nel profilo tecnico.
PersistedClaims 0:1 Elenco di riferimenti definiti in precedenza ai tipi di attestazione che verranno mantenuti dal profilo tecnico.
DisplayClaims 0:1 Elenco di riferimenti definiti in precedenza ai tipi di attestazione presentati dal profilo tecnico autocertificato. La funzionalità DisplayClaims è attualmente in anteprima.
OutputClaims 0:1 Elenco di riferimenti definiti in precedenza ai tipi di attestazione acquisiti come output nel profilo tecnico.
OutputClaimsTransformations 0:1 Un elenco di riferimenti definiti in precedenza per le trasformazioni di attestazioni che devono essere eseguiti prima che le attestazioni siano ricevute dal provider di attestazioni.
ValidationTechnicalProfiles 0:n Un elenco di riferimenti ad altri profili tecnici che il profilo tecnico usa ai fini della convalida. Per altre informazioni, vedere Profilo tecnico di convalida.
SubjectNamingInfo 0:1 Controlla la produzione del nome del soggetto nei token in cui il nome del soggetto è specificato separatamente dalle attestazioni. Alcuni esempi sono OAuth o SAML.
IncludeInSso 0:1 Se l'utilizzo di questo profilo tecnico deve applicare il comportamento SSO per la sessione o richiedere invece l'interazione esplicita. Questo elemento è valido solo nei profili SelfAsserted usati all'interno di un profilo tecnico di convalida. I valori possibili sono true (impostazione predefinita) o false.
IncludeClaimsFromTechnicalProfile 0:1 Un identificatore del profilo tecnico da cui si desidera aggiungere tutte le attestazioni di input e output al profilo tecnico. Il profilo tecnico a cui si fa riferimento deve essere definito nello stesso file di criteri.
IncludeTechnicalProfile 0:1 Un identificatore del profilo tecnico da cui si desidera aggiungere tutti i dati al profilo tecnico.
UseTechnicalProfileForSessionManagement 0:1 Un profilo tecnico diverso da usare per la gestione della sessione.
EnabledForUserJourneys 0:1 Controlla se il profilo tecnico viene eseguito in un percorso utente.

Protocollo

L'elemento Protocol specifica il protocollo da utilizzare per la comunicazione con l'altra parte. L'elemento Protocollo contiene gli attributi seguenti:

Attributo Richiesto Descrizione
Name Nome di un protocollo valido supportato da Azure AD B2C usato come parte del profilo tecnico. I valori possibili sono OAuth1, OAuth2, SAML2, OpenIdConnect, Proprietaryo None.
Gestore No Quando il nome del protocollo è impostato su Proprietary, specifica il nome dell'assembly usato da Azure AD B2C per determinare il gestore del protocollo. Se si imposta l'attributo Nome protocollo su None, non includere l'attributo Handler.

Metadati UFX

L'elemento Metadata contiene le opzioni di configurazione pertinenti per un protocollo specifico. L'elenco dei metadati supportati è documentato nella specifica del profilo tecnico corrispondente. Un elemento Metadata contiene l'elemento seguente:

Elemento Occorrenze Descrizione
Articolo 0:n I metadati che riguardano il profilo tecnico. Ogni tipo di profilo tecnico dispone di un diverso set di elementi di metadati. Per altre informazioni, vedere la sezione Tipi di profilo tecnico.

Articolo

L'elemento Item dell'elemento Metadata contiene l'attributo seguente:

Attributo Richiesto Descrizione
Tasto La chiave dei metadati. Vedere ogni tipo di profilo tecnico per l'elenco degli elementi di metadati.

L'esempio seguente illustra l'uso dei metadati rilevanti per il profilo tecnico OAuth2.

<TechnicalProfile Id="Facebook-OAUTH">
  ...
  <Metadata>
    <Item Key="ProviderName">facebook</Item>
    <Item Key="authorization_endpoint">https://www.facebook.com/dialog/oauth</Item>
    <Item Key="AccessTokenEndpoint">https://graph.facebook.com/oauth/access_token</Item>
    <Item Key="HttpBinding">GET</Item>
    <Item Key="UsePolicyInRedirectUri">0</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

L'esempio seguente illustra l'uso dei metadati rilevanti per il profilo tecnico dell'API REST.

<TechnicalProfile Id="REST-Validate-Email">
  ...
  <Metadata>
    <Item Key="ServiceUrl">https://api.sendgrid.com/v3/mail/send</Item>
    <Item Key="AuthenticationType">Bearer</Item>
    <Item Key="SendClaimsIn">Body</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

Chiavi crittografiche

Per stabilire una relazione di trust con i servizi con cui si integra, Azure AD B2C archivia segreti e certificati sotto forma di chiavi dei criteri. Durante l'esecuzione del profilo tecnico, Azure AD B2C recupera le chiavi crittografiche dalle chiavi dei criteri di Azure AD B2C. Azure AD B2C usa quindi le chiavi per stabilire un trust o crittografare o firmare un token. Questi trust sono costituiti da:

L'elemento CryptographicKeys contiene l'elemento seguente:

Elemento Occorrenze Descrizione
Tasto 1:n Una chiave di crittografia usata in questo profilo tecnico.

Key

L'elemento Chiave contiene l'attributo seguente:

Attributo Richiesto Descrizione
ID No Un identificatore univoco di una coppia di chiavi specifica a cui fanno riferimento altri elementi nel file dei criteri.
StorageReferenceId Identificatore di un contenitore di chiavi di archiviazione a cui fanno riferimento altri elementi nel file dei criteri.

Trasformazioni delle attestazioni di input

L'elemento InputClaimsTransformations può contenere una raccolta di elementi di trasformazione delle attestazioni di input usati per modificare le attestazioni di input o generarne di nuove.

Le attestazioni di output di una trasformazione delle attestazioni precedente nella raccolta di trasformazioni delle attestazioni possono essere attestazioni di input di una successiva trasformazione delle attestazioni di input. In questo modo, è possibile avere una sequenza di trasformazioni delle attestazioni che dipendono l'una dall'altra.

L'elemento InputClaimsTransformations contiene l'elemento seguente:

Elemento Occorrenze Descrizione
InputClaimsTransformation 1:n L'identificatore di una trasformazione di attestazioni che deve essere eseguita prima che le attestazioni siano inviate al provider di attestazioni o relying party. Una trasformazione delle attestazioni può essere usata per modificare le attestazioni ClaimsSchema esistenti o generarne di nuove.

InputClaimsTransformation

L'elemento InputClaimsTransformation contiene l'attributo seguente:

Attributo Richiesto Descrizione
ReferenceId Un identificatore di trasformazione delle attestazioni già definito nel file dei criteri o nel file dei criteri padre.

I profili tecnici seguenti fanno riferimento alla trasformazione delle attestazioni CreateOtherMailsFromEmail . La trasformazione delle attestazioni aggiunge il valore dell'attestazione email alla otherMails raccolta prima di rendere persistenti i dati nella directory.

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  ...
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  ...
</TechnicalProfile>

Attestazioni di input

L'elemento InputClaims preleva le attestazioni dal contenitore di attestazioni usato per il profilo tecnico. Un profilo tecnico autocertificato, ad esempio, usa le attestazioni di input per prepopolare le attestazioni di output fornite dall'utente. Un profilo tecnico API REST usa le attestazioni di input per inviare i parametri di input all'endpoint API REST. Azure AD B2C usa un'attestazione di input come identificatore univoco per leggere, aggiornare o eliminare un account.

L'elemento InputClaims contiene l'elemento seguente:

Elemento Occorrenze Descrizione
InputClaim 1:n Un tipo di attestazione di input previsto.

InputClaim

L'elemento InputClaim contiene gli attributi seguenti:

Attributo Richiesto Descrizione
ClaimTypeReferenceId Identificatore di un tipo di attestazione. L'attestazione è già definita nella sezione schema delle attestazioni nel file di criteri o nel file dei criteri padre.
DefaultValue No Valore predefinito da usare per creare un'attestazione se l'attestazione indicata da ClaimTypeReferenceId non esiste in modo che l'attestazione risultante possa essere usata come elemento InputClaim dal profilo tecnico.
AlwaysUseDefaultValue Forza l'uso del valore predefinito.
PartnerClaimType No L'identificatore del tipo di attestazione del partner esterno verso cui il tipo di attestazione di criterio specificato esegue il mapping. Se l'attributo PartnerClaimType non è specificato, viene eseguito il mapping del tipo di attestazione dei criteri specificato al tipo di attestazione partner con lo stesso nome. Utilizzare questa proprietà quando il nome del tipo di attestazione è diverso da altre entità. Un esempio è se il nome della prima attestazione è datoName, mentre il partner usa un'attestazione denominata first_name.

Visualizzare le attestazioni

L'elemento DisplayClaims contiene un elenco di attestazioni da presentare sullo schermo per raccogliere dati dall'utente. Nella raccolta di attestazioni di visualizzazione è possibile includere un riferimento a un tipo di attestazione o a un controllo visualizzato creato.

  • Un tipo di attestazione è un riferimento a un'attestazione da visualizzare sullo schermo.
    • Per forzare l'utente a fornire un valore per un'attestazione specifica, impostare l'attributo Required dell'elemento DisplayClaim su true.
    • Per prepopopolare i valori delle attestazioni di visualizzazione, usare le attestazioni di input descritte in precedenza. L'elemento potrebbe contenere anche un valore predefinito.
    • L'elemento ClaimType nell'insieme DisplayClaims deve impostare l'elemento UserInputType su qualsiasi tipo di input utente supportato da Azure AD B2C. Gli esempi sono TextBox o DropdownSingleSelect.
  • Un controllo di visualizzazione è un elemento dell'interfaccia utente con funzionalità speciali e interagisce con il servizio back-end di Azure AD B2C. Consente all'utente di eseguire azioni nella pagina che richiamano un profilo tecnico di convalida al back-end. Un esempio è la verifica di un indirizzo di posta elettronica, un numero di telefono o un numero di fedeltà del cliente.

L'ordine degli elementi in DisplayClaims specifica l'ordine in cui Azure AD B2C esegue il rendering delle attestazioni sullo schermo.

L'elemento DisplayClaims contiene l'elemento seguente:

Elemento Occorrenze Descrizione
DisplayClaim 1:n Un tipo di attestazione di input previsto.

DisplayClaim

L'elemento DisplayClaim contiene gli attributi seguenti:

Attributo Richiesto Descrizione
ClaimTypeReferenceId No L'identificatore di un tipo di attestazione già definito nella sezione ClaimsSchema del file dei criteri o del file dei criteri padre.
DisplayControlReferenceId No Identificatore di un controllo di visualizzazione già definito nella sezione ClaimsSchema nel file di criteri o nel file dei criteri padre.
Richiesto No Indica se l'attestazione di visualizzazione è obbligatoria.

L'esempio seguente illustra l'uso di attestazioni di visualizzazione e controlli di visualizzazione in un profilo tecnico autocertificato.

Screenshot that shows a self-asserted technical profile with display claims.

Nel profilo tecnico seguente:

  • La prima attestazione di visualizzazione fa riferimento al emailVerificationControl controllo di visualizzazione, che raccoglie e verifica l'indirizzo di posta elettronica.
  • La quinta attestazione di visualizzazione fa riferimento al phoneVerificationControl controllo di visualizzazione, che raccoglie e verifica un numero di telefono.
  • Le altre attestazioni di visualizzazione sono elementi ClaimType da raccogliere dall'utente.
<TechnicalProfile Id="Id">
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
    <DisplayClaim DisplayControlReferenceId="phoneVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
  </DisplayClaims>
</TechnicalProfile>

Attestazioni persistenti

L'elemento PersistedClaims contiene tutti i valori che devono essere salvati in modo permanente da un profilo tecnico microsoft Entra ID con possibili informazioni di mapping tra un tipo di attestazione già definito nella sezione ClaimsSchema nei criteri e nel nome dell'attributo Microsoft Entra.

Il nome dell'attestazione è il nome dell'attributo Microsoft Entra, a meno che non venga specificato l'attributo PartnerClaimType, che contiene il nome dell'attributo Microsoft Entra.

L'elemento PersistedClaims contiene l'elemento seguente:

Elemento Occorrenze Descrizione
PersistedClaim 1:n Il tipo di attestazione da mantenere.

PersistedClaim

L'elemento PersistedClaim contiene gli attributi seguenti:

Attributo Richiesto Descrizione
ClaimTypeReferenceId L'identificatore di un tipo di attestazione già definito nella sezione ClaimsSchema del file dei criteri o del file dei criteri padre.
DefaultValue No Valore predefinito da usare per creare un'attestazione se l'attestazione non esiste.
PartnerClaimType No L'identificatore del tipo di attestazione del partner esterno verso cui il tipo di attestazione di criterio specificato esegue il mapping. Se l'attributo PartnerClaimType non è specificato, viene eseguito il mapping del tipo di attestazione dei criteri specificato al tipo di attestazione partner con lo stesso nome. Utilizzare questa proprietà quando il nome del tipo di attestazione è diverso da altre entità. Un esempio è se il nome della prima attestazione è datoName, mentre il partner usa un'attestazione denominata first_name.

Nell'esempio seguente, il profilo tecnico AAD-UserWriteUsingLogonEmail o starter pack, che crea un nuovo account locale, mantiene le attestazioni seguenti:

<PersistedClaims>
  <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
  <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
  <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
  <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />
  <PersistedClaim ClaimTypeReferenceId="givenName" />
  <PersistedClaim ClaimTypeReferenceId="surname" />
</PersistedClaims>

Attestazioni di output

L'elemento OutputClaims è una raccolta di attestazioni restituite al contenitore delle attestazioni dopo il completamento del profilo tecnico. È possibile usare tali attestazioni nel passaggio successivo di orchestrazioni o trasformazioni delle attestazioni di output. L'elemento OutputClaims contiene l'elemento seguente:

Elemento Occorrenze Descrizione
OutputClaim 1:n Un tipo di attestazione di output previsto.

OutputClaim

L'elemento OutputClaim contiene gli attributi seguenti:

Attributo Richiesto Descrizione
ClaimTypeReferenceId L'identificatore di un tipo di attestazione già definito nella sezione ClaimsSchema del file dei criteri o del file dei criteri padre.
DefaultValue No Valore predefinito da usare per creare un'attestazione se l'attestazione non esiste.
AlwaysUseDefaultValue No Forza l'uso del valore predefinito.
PartnerClaimType No L'identificatore del tipo di attestazione del partner esterno verso cui il tipo di attestazione di criterio specificato esegue il mapping. Se l'attributo del tipo di attestazione partner non viene specificato, viene eseguito il mapping del tipo di attestazione dei criteri specificato al tipo di attestazione partner con lo stesso nome. Utilizzare questa proprietà quando il nome del tipo di attestazione è diverso da altre entità. Un esempio è se il nome della prima attestazione è datoName, mentre il partner usa un'attestazione denominata first_name.

Trasformazioni delle attestazioni di output

L'elemento OutputClaimsTransformations può contenere una raccolta di elementi OutputClaimsTransformation . Le trasformazioni delle attestazioni di output vengono usate per modificare le attestazioni di output o generarne di nuove. Al termine dell'esecuzione, le attestazioni di output vengono inserite nel contenitore delle attestazioni. È possibile usare tali attestazioni nel passaggio successivo delle orchestrazioni.

Le attestazioni di output di una trasformazione delle attestazioni precedente nella raccolta di trasformazioni delle attestazioni possono essere attestazioni di input di una successiva trasformazione delle attestazioni di input. In questo modo, è possibile avere una sequenza di trasformazioni delle attestazioni che dipendono l'una dall'altra.

L'elemento OutputClaimsTransformations contiene l'elemento seguente:

Elemento Occorrenze Descrizione
OutputClaimsTransformation 1:n Gli identificatori delle trasformazione di attestazioni che devono essere eseguiti prima che le attestazioni siano inviate al provider di attestazioni o relying party. Una trasformazione delle attestazioni può essere usata per modificare le attestazioni ClaimsSchema esistenti o generarne di nuove.

OutputClaimsTransformation

L'elemento OutputClaimsTransformation contiene l'attributo seguente:

Attributo Richiesto Descrizione
ReferenceId Un identificatore di trasformazione delle attestazioni già definito nel file dei criteri o nel file dei criteri padre.

Il profilo tecnico seguente fa riferimento alla trasformazione delle attestazioni AssertAccountEnabledIsTrue per valutare se l'account è abilitato o meno dopo aver letto l'attestazione accountEnabled dalla directory.

<TechnicalProfile Id="AAD-UserReadUsingEmailAddress">
  ...
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="accountEnabled" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  ...
</TechnicalProfile>

Profili tecnici di convalida

Un profilo tecnico di convalida viene usato per convalidare le attestazioni di output in un profilo tecnico autocertivo. Un profilo tecnico di convalida è un profilo tecnico ordinario da qualsiasi protocollo, ad esempio Microsoft Entra ID o un'API REST. Il profilo tecnico di convalida restituisce attestazioni di output o restituisce il codice di errore. Il rendering del messaggio di errore viene eseguito all'utente sullo schermo, che consente all'utente di riprovare.

Il diagramma seguente illustra come Azure AD B2C usa un profilo tecnico di convalida per convalidare le credenziali utente.

Diagram that shows a validation technical profile flow.

L'elemento ValidationTechnicalProfiles contiene l'elemento seguente:

Elemento Occorrenze Descrizione
ValidationTechnicalProfile 1:n Gli identificatori dei profili tecnici che consentono di convalidare alcune o tutte le attestazioni di output del profilo tecnico di riferimento. Tutte le attestazioni di input del profilo tecnico a cui si fa riferimento devono essere visualizzate nelle attestazioni di output del profilo tecnico di riferimento.

ValidationTechnicalProfile

L'elemento ValidationTechnicalProfile contiene gli attributi seguenti:

Attributo Richiesto Descrizione
ReferenceId Un identificatore del profilo tecnico già definito nel file dei criteri o nel file dei criteri padre.

SubjectNamingInfo

L'elemento SubjectNamingInfo definisce il nome soggetto usato nei token in un criterio relying party. L'elemento SubjectNamingInfo contiene l'attributo seguente:

Attributo Richiesto Descrizione
ClaimType Un identificatore di un tipo di attestazione già definito nella sezione ClaimsSchema del file dei criteri.

Includi profilo tecnico

Un profilo tecnico può includere un altro profilo tecnico per modificare le impostazioni o aggiungere nuove funzionalità. L'elemento IncludeTechnicalProfile è un riferimento al profilo tecnico comune da cui deriva un profilo tecnico. Per ridurre la ridondanza e la complessità degli elementi dei criteri, usare l'inclusione quando si hanno più profili tecnici che condividono gli elementi principali. Usare un profilo tecnico comune con il set comune di configurazione, insieme a profili tecnici di attività specifici che includono il profilo tecnico comune.

Si supponga di avere un profilo tecnico dell'API REST con un singolo endpoint in cui è necessario inviare set di attestazioni diversi per diversi scenari. Creare un profilo tecnico comune con la funzionalità condivisa, ad esempio l'URI dell'endpoint DELL'API REST, i metadati, il tipo di autenticazione e le chiavi crittografiche. Creare profili tecnici di attività specifici che includono il profilo tecnico comune. Aggiungere quindi le attestazioni di input e output oppure sovrascrivere l'URI dell'endpoint DELL'API REST pertinente a tale profilo tecnico.

L'elemento IncludeTechnicalProfile contiene l'attributo seguente:

Attributo Richiesto Descrizione
ReferenceId Un identificatore del profilo tecnico già definito nel file dei criteri o nel file dei criteri padre.

Nell'esempio seguente viene illustrato l'uso dell'inclusione:

  • REST-API-Common: profilo tecnico comune con la configurazione di base.
  • REST-ValidateProfile: include il profilo tecnico REST-API-Common e specifica le attestazioni di input e output.
  • REST-UpdateProfile: include il profilo tecnico REST-API-Common , specifica le attestazioni di input e sovrascrive i ServiceUrl metadati.
<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-API-Common">
      <DisplayName>Base REST API configuration</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="SendClaimsIn">Body</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_B2cRestClientId" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_B2cRestClientSecret" />
      </CryptographicKeys>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-ValidateProfile">
      <DisplayName>Validate the account and return promo code</DisplayName>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
        <InputClaim ClaimTypeReferenceId="userLanguage" PartnerClaimType="lang" DefaultValue="{Culture:LCID}" AlwaysUseDefaultValue="true" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="promoCode" />
      </OutputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-UpdateProfile">
      <DisplayName>Update the user profile</DisplayName>  
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity/update</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
      </InputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Inclusione a più livelli

Un profilo tecnico può includere un singolo profilo tecnico. Non esiste alcun limite al numero di livelli di inclusione. Ad esempio, il profilo tecnico AAD-UserReadUsingAlternativeSecurityId-NoError include AAD-UserReadUsingAlternativeSecurityId. Questo profilo tecnico imposta l'elemento RaiseErrorIfClaimsPrincipalDoesNotExist di metadati su true e genera un errore se non esiste un account di social networking nella directory. AAD-UserReadUsingAlternativeSecurityId-NoError esegue l'override di questo comportamento e disabilita il messaggio di errore.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId-NoError">
  <Metadata>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
  </Metadata>
  <IncludeTechnicalProfile ReferenceId="AAD-UserReadUsingAlternativeSecurityId" />
</TechnicalProfile>

AAD-UserReadUsingAlternativeSecurityId include il profilo tecnico AAD-Common.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalDoesNotExist">User does not exist. Please sign up before you can sign in.</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Sia AAD-UserReadUsingAlternativeSecurityId-NoError che AAD-UserReadUsingAlternativeSecurityId non specificano l'elemento obbligatorio Protocol perché è specificato nel profilo tecnico AAD-Common.

<TechnicalProfile Id="AAD-Common">
  <DisplayName>Azure Active Directory</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  ...
</TechnicalProfile>

Usare il profilo tecnico per la gestione delle sessioni

L'elemento UseTechnicalProfileForSessionManagement fa riferimento al profilo tecnico della sessione SSO. L'elemento UseTechnicalProfileForSessionManagement contiene l'attributo seguente:

Attributo Richiesto Descrizione
ReferenceId Un identificatore del profilo tecnico già definito nel file dei criteri o nel file dei criteri padre.

Abilitato per i percorsi utente

L'elemento ClaimsProviderSelections in un percorso utente definisce l'elenco di selezioni di provider di attestazioni e il relativo ordine. Con l'elemento EnabledForUserJourneys , è possibile filtrare il provider di attestazioni disponibile per l'utente. L'elemento EnabledForUserJourneys contiene uno dei valori seguenti:

  • Sempre: esegue il profilo tecnico.
  • Mai: ignora il profilo tecnico.
  • OnClaimsExistence: viene eseguito solo quando esiste una determinata attestazione specificata nel profilo tecnico.
  • OnItemExistenceInStringCollectionClaim: viene eseguito solo quando un elemento esiste in un'attestazione di raccolta di stringhe.
  • OnItemAbsenceInStringCollectionClaim: viene eseguito solo quando un elemento non esiste in un'attestazione di raccolta di stringhe.

L'uso di OnClaimsExistence, OnItemExistenceInStringCollectionClaim o OnItemAbsenceInStringCollectionClaim richiede l'indicazione dei metadati seguenti:

  • ClaimTypeOnWhichToEnable: specifica il tipo di attestazione da valutare.
  • ClaimValueOnWhichToEnable: specifica il valore da confrontare.

Il seguente profilo tecnico viene eseguito solo se la raccolta di stringhe identityProviders contiene il valore di facebook.com:

<TechnicalProfile Id="UnLink-Facebook-OAUTH">
  <DisplayName>Unlink Facebook</DisplayName>
...
    <Metadata>
      <Item Key="ClaimTypeOnWhichToEnable">identityProviders</Item>
      <Item Key="ClaimValueOnWhichToEnable">facebook.com</Item>
    </Metadata>
...
  <EnabledForUserJourneys>OnItemExistenceInStringCollectionClaim</EnabledForUserJourneys>
</TechnicalProfile>