Definire un profilo tecnico autocertificato nei criteri personalizzati di Azure Active Directory B2C
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.
Tutte le interazioni in Azure Active Directory B2C (Azure AD B2C) in cui l'utente deve fornire l'input sono profili tecnici autocertificati. ad esempio una pagina di registrazione, una pagina di accesso o una pagina di reimpostazione della password.
Protocollo
L'attributo Nome dell'elemento Protocollo deve essere impostato su Proprietary
. L'attributo handler deve contenere il nome completo dell'assembly del gestore di protocollo usato da Azure AD B2C per l'autocertificazione: Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
L'esempio seguente illustra un profilo tecnico autocertificato per l'iscrizione alla posta elettronica:
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<DisplayName>Email signup</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
Attestazioni di input
In un profilo tecnico autocertifidato è possibile usare gli elementi InputClaims e InputClaimsTransformations per prepopopolare il valore delle attestazioni visualizzate nella pagina autocertificata (attestazioni di visualizzazione). Nei criteri del profilo di modifica ad esempio il percorso utente legge prima il profilo utente dal servizio directory di Azure AD B2C, quindi il profilo tecnico autocertificato imposta le attestazioni di input con i dati utente archiviati nel profilo utente. Queste attestazioni vengono raccolte dal profilo utente e successivamente presentate all'utente che può quindi modificare i dati esistenti.
<TechnicalProfile Id="SelfAsserted-ProfileUpdate">
...
<InputClaims>
<InputClaim ClaimTypeReferenceId="alternativeSecurityId" />
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
<InputClaim ClaimTypeReferenceId="givenName" />
<InputClaim ClaimTypeReferenceId="surname" />
</InputClaims>
Visualizzare le attestazioni
L'elemento DisplayClaims contiene un elenco di attestazioni da presentare sullo schermo per la raccolta di dati dall'utente. Per prepopopolare i valori delle attestazioni di visualizzazione, usare le attestazioni di input descritte in precedenza. L'elemento può contenere anche un valore predefinito.
L'ordine delle attestazioni in DisplayClaims specifica l'ordine in cui Azure AD B2C esegue il rendering delle attestazioni sullo schermo. Per forzare l'utente a fornire un valore per un'attestazione specifica, impostare l'attributo Required dell'elemento DisplayClaim su true
.
L'elemento ClaimType nell'insieme DisplayClaims deve impostare l'elemento UserInputType su qualsiasi tipo di input utente supportato da Azure AD B2C. Ad esempio, TextBox
o DropdownSingleSelect
.
Aggiungere un riferimento a un oggetto DisplayControl
Nella raccolta di attestazioni di visualizzazione è possibile includere un riferimento a un displayControl creato. 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. Ad esempio, verificando un indirizzo di posta elettronica, un numero di telefono o un numero di fedeltà del cliente.
Nell'esempio TechnicalProfile
seguente viene illustrato l'uso di attestazioni di visualizzazione con controlli di visualizzazione.
- La prima attestazione di visualizzazione fa riferimento al
emailVerificationControl
controllo di visualizzazione, che raccoglie e verifica l'indirizzo di posta elettronica. - La seconda attestazione di visualizzazione fa riferimento al
captchaChallengeControl
controllo di visualizzazione, che genera e verifica il codice CAPTCHA. - La sesta attestazione di visualizzazione fa riferimento al
phoneVerificationControl
controllo di visualizzazione, che raccoglie e verifica un numero di telefono. - Le altre attestazioni di visualizzazione sono ClaimType da raccogliere dall'utente.
<TechnicalProfile Id="Id">
<DisplayClaims>
<DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
<DisplayClaim DisplayControlReferenceId="captchaChallengeControl" />
<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>
Come accennato, un'attestazione di visualizzazione con un riferimento a un controllo display può eseguire la propria convalida, ad esempio verificando l'indirizzo di posta elettronica. Inoltre, la pagina autocertificata supporta l'uso di un profilo tecnico di convalida per convalidare l'intera pagina, incluso qualsiasi input utente (tipi di attestazione o controlli di visualizzazione), prima di passare al passaggio di orchestrazione successivo.
Combinare attentamente l'utilizzo delle attestazioni di visualizzazione e delle attestazioni di output
Se specifichi uno o più elementi DisplayClaim in un profilo tecnico autocertizionato, devi usare DisplayClaim per ogni attestazione che vuoi visualizzare sullo schermo e raccogliere dall'utente. Nessuna attestazione di output viene visualizzata da un profilo tecnico autocertificato che contiene almeno un'attestazione di visualizzazione.
Si consideri l'esempio seguente in cui un'attestazione age
viene definita come attestazione di output in un criterio di base. Prima di aggiungere attestazioni di visualizzazione al profilo tecnico autocertificato, l'attestazione age
viene visualizzata sullo schermo per la raccolta dati dell'utente:
<TechnicalProfile Id="id">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="age" />
</OutputClaims>
</TechnicalProfile>
Se un criterio foglia che eredita tale base specifica officeNumber
successivamente come attestazione di visualizzazione :
<TechnicalProfile Id="id">
<DisplayClaims>
<DisplayClaim ClaimTypeReferenceId="officeNumber" />
</DisplayClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="officeNumber" />
</OutputClaims>
</TechnicalProfile>
L'attestazione age
nei criteri di base non viene più presentata sullo schermo all'utente, ma è effettivamente "nascosta". Per visualizzare l'attestazione age
e raccogliere il valore di età dall'utente, è necessario aggiungere un age
displayClaim.
Attestazioni di output
L'elemento OutputClaims contiene un elenco di attestazioni da restituire al passaggio di orchestrazione successivo. L'attributo DefaultValue ha effetto solo se l'attestazione non è mai stata impostata. Se è stato impostato in un passaggio di orchestrazione precedente, il valore predefinito non diventa effettivo anche se l'utente lascia vuoto il valore. Per forzare l'utilizzo di un valore predefinito, impostare l'attributo AlwaysUseDefaultValue su true
.
Per motivi di sicurezza, il valore dell'attestazione della password (UserInputType
impostato su Password
) è disponibile solo per i profili tecnici di convalida autocertificati del profilo tecnico. Non è possibile usare l'attestazione password nei passaggi di orchestrazione successivi.
Nota
Nelle versioni precedenti di Identity Experience Framework (IEF), le attestazioni di output sono state usate per raccogliere dati dall'utente. Per raccogliere dati dall'utente, usare invece una raccolta DisplayClaims .
L'elemento OutputClaimsTransformations può contenere una raccolta di elementi OutputClaimsTransformation che vengono usati per modificare le attestazioni di output o per generarne di nuove.
Quando è consigliabile usare le attestazioni di output
In un profilo tecnico autocertitivo, la raccolta di attestazioni di output restituisce le attestazioni al passaggio di orchestrazione successivo.
Usare le attestazioni di output quando:
- Le attestazioni vengono restituite dalla trasformazione delle attestazioni di output.
- Impostazione di un valore predefinito in un'attestazione di output senza raccogliere dati dall'utente o restituire i dati dal profilo tecnico di convalida. Il profilo tecnico autocertificato
LocalAccountSignUpWithLogonEmail
imposta l'attestazione executed-SelfAsserted-Input sutrue
. - Un profilo tecnico di convalida restituisce le attestazioni di output - Il profilo tecnico può chiamare un profilo tecnico di convalida che restituisce alcune attestazioni. È possibile che si desideri sviluppare le attestazioni e restituirle ai successivi passaggi dell'orchestrazione nel percorso utente. Quando si accede con un account locale, ad esempio, il profilo tecnico autocertificato denominato
SelfAsserted-LocalAccountSignin-Email
chiama il profilo tecnico di convalida denominatologin-NonInteractive
. Questo profilo tecnico convalida le credenziali utente e restituisce il profilo utente, ad esempio 'userPrincipalName', 'displayName', 'givenName' e 'surName'. - Un controllo di visualizzazione restituisce le attestazioni di output: il profilo tecnico potrebbe avere un riferimento a un controllo di visualizzazione. Il controllo display restituisce alcune attestazioni, ad esempio l'indirizzo di posta elettronica verificato. È possibile che si desideri sviluppare le attestazioni e restituirle ai successivi passaggi dell'orchestrazione nel percorso utente.
Nell'esempio seguente viene illustrato l'uso di un profilo tecnico autocertificato che usa attestazioni di visualizzazione e attestazioni di output.
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<DisplayName>Email signup</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="IpAddressClaimReferenceId">IpAddress</Item>
<Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
<Item Key="language.button_continue">Create</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<DisplayClaims>
<DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
<DisplayClaim DisplayControlReferenceId="SecondaryEmailVerificationControl" />
<DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
<DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
<DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
<DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
<DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
</DisplayClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" Required="true" />
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" />
<OutputClaim ClaimTypeReferenceId="newUser" />
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail" />
</ValidationTechnicalProfiles>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
Nota
Quando si raccoglie il valore dell'attestazione password nel profilo tecnico autocertizionato, tale valore è disponibile solo all'interno dello stesso profilo tecnico o all'interno di profili tecnici di convalida a cui fa riferimento lo stesso profilo tecnico autocertificato. Quando l'esecuzione del profilo tecnico autocertifiato viene completata e passa a un altro profilo tecnico, il valore della password viene perso. Di conseguenza, l'attestazione password può essere archiviata solo nel passaggio di orchestrazione in cui viene raccolto.
Pagina di iscrizione o accesso delle attestazioni di output
In una pagina combinata di iscrizione e accesso, tenere presente quanto segue quando si usa un elemento DataUri definizione contenuto che specifica un unifiedssp
tipo di pagina o unifiedssd
:
- Viene eseguito il rendering solo delle attestazioni di nome utente e password.
- Le prime due attestazioni di output devono essere il nome utente e la password (in questo ordine).
- Non viene eseguito il rendering di altre attestazioni; per queste attestazioni, è necessario impostare
defaultValue
o richiamare un profilo tecnico di convalida dei moduli attestazioni.
Rendere persistenti le attestazioni
L'elemento PersistedClaims non viene utilizzato. Il profilo tecnico autocertificato non rende persistenti i dati in Azure AD B2C. Viene invece eseguita una chiamata a un profilo tecnico di convalida che è responsabile della persistenza dei dati. I criteri di accesso ad esempio usano il profilo tecnico autocertificato LocalAccountSignUpWithLogonEmail
per raccogliere il nuovo profilo utente. Il profilo tecnico LocalAccountSignUpWithLogonEmail
chiama il profilo tecnico di convalida per creare l'account in Azure AD B2C.
Profili tecnici di convalida
Il profilo tecnico di convalida viene usato per convalidare alcune o tutte le attestazioni di output del profilo tecnico di riferimento. Le attestazioni di input del profilo tecnico di convalida devono apparire nelle attestazioni di output del profilo tecnico autocertificato. Il profilo tecnico di convalida esegue la convalida dell'input utente e può restituire un errore all'utente.
Il profilo tecnico di convalida può essere qualsiasi profilo tecnico nei criteri, ad esempio Microsoft Entra ID o profili tecnici dell'API REST. Nell'esempio precedente il profilo tecnico LocalAccountSignUpWithLogonEmail
convalida che l'attributo signinName non esiste nella directory. In caso contrario, il profilo tecnico di convalida crea un account locale e restituisce il valore objectId, authenticationSource, newUser. Il profilo tecnico SelfAsserted-LocalAccountSignin-Email
chiama il profilo tecnico di convalida login-NonInteractive
per convalidare le credenziali utente.
È possibile anche chiamare un profilo tecnico di API REST usando la logica di business che si preferisce, sovrascrivere le attestazioni di input o arricchire i dati utente integrando ulteriormente con applicazioni line-of-business aziendali. Per altre informazioni, vedere Validation technical profile (Profilo tecnico di convalida)
Nota
Un profilo tecnico di convalida viene attivato solo quando è presente un input dell'utente. Non è possibile creare un profilo tecnico autocertivo vuoto per chiamare un profilo tecnico di convalida solo per sfruttare l'attributo ContinueOnError di un elemento ValidationTechnicalProfile . È possibile chiamare un profilo tecnico di convalida solo da un profilo tecnico autocertivo che richiede un input dall'utente o da un passaggio di orchestrazione in un percorso utente.
Metadati UFX
Attributo | Obbligatorio | Descrizione |
---|---|---|
setting.operatingMode 1 | No | Per una pagina di accesso, questa proprietà controlla il comportamento del campo del nome utente, ad esempio i messaggi di errore e di convalida di input. I valori previsti sono: Username o Email . Vedere la demo live di questi metadati. |
AllowGenerationOfClaimsWithNullValues | No | Consentire di generare un'attestazione con valore Null. Ad esempio, nel caso in cui l'utente non selezioni una casella di controllo. |
ContentDefinitionReferenceId | Sì | Identificatore della definizione di contenuto associata a questo profilo tecnico. |
EnforceEmailVerification | No | Per la registrazione o la modifica del profilo, applica la verifica tramite posta elettronica. I valori possibili sono: true (impostazione predefinita) o false . |
setting.retryLimit | No | Controlla il numero di volte in cui un utente può provare a specificare i dati che vengono controllati rispetto a un profilo tecnico di convalida. Ad esempio, un utente tenta di iscriversi con un account già esistente e continua a provare fino al raggiungimento del limite. Vedere la demo live di questi metadati. |
SignUpTarget 1 | No | Identificatore di scambio di destinazione di iscrizione. Quando l'utente fa clic sul pulsante di iscrizione, Azure AD B2C esegue l'identificatore di scambio specificato. |
setting.showCancelButton | No | Visualizza il pulsante Annulla. I valori possibili sono: true (impostazione predefinita) o false . Vedere la demo live di questi metadati. |
setting.showContinueButton | No | Visualizza il pulsante Continua. I valori possibili sono: true (impostazione predefinita) o false . Vedere la demo live di questi metadati. |
setting.showSignupLink 2 | No | Visualizza il pulsante di iscrizione. I valori possibili sono: true (impostazione predefinita) o false . Vedere la demo live di questi metadati. |
setting.forgotPasswordLinkLocation 2 | No | Visualizza il collegamento password dimenticato. Valori possibili: AfterLabel (impostazione predefinita) visualizza il collegamento direttamente dopo l'etichetta o dopo il campo di input della password quando non è presente alcuna etichetta, AfterInput visualizza il collegamento dopo il campo di input della password, AfterButtons visualizza il collegamento nella parte inferiore del modulo dopo i pulsanti o None rimuove il collegamento password dimenticato. Vedere la demo live di questi metadati. |
setting.enableRememberMe 2 | No | Visualizza la casella di controllo Mantieni l'accesso. Valori possibili: true o false (impostazione predefinita). Demo live di questi metadati. |
setting.inputVerificationDelayTimeInMilliseconds 3 | No | Migliora l'esperienza utente, attendendo che l'utente interrompa la digitazione e quindi convalida il valore. Valore predefinito 2000 millisecondi. Vedere la demo live di questi metadati. |
IncludeClaimResolvingInClaimsHandling | No | Per le attestazioni di input e output, specifica se la risoluzione delle attestazioni è inclusa nel profilo tecnico. Valori possibili: true o false (impostazione predefinita). Se si vuole usare un resolver di attestazioni nel profilo tecnico, impostarlo su true . |
setting.forgotPasswordLinkOverride 4 | No | Scambio di attestazioni di reimpostazione della password da eseguire. Per altre informazioni, vedere Reimpostazione della password self-service. |
setting.enableCaptchaChallenge | No | Specifica se deve essere visualizzato il codice di verifica CAPTCHA. Valori possibili: true o false (impostazione predefinita). Per il funzionamento di questa impostazione, è necessario fare riferimento al controllo di visualizzazione CAPTCHA nelle attestazioni di visualizzazione del profilo tecnico autocertificato. La funzionalità CAPTCHA è disponibile in anteprima pubblica. |
setting.showHeading | No | Specifica se l'elemento intestazione Dettagli utente deve essere visibile. I valori possibili sono: true (impostazione predefinita) o false . |
Note:
- Disponibile per la definizione del contenuto Tipo DataUri di
unifiedssp
ounifiedssd
. - Disponibile per la definizione del contenuto Tipo DataUri di
unifiedssp
ounifiedssd
. Layout di pagina versione 1.1.0 e successive. - Disponibile per il layout di pagina versione 1.2.0 e successive.
- Disponibile per la definizione del contenuto Tipo DataUri di
unifiedssp
. Layout di pagina versione 2.1.2 e successive.
Chiavi crittografiche
L'elemento CryptographicKeys non viene usato.