Definire un profilo tecnico di autenticazione a più fattori di Microsoft Entra ID in un criterio personalizzato di Azure AD B2C
Azure Active Directory B2C (Azure AD B2C) fornisce supporto per la verifica di un numero di telefono usando un codice di verifica o la verifica di un codice TOTP (One-Time Password) basato sul tempo.
Protocollo
L'attributo Nome dell'elemento Protocollo deve essere impostato su Proprietary
. L'attributo del gestore deve contenere il nome completo dell'assembly del gestore di protocollo usato da Azure AD B2C:
Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
L'esempio seguente mostra un profilo tecnico di autenticazione a più fattori di Microsoft Entra ID:
<TechnicalProfile Id="AzureMfa-SendSms">
<DisplayName>Send Sms</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
Verificare la modalità telefono
Nella modalità verifica telefono, il profilo tecnico genera e invia un codice a un numero di telefono e quindi verifica il codice. Il profilo tecnico di autenticazione a più fattori Microsoft Entra ID può anche restituire un messaggio di errore. Il profilo tecnico di convalida consente la convalida i dati specificati dall'utente prima che il percorso utente proceda. Con il profilo tecnico di convalida, viene visualizzato un messaggio di errore in una pagina autocertificata. Profilo tecnico:
- Non fornisce un'interfaccia per interagire con l'utente. L'interfaccia utente viene invece chiamata da un profilo tecnico autocertificato o da un controllo visualizzato come profilo tecnico di convalida.
- Usa il servizio di autenticazione a più fattori Microsoft Entra per generare e inviare un codice a un numero di telefono e quindi verifica il codice.
- Convalida un numero di telefono tramite SMS.
Il profilo tecnico fornisce metodi per inviare il codice di verifica tramite SMS sms e verificare il codice. Lo screenshot seguente mostra il flusso di verifica del telefono.
Inviare SMS
Per verificare un telefono, il primo passaggio genera un codice e lo invia al numero di telefono. Per questo passaggio è possibile configurare le opzioni seguenti.
Attestazioni di input
L'elemento InputClaims contiene un elenco di attestazioni da inviare all'autenticazione a più fattori Di Microsoft Entra. È anche possibile eseguire il mapping del nome dell'attestazione al nome definito nel profilo tecnico MFA.
ClaimReferenceId | Richiesto | Descrizione |
---|---|---|
userPrincipalName |
Sì | Identificatore dell'utente proprietario del numero di telefono. |
phoneNumber |
Sì | Numero di telefono a cui inviare un codice SMS. |
companyName |
No | Nome della società nell'SMS. Se non specificato, viene usato il nome dell'applicazione. |
locale |
No | Impostazioni locali dell'SMS. Se non specificato, vengono usate le impostazioni locali del browser dell'utente. |
Attestazioni di output
Il provider del protocollo di autenticazione a più fattori Microsoft Entra non restituisce attestazioni di output, quindi non è necessario specificare le attestazioni di output.
Metadati UFX
L'elemento Metadata contiene l'attributo seguente.
Attributo | Richiesto | Descrizione |
---|---|---|
Operation |
Sì | Deve essere OneWaySMS . |
Elementi dell'interfaccia utente
I metadati seguenti possono essere usati per configurare i messaggi di errore visualizzati durante l'invio di un errore SMS. I metadati devono essere configurati nel profilo tecnico autocertificato . I messaggi di errore possono essere localizzati.
Attributo | Richiesto | Descrizione |
---|---|---|
UserMessageIfCouldntSendSms |
No | Messaggio di errore dell'utente se il numero di telefono specificato non accetta SMS. |
UserMessageIfInvalidFormat |
No | Messaggio di errore dell'utente se il numero di telefono specificato non è un numero di telefono valido. |
UserMessageIfServerError |
No | Messaggio di errore dell'utente se il server ha rilevato un errore interno. |
UserMessageIfThrottled |
No | Messaggio di errore dell'utente se una richiesta è stata limitata. |
Esempio: inviare un SMS
Nell'esempio seguente viene illustrato un profilo tecnico di autenticazione a più fattori Microsoft Entra ID usato per inviare un codice tramite SMS.
<TechnicalProfile Id="AzureMfa-SendSms">
<DisplayName>Send Sms</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">OneWaySMS</Item>
</Metadata>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CombinePhoneAndCountryCode" />
<InputClaimsTransformation ReferenceId="ConvertStringToPhoneNumber" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
<InputClaim ClaimTypeReferenceId="fullPhoneNumber" PartnerClaimType="phoneNumber" />
</InputClaims>
</TechnicalProfile>
Verifica il codice
Il passaggio di verifica del codice verifica un codice inviato all'utente. Per questo passaggio è possibile configurare le opzioni seguenti.
Attestazioni di input
L'elemento InputClaims contiene un elenco di attestazioni da inviare all'autenticazione a più fattori Di Microsoft Entra. È anche possibile eseguire il mapping del nome dell'attestazione al nome definito nel profilo tecnico MFA.
ClaimReferenceId | Richiesto | Descrizione |
---|---|---|
phoneNumber |
Sì | Stesso numero di telefono usato in precedenza per inviare un codice. Viene usato anche per individuare una sessione di verifica tramite telefono. |
verificationCode |
Sì | Codice di verifica fornito dall'utente da verificare |
Attestazioni di output
Il provider del protocollo di autenticazione a più fattori Microsoft Entra non restituisce attestazioni di output, quindi non è necessario specificare le attestazioni di output.
Metadati UFX
L'elemento Metadata contiene l'attributo seguente.
Attributo | Richiesto | Descrizione |
---|---|---|
Operation |
Sì | Deve essere Verify . |
Elementi dell'interfaccia utente
I metadati seguenti possono essere usati per configurare i messaggi di errore visualizzati in caso di errore di verifica del codice. I metadati devono essere configurati nel profilo tecnico autocertificato . I messaggi di errore possono essere localizzati.
Attributo | Richiesto | Descrizione |
---|---|---|
UserMessageIfMaxAllowedCodeRetryReached |
No | Messaggio di errore dell'utente se l'utente ha tentato un codice di verifica troppe volte. |
UserMessageIfServerError |
No | Messaggio di errore dell'utente se il server ha rilevato un errore interno. |
UserMessageIfThrottled |
No | Messaggio di errore dell'utente se la richiesta è limitata. |
UserMessageIfWrongCodeEntered |
No | Messaggio di errore dell'utente se il codice immesso per la verifica non è corretto. |
Esempio: verificare un codice
Nell'esempio seguente viene illustrato un profilo tecnico di autenticazione a più fattori di Microsoft Entra ID usato per verificare il codice.
<TechnicalProfile Id="AzureMfa-VerifySms">
<DisplayName>Verify Sms</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">Verify</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="phoneNumber" PartnerClaimType="phoneNumber" />
<InputClaim ClaimTypeReferenceId="verificationCode" />
</InputClaims>
</TechnicalProfile>
Modalità TOTP
In questa modalità, l'utente deve installare qualsiasi app di autenticazione che supporti la verifica della password monouso (TOTP) basata sul tempo, ad esempio l'app Microsoft Authenticator, in un dispositivo di cui è proprietario.
Durante la prima iscrizione o l'accesso, l'utente analizza un codice a matrice, apre un collegamento diretto o immette il codice manualmente usando l'app di autenticazione. Per verificare il codice TOTP, usare il metodo Begin verify OTP seguito da Verify TOTP validation technical profiles (Verifica profili tecnici di convalida TOTP ).
Per gli accessi successivi, usare il metodo Ottieni dispositivi disponibili per verificare se l'utente ha già registrato il dispositivo. Se il numero di dispositivi disponibili è maggiore di zero, indica che l'utente ha registrato prima. In questo caso, l'utente deve digitare il codice TOTP visualizzato nell'app di autenticazione.
Profilo tecnico:
- Non fornisce un'interfaccia per interagire con l'utente. L'interfaccia utente viene invece chiamata da un profilo tecnico autocertificato , con i controlli di visualizzazione TOTP.
- Usa il servizio di autenticazione a più fattori Microsoft Entra per convalidare il codice TOTP.
- Controlla se un utente ha già registrato il dispositivo.
Lo screenshot seguente mostra un flusso di registrazione e verifica TOTP. Inizia controllando il numero di dispositivi disponibili. Se il numero di dispositivi disponibili è zero, l'utente esegue il passaggio di orchestrazione della registrazione. In caso contrario, l'utente esegue il passaggio di orchestrazione della verifica.
Ottenere i dispositivi disponibili
La modalità di dispositivo disponibile verifica il numero di dispositivi disponibili per l'utente. Se il numero di dispositivi disponibili è zero, indica che l'utente non è ancora registrato.
Attestazioni di input
L'elemento InputClaims contiene un elenco di attestazioni da inviare all'autenticazione a più fattori Di Microsoft Entra. È anche possibile eseguire il mapping del nome dell'attestazione al nome definito nel profilo tecnico MFA.
ClaimReferenceId | Richiesto | Descrizione |
---|---|---|
userPrincipalName |
Sì | Nome dell'entità utente. |
Attestazioni di output
L'elemento delle attestazioni di output contiene un elenco di attestazioni da restituire dall'autenticazione a più fattori Di Microsoft Entra. È anche possibile eseguire il mapping del nome dell'attestazione al nome definito nel profilo tecnico MFA.
ClaimReferenceId | Richiesto | Descrizione |
---|---|---|
numberOfAvailableDevices |
Sì | Numero di dispositivi disponibili per l'utente. |
Metadati UFX
L'elemento Metadata contiene l'attributo seguente.
Attributo | Richiesto | Descrizione |
---|---|---|
Operation |
Sì | Deve essere GetAvailableDevices . |
Esempio: Ottenere i dispositivi disponibili
L'esempio seguente mostra un profilo tecnico di autenticazione a più fattori di Microsoft Entra ID usato per ottenere il numero di dispositivi disponibili.
<TechnicalProfile Id="AzureMfa-GetAvailableDevices">
<DisplayName>Get Available Devices</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">GetAvailableDevices</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="numberOfAvailableDevices" />
</OutputClaims>
</TechnicalProfile>
Iniziare a verificare TOTP
La verifica di inizio TOTP avvia il processo di verifica. Questo profilo tecnico di convalida viene chiamato dal profilo tecnico autocertifiato che presenta e verifica i codici TOTP. Questo profilo tecnico di convalida deve essere seguito da una chiamata a Verifica profili tecnici di convalida TOTP .
Attestazioni di input
L'elemento InputClaims contiene un elenco di attestazioni da inviare all'autenticazione a più fattori Di Microsoft Entra. È anche possibile eseguire il mapping del nome dell'attestazione al nome definito nel profilo tecnico MFA.
ClaimReferenceId | Richiesto | Descrizione |
---|---|---|
userPrincipalName |
Sì | Nome dell'entità utente. |
objectId |
Sì | ID oggetto utente. |
secretKey |
Sì | Chiave privata dell'utente. Questa chiave viene archiviata nel profilo dell'utente nella directory di Azure AD B2C e viene condivisa con l'app di autenticazione. L'app di autenticazione usa il segreto per generare il codice TOTP. Questo profilo tecnico usa il segreto per verificare il codice TOTP. |
Attestazioni di output
Il provider del protocollo di autenticazione a più fattori Microsoft Entra non restituisce attestazioni di output, quindi non è necessario specificare le attestazioni di output.
Metadati UFX
L'elemento Metadata contiene l'attributo seguente.
Attributo | Richiesto | Descrizione |
---|---|---|
Operation |
Sì | Deve essere BeginVerifyOTP . |
Esempio: Iniziare a verificare TOTP
Nell'esempio seguente viene illustrato un profilo tecnico di autenticazione a più fattori di Microsoft Entra ID usato per avviare il processo di verifica TOTP.
<TechnicalProfile Id="AzureMfa-BeginVerifyOTP">
<DisplayName>Begin verify TOTP"</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">BeginVerifyOTP</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="secretKey" />
<InputClaim ClaimTypeReferenceId="objectId" />
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
</InputClaims>
</TechnicalProfile>
Verificare TOTP
Il metodo verify TOTP verifica un codice TOTP. Questo profilo tecnico di convalida viene chiamato dal profilo tecnico autocertifiato che presenta e verifica i codici TOTP. Questo profilo tecnico di convalida deve essere preceduto da una chiamata ai profili tecnici di convalida TOTP begin verify.
Attestazioni di input
L'elemento InputClaims contiene un elenco di attestazioni da inviare all'autenticazione a più fattori Di Microsoft Entra. È anche possibile eseguire il mapping del nome dell'attestazione al nome definito nel profilo tecnico MFA.
ClaimReferenceId | Richiesto | Descrizione |
---|---|---|
otpCode |
Sì | Codice TOTP fornito dall'utente. |
Attestazioni di output
Il provider del protocollo di autenticazione a più fattori Microsoft Entra non restituisce attestazioni di output, quindi non è necessario specificare le attestazioni di output.
Metadati UFX
L'elemento Metadata contiene l'attributo seguente.
Attributo | Richiesto | Descrizione |
---|---|---|
Operation |
Sì | Deve essere VerifyOTP . |
Esempio: Verificare TOTP
L'esempio seguente mostra un profilo tecnico di autenticazione a più fattori di Microsoft Entra ID usato per verificare un codice TOTP.
<TechnicalProfile Id="AzureMfa-VerifyOTP">
<DisplayName>Verify OTP</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">VerifyOTP</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="otpCode" />
</InputClaims>
</TechnicalProfile>