Condividi tramite


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.

Screenshot showing TOTP flow

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 Identificatore dell'utente proprietario del numero di telefono.
phoneNumber 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 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 Stesso numero di telefono usato in precedenza per inviare un codice. Viene usato anche per individuare una sessione di verifica tramite telefono.
verificationCode 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 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.

Screenshot showing TOTP flow.

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 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 Numero di dispositivi disponibili per l'utente.

Metadati UFX

L'elemento Metadata contiene l'attributo seguente.

Attributo Richiesto Descrizione
Operation 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 Nome dell'entità utente.
objectId ID oggetto utente.
secretKey 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 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 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 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>

Passaggi successivi