Een technisch profiel voor meervoudige verificatie voor Microsoft Entra ID definiëren in een aangepast Azure AD B2C-beleid

Azure Active Directory B2C (Azure AD B2C) biedt ondersteuning voor het verifiëren van een telefoonnummer met behulp van een verificatiecode of het verifiëren van een TOTP-code (Time-based One-time Password).

Protocol

Het kenmerk Naam van het element Protocol moet worden ingesteld op Proprietary. Het kenmerk handler moet de volledig gekwalificeerde naam bevatten van de protocolhandlerassembly die wordt gebruikt door Azure AD B2C:

Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

In het volgende voorbeeld ziet u een technisch profiel voor meervoudige verificatie van 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" />
    ...

Telefoonmodus verifiëren

In de verificatiemodus genereert en verzendt het technische profiel een code naar een telefoonnummer en controleert het vervolgens de code. Het technische profiel voor meervoudige verificatie van Microsoft Entra ID kan ook een foutbericht retourneren. Het technische validatieprofiel valideert de door de gebruiker verstrekte gegevens voordat het gebruikerstraject wordt voortgezet. Met het technische validatieprofiel wordt een foutbericht weergegeven op een zelf-gecontroleerde pagina. Het technische profiel:

  • Biedt geen interface voor interactie met de gebruiker. In plaats daarvan wordt de gebruikersinterface aangeroepen vanuit een zelf-gecontroleerd technisch profiel of een weergavebesturingselement als een validatie technisch profiel.
  • Maakt gebruik van de Multi-Factor Authentication-service van Microsoft Entra om een code te genereren en te verzenden naar een telefoonnummer en verifieert vervolgens de code.
  • Valideert een telefoonnummer via sms-berichten.

Het technische profiel biedt methoden voor het verzenden van de verificatiecode via sms-bericht en het verifiëren van de code. In de volgende schermafbeelding wordt de stroom van de telefoonverificatie weergegeven.

Screenshot showing TOTP flow

Sms verzenden

Als u een telefoon wilt verifiëren, genereert de eerste stap een code en verzendt deze naar het telefoonnummer. De volgende opties kunnen voor deze stap worden geconfigureerd.

Invoerclaims

Het element InputClaims bevat een lijst met claims die naar Microsoft Entra-meervoudige verificatie moeten worden verzonden. U kunt ook de naam van uw claim toewijzen aan de naam die is gedefinieerd in het technische MFA-profiel.

ClaimReferenceId Vereist Omschrijving
userPrincipalName Ja De id voor de gebruiker die eigenaar is van het telefoonnummer.
phoneNumber Ja Het telefoonnummer om een sms-code naar te verzenden.
companyName Nee De bedrijfsnaam in de sms. Als deze niet is opgegeven, wordt de naam van uw toepassing gebruikt.
locale Nee De landinstelling van de sms. Als dit niet wordt opgegeven, wordt de landinstelling van de browser van de gebruiker gebruikt.

Uitvoerclaims

De Provider van het Microsoft Entra-protocol voor meervoudige verificatie retourneert geen uitvoerclaims, dus u hoeft geen uitvoerclaims op te geven.

Metagegevens

Het element Metagegevens bevat het volgende kenmerk.

Kenmerk Vereist Omschrijving
Operation Ja Moet OneWaySMS zijn.
UI-elementen

De volgende metagegevens kunnen worden gebruikt om de foutberichten te configureren die worden weergegeven bij het verzenden van sms-fouten. De metagegevens moeten worden geconfigureerd in het zelf-gecontroleerde technische profiel. De foutberichten kunnen worden gelokaliseerd.

Kenmerk Vereist Beschrijving
UserMessageIfCouldntSendSms Nee Foutbericht van de gebruiker als het opgegeven telefoonnummer geen sms accepteert.
UserMessageIfInvalidFormat Nee Foutbericht van de gebruiker als het opgegeven telefoonnummer geen geldig telefoonnummer is.
UserMessageIfServerError Nee Foutbericht van de gebruiker als er een interne fout is opgetreden op de server.
UserMessageIfThrottled Nee Foutbericht van de gebruiker als een aanvraag is beperkt.

Voorbeeld: een sms verzenden

In het volgende voorbeeld ziet u een technisch profiel voor meervoudige verificatie van Microsoft Entra ID dat wordt gebruikt om een code via sms te verzenden.

