Dela via


Definiera en teknisk profil för Microsoft Entra-ID för multifaktorautentisering i en anpassad Azure AD B2C-princip

Azure Active Directory B2C (Azure AD B2C) har stöd för att verifiera ett telefonnummer med hjälp av en verifieringskod eller verifiera en tidsbaserad engångslösenordkod (TOTP).

Protokoll

Attributet Namn för protokollelementet måste anges till Proprietary. Hanterarattributet måste innehålla det fullständigt kvalificerade namnet på protokollhanterarsammansättningen som används av Azure AD B2C:

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

I följande exempel visas en teknisk profil för Microsoft Entra-ID för multifaktorautentisering:

<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" />
    ...

Verifiera telefonläge

I verifieringstelefonläget genererar och skickar den tekniska profilen en kod till ett telefonnummer och verifierar sedan koden. Den tekniska profilen för Multifaktorautentisering för Microsoft Entra-ID kan också returnera ett felmeddelande. Den tekniska valideringsprofilen validerar användardata innan användarresan fortsätter. Med den tekniska verifieringsprofilen visas ett felmeddelande på en självsäkrad sida. Den tekniska profilen:

  • Tillhandahåller inte något gränssnitt för att interagera med användaren. I stället anropas användargränssnittet från en självkontrollerad teknisk profil eller en visningskontroll som en teknisk valideringsprofil.
  • Använder multifaktorautentiseringstjänsten Microsoft Entra för att generera och skicka en kod till ett telefonnummer och verifierar sedan koden.
  • Validerar ett telefonnummer via sms.

Den tekniska profilen innehåller metoder för att skicka verifieringskoden via SMS och verifiera koden. Följande skärmbild visar flödet för telefonverifierare.

Screenshot showing TOTP flow

Skicka SMS

För att verifiera en telefon genererar det första steget en kod och skickar den till telefonnumret. Följande alternativ kan konfigureras för det här steget.

Indataanspråk

Elementet InputClaims innehåller en lista över anspråk som ska skickas till Microsoft Entra multifaktorautentisering. Du kan också mappa namnet på anspråket till det namn som definierats i MFA:s tekniska profil.

ClaimReferenceId Obligatoriskt Beskrivning
userPrincipalName Ja Identifieraren för den användare som äger telefonnumret.
phoneNumber Ja Det telefonnummer som du vill skicka en SMS-kod till.
companyName Nej Företagsnamnet i SMS:et. Om det inte anges används namnet på ditt program.
locale Nej Språkvarianten för SMS:et. Om det inte anges används användarens webbläsarspråk.

Utdataanspråk

Microsoft Entra-multifaktorautentiseringsprotokollprovidern returnerar inga utdataanspråk, så du behöver inte ange utdataanspråk.

Metadata

Metadataelementet innehåller följande attribut.

Attribut Obligatoriskt Beskrivning
Operation Ja Måste vara OneWaySMS.
Användargränssnittselement

Följande metadata kan användas för att konfigurera de felmeddelanden som visas när SMS-fel skickas. Metadata ska konfigureras i den självsäkra tekniska profilen. Felmeddelandena kan lokaliseras.

Attribut Obligatoriskt Beskrivning
UserMessageIfCouldntSendSms Nej Användarens felmeddelande om det angivna telefonnumret inte accepterar SMS.
UserMessageIfInvalidFormat Nej Användarens felmeddelande om det angivna telefonnumret inte är ett giltigt telefonnummer.
UserMessageIfServerError Nej Användarens felmeddelande om servern har påträffat ett internt fel.
UserMessageIfThrottled Nej Användarfelmeddelande om en begäran har begränsats.

Exempel: skicka ett SMS

I följande exempel visas en teknisk profil för Microsoft Entra-ID för multifaktorautentisering som används för att skicka en kod via 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>

Verifiera koden

Verifieringskodsteget verifierar en kod som skickas till användaren. Följande alternativ kan konfigureras för det här steget.

Indataanspråk

Elementet InputClaims innehåller en lista över anspråk som ska skickas till Microsoft Entra multifaktorautentisering. Du kan också mappa namnet på anspråket till det namn som definierats i MFA:s tekniska profil.

ClaimReferenceId Obligatoriskt Beskrivning
phoneNumber Ja Samma telefonnummer som tidigare användes för att skicka en kod. Den används också för att hitta en telefonverifieringssession.
verificationCode Ja Verifieringskoden som tillhandahålls av användaren som ska verifieras

Utdataanspråk

Microsoft Entra-multifaktorautentiseringsprotokollprovidern returnerar inga utdataanspråk, så du behöver inte ange utdataanspråk.

Metadata

Metadataelementet innehåller följande attribut.

Attribut Obligatoriskt Beskrivning
Operation Ja Måste vara Verify.
Användargränssnittselement

Följande metadata kan användas för att konfigurera felmeddelandena som visas vid kodverifieringsfel. Metadata ska konfigureras i den självsäkra tekniska profilen. Felmeddelandena kan lokaliseras.

Attribut Obligatoriskt Beskrivning
UserMessageIfMaxAllowedCodeRetryReached Nej Användarens felmeddelande om användaren har försökt verifiera koden för många gånger.
UserMessageIfServerError Nej Användarens felmeddelande om servern har påträffat ett internt fel.
UserMessageIfThrottled Nej Användarens felmeddelande om begäran begränsas.
UserMessageIfWrongCodeEntered Nej Användarens felmeddelande om koden som angetts för verifiering är felaktig.

Exempel: verifiera en kod

I följande exempel visas en teknisk profil för Multifaktorautentisering för Microsoft Entra-ID som används för att verifiera koden.

<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-läge

I det här läget måste användaren installera alla autentiseringsappar som stöder tidsbaserad engångslösenordsverifiering (TOTP), till exempel Microsoft Authenticator-appen, på en enhet som de äger.

Under den första registreringen eller inloggningen söker användaren igenom en QR-kod, öppnar en djuplänk eller anger koden manuellt med autentiseringsappen. Om du vill verifiera TOTP-koden använder du den första verifieringen av OTP följt av Verifiera tekniska TOTP-verifieringsprofiler .

För efterföljande inloggningar använder du metoden Hämta tillgängliga enheter för att kontrollera om användaren redan har registrerat sin enhet. Om antalet tillgängliga enheter är större än noll anger detta att användaren har registrerat sig tidigare. I det här fallet måste användaren ange TOTP-koden som visas i autentiseringsappen.

Den tekniska profilen:

  • Tillhandahåller inte något gränssnitt för att interagera med användaren. I stället anropas användargränssnittet från en självkontrollerad teknisk profil med TOTP-visningskontrollerna.
  • Använder multifaktorautentiseringstjänsten Microsoft Entra för att verifiera TOTP-koden.
  • Kontrollerar om en användare redan har registrerat sin enhet.

Följande skärmbild visar ett TOTP-registrerings- och verifieringsflöde. Det börjar med att kontrollera antalet tillgängliga enheter. Om antalet tillgängliga enheter är noll går användaren igenom registreringsorkestreringssteget. Annars går användaren igenom verifieringsorkestreringssteget.

Screenshot showing TOTP flow.

Hämta tillgängliga enheter

Hämta tillgängligt enhetsläge kontrollerar antalet enheter som är tillgängliga för användaren. Om antalet tillgängliga enheter är noll anger detta att användaren inte har registrerats ännu.

Indataanspråk

Elementet InputClaims innehåller en lista över anspråk som ska skickas till Microsoft Entra multifaktorautentisering. Du kan också mappa namnet på anspråket till det namn som definierats i MFA:s tekniska profil.

ClaimReferenceId Obligatoriskt Beskrivning
userPrincipalName Ja Användarens huvudnamn.

Utdataanspråk

Elementet utdataanspråk innehåller en lista över anspråk som ska returneras från Microsoft Entra multifaktorautentisering. Du kan också mappa namnet på anspråket till det namn som definierats i MFA:s tekniska profil.

ClaimReferenceId Obligatoriskt Beskrivning
numberOfAvailableDevices Ja Antalet tillgängliga enheter för användaren.

Metadata

Metadataelementet innehåller följande attribut.

Attribut Obligatoriskt Beskrivning
Operation Ja Måste vara GetAvailableDevices.

Exempel: Hämta tillgängliga enheter

I följande exempel visas en teknisk profil för Microsoft Entra-ID för multifaktorautentisering som används för att hämta antalet tillgängliga enheter.

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

Börja verifiera TOTP

Börja kontrollera att TOTP startar verifieringsprocessen. Den här tekniska valideringsprofilen anropas från den självsäkra tekniska profilen som presenterar och verifierar TOTP-koder. Den här tekniska valideringsprofilen måste följas av ett anrop till Verifiera tekniska TOTP-verifieringsprofiler .

Indataanspråk

Elementet InputClaims innehåller en lista över anspråk som ska skickas till Microsoft Entra multifaktorautentisering. Du kan också mappa namnet på anspråket till det namn som definierats i MFA:s tekniska profil.

ClaimReferenceId Obligatoriskt Beskrivning
userPrincipalName Ja Användarens huvudnamn.
objectId Ja Användarobjektets ID.
secretKey Ja Användarens hemliga nyckel. Den här nyckeln lagras i användarens profil i Azure AD B2C-katalogen och delas med autentiseringsappen. Autentiseringsappen använder hemligheten för att generera TOTP-koden. Den här tekniska profilen använder hemligheten för att verifiera TOTP-koden.

Utdataanspråk

Microsoft Entra-multifaktorautentiseringsprotokollprovidern returnerar inga utdataanspråk, så du behöver inte ange utdataanspråk.

Metadata

Metadataelementet innehåller följande attribut.

Attribut Obligatoriskt Beskrivning
Operation Ja Måste vara BeginVerifyOTP.

Exempel: Börja verifiera TOTP

I följande exempel visas en teknisk profil för Microsoft Entra-ID för multifaktorautentisering som används för att påbörja TOTP-verifieringsprocessen.

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

Verifiera TOTP

Metoden verify TOTP verifierar en TOTP-kod. Den här tekniska valideringsprofilen anropas från den självsäkra tekniska profilen som presenterar och verifierar TOTP-koder. Den här tekniska valideringsprofilen måste föregås av ett anrop till de tekniska profilerna för att verifiera TOTP-verifiering .

Indataanspråk

Elementet InputClaims innehåller en lista över anspråk som ska skickas till Microsoft Entra multifaktorautentisering. Du kan också mappa namnet på anspråket till det namn som definierats i MFA:s tekniska profil.

ClaimReferenceId Obligatoriskt Beskrivning
otpCode Ja TOTP-koden som tillhandahålls av användaren.

Utdataanspråk

Microsoft Entra-multifaktorautentiseringsprotokollprovidern returnerar inga utdataanspråk, så du behöver inte ange utdataanspråk.

Metadata

Metadataelementet innehåller följande attribut.

Attribut Obligatoriskt Beskrivning
Operation Ja Måste vara VerifyOTP.

Exempel: Verifiera TOTP

I följande exempel visas en teknisk profil för Microsoft Entra-ID för multifaktorautentisering som används för att verifiera en TOTP-kod.

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

Nästa steg