<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>

Code verifiëren

Met de stap code verifiëren wordt een code geverifieerd die naar de gebruiker is verzonden. De volgende opties kunnen voor deze stap worden geconfigureerd.

Invoerclaims

Het element InputClaims bevat een lijst met claims die naar Microsoft Entra-meervoudige verificatie moeten worden verzonden. U kunt ook de naam van uw claim toewijzen aan de naam die is gedefinieerd in het technische MFA-profiel.

ClaimReferenceId Vereist Omschrijving
phoneNumber Ja Hetzelfde telefoonnummer als voorheen voor het verzenden van een code. Het wordt ook gebruikt om een telefoonverificatiesessie te vinden.
verificationCode Ja De verificatiecode die de gebruiker heeft verstrekt om te worden geverifieerd

Uitvoerclaims

De Provider van het Microsoft Entra-protocol voor meervoudige verificatie retourneert geen uitvoerclaims, dus u hoeft geen uitvoerclaims op te geven.

Metagegevens

Het element Metagegevens bevat het volgende kenmerk.

Kenmerk Vereist Omschrijving
Operation Ja Moet Verify zijn.
UI-elementen

De volgende metagegevens kunnen worden gebruikt om de foutberichten te configureren die worden weergegeven bij het mislukken van een codeverificatie. De metagegevens moeten worden geconfigureerd in het zelf-gecontroleerde technische profiel. De foutberichten kunnen worden gelokaliseerd.

Kenmerk Vereist Beschrijving
UserMessageIfMaxAllowedCodeRetryReached Nee Foutbericht van de gebruiker als de gebruiker te vaak een verificatiecode heeft geprobeerd.
UserMessageIfServerError Nee Foutbericht van de gebruiker als er een interne fout is opgetreden op de server.
UserMessageIfThrottled Nee Foutbericht van de gebruiker als de aanvraag wordt beperkt.
UserMessageIfWrongCodeEntered Nee Foutbericht van de gebruiker als de code die is ingevoerd voor verificatie onjuist is.

Voorbeeld: een code verifiëren

In het volgende voorbeeld ziet u een technisch profiel voor meervoudige verificatie van Microsoft Entra ID dat wordt gebruikt om de code te verifiëren.

<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>

TOTP-modus

In deze modus moet de gebruiker een authenticator-app installeren die ondersteuning biedt voor verificatie van eenmalig wachtwoord (TOTP), zoals de Microsoft Authenticator-app op een apparaat dat de eigenaar is.

Tijdens de eerste registratie of aanmelding scant de gebruiker een QR-code, opent hij een dieptekoppeling of voert hij de code handmatig in met de authenticator-app. Als u de TOTP-code wilt controleren, gebruikt u de OTP-verificatie starten, gevolgd door TOTP verifiëren-verificatie van technische profielen.

Voor volgende aanmeldingen gebruikt u de methode Beschikbare apparaten ophalen om te controleren of de gebruiker het apparaat al heeft ingeschreven. Als het aantal beschikbare apparaten groter is dan nul, geeft dit aan dat de gebruiker zich eerder heeft geregistreerd. In dit geval moet de gebruiker de TOTP-code typen die wordt weergegeven in de verificator-app.

Het technische profiel:

  • Biedt geen interface voor interactie met de gebruiker. In plaats daarvan wordt de gebruikersinterface aangeroepen vanuit een zelf-gecontroleerd technisch profiel, met de TOTP-weergavebesturingselementen.
  • Maakt gebruik van de Microsoft Entra-service voor meervoudige verificatie om de TOTP-code te valideren.
  • Controleert of een gebruiker het apparaat al heeft ingeschreven.

In de volgende schermopname ziet u een TOTP-inschrijvings- en verificatiestroom. Het begint met het controleren van het aantal beschikbare apparaten. Als het aantal beschikbare apparaten nul is, doorloopt de gebruiker de stap registratie-indeling. Anders doorloopt de gebruiker de stap verificatie-indeling.

Screenshot showing TOTP flow.

Beschikbare apparaten ophalen

Met de modus Beschikbare apparaten wordt gecontroleerd hoeveel apparaten beschikbaar zijn voor de gebruiker. Als het aantal beschikbare apparaten nul is, geeft dit aan dat de gebruiker nog niet is ingeschreven.

Invoerclaims

Het element InputClaims bevat een lijst met claims die naar Microsoft Entra-meervoudige verificatie moeten worden verzonden. U kunt ook de naam van uw claim toewijzen aan de naam die is gedefinieerd in het technische MFA-profiel.

ClaimReferenceId Vereist Omschrijving
userPrincipalName Ja De UPN (user principal name).

Uitvoerclaims

Het element uitvoerclaims bevat een lijst met claims die moeten worden geretourneerd door Meervoudige Verificatie van Microsoft Entra. U kunt ook de naam van uw claim toewijzen aan de naam die is gedefinieerd in het technische MFA-profiel.

ClaimReferenceId Vereist Omschrijving
numberOfAvailableDevices Ja Het aantal beschikbare apparaten voor de gebruiker.

Metagegevens

Het element Metagegevens bevat het volgende kenmerk.

Kenmerk Vereist Omschrijving
Operation Ja Moet GetAvailableDevices zijn.

Voorbeeld: Beschikbare apparaten ophalen

In het volgende voorbeeld ziet u een technisch profiel voor meervoudige verificatie van Microsoft Entra ID dat wordt gebruikt om het aantal beschikbare apparaten op te halen.

<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>

Begin met verificatie van TOTP

De Begin met verificatie van TOTP start het verificatieproces. Dit technische verificatieprofiel wordt aangeroepen vanuit het zelf-gecontroleerde technische profiel dat TOTP-codes presenteert en verifieert. Dit technische verificatieprofiel moet worden gevolgd door een aanroep om technische profielen voor TOTP-validatie te verifiëren.

Invoerclaims

Het element InputClaims bevat een lijst met claims die naar Microsoft Entra-meervoudige verificatie moeten worden verzonden. U kunt ook de naam van uw claim toewijzen aan de naam die is gedefinieerd in het technische MFA-profiel.

ClaimReferenceId Vereist Omschrijving
userPrincipalName Ja De UPN (user principal name).
objectId Ja De gebruikersobject-id.
secretKey Ja De geheime sleutel van de gebruiker. Deze sleutel wordt opgeslagen in het profiel van de gebruiker in de Azure AD B2C-directory en wordt gedeeld met de authenticator-app. De authenticator-app gebruikt het geheim om de TOTP-code te genereren. Dit technische profiel maakt gebruik van het geheim om de TOTP-code te verifiëren.

Uitvoerclaims

De Provider van het Microsoft Entra-protocol voor meervoudige verificatie retourneert geen uitvoerclaims, dus u hoeft geen uitvoerclaims op te geven.

Metagegevens

Het element Metagegevens bevat het volgende kenmerk.

Kenmerk Vereist Omschrijving
Operation Ja Moet BeginVerifyOTP zijn.

Voorbeeld: Begin met verificatie van TOTP

In het volgende voorbeeld ziet u een technisch profiel voor meervoudige verificatie van Microsoft Entra ID dat wordt gebruikt om het TOTP-verificatieproces te starten.

<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>

TOTP verifiëren

Met de TOTP-methode wordt een TOTP-code geverifieerd. Dit technische verificatieprofiel wordt aangeroepen vanuit het zelf-gecontroleerde technische profiel dat TOTP-codes presenteert en verifieert. Dit technische verificatieprofiel moet vooraf worden gegaan door een aanroep naar de verificatie van technische profielen via Begin met verificatie van TOTP.

Invoerclaims

Het element InputClaims bevat een lijst met claims die naar Microsoft Entra-meervoudige verificatie moeten worden verzonden. U kunt ook de naam van uw claim toewijzen aan de naam die is gedefinieerd in het technische MFA-profiel.

ClaimReferenceId Vereist Omschrijving
otpCode Ja De TOTP-code van de gebruiker.

Uitvoerclaims

De Provider van het Microsoft Entra-protocol voor meervoudige verificatie retourneert geen uitvoerclaims, dus u hoeft geen uitvoerclaims op te geven.

Metagegevens

Het element Metagegevens bevat het volgende kenmerk.

Kenmerk Vereist Omschrijving
Operation Ja Moet VerifyOTP zijn.

Voorbeeld: TOTP controleren

In het volgende voorbeeld ziet u een technisch profiel voor meervoudige verificatie van Microsoft Entra ID dat wordt gebruikt om een TOTP-code te verifiëren.

<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>

Volgende stappen