Menentukan profil teknis autentikasi multifaktor ID Microsoft Entra dalam kebijakan kustom Azure AD B2C

Azure Active Directory B2C (Azure AD B2C) memberikan dukungan untuk memverifikasi nomor telepon dengan menggunakan kode verifikasi, atau memverifikasi kode Kata Sandi Sekali Pakai Waktu Terbatas (TOTP).

Protokol

Atribut Nama dari elemen Protokol perlu diatur ke Proprietary. Atribut handler harus berisi nama yang sepenuhnya memenuhi syarat dari perakitan handler protokol yang digunakan oleh Azure AD B2C:

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

Contoh berikut menunjukkan profil teknis autentikasi multifaktor ID Microsoft Entra:

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

Mode verifikasi telepon

Dalam mode verifikasi telepon, profil teknis menghasilkan dan mengirim kode ke nomor telepon, lalu memverifikasi kode. Profil teknis autentikasi multifaktor ID Microsoft Entra juga dapat mengembalikan pesan kesalahan. Profil teknis validasi memvalidasi data yang disediakan pengguna sebelum perjalanan berlanjut. Dengan profil teknis validasi, pesan kesalahan ditampilkan di halaman yang dibuat sendiri. Profil teknis:

  • Tidak menyediakan antarmuka untuk berinteraksi dengan pengguna. Sebaliknya, antarmuka pengguna dipanggil dari profil teknis self-asserted, atau kendali tampilan sebagai profil teknis validasi.
  • Menggunakan layanan autentikasi multifaktor Microsoft Entra untuk menghasilkan dan mengirim kode ke nomor telepon, lalu memverifikasi kode.
  • Memvalidasi nomor telepon melalui pesan teks.

Profil teknis menyediakan metode untuk mengirim kode verifikasi melalui pesan teks SMS, dan memverifikasi kode. Cuplikan layar berikut menunjukkan alur pemverifikasi telepon.

Screenshot showing TOTP flow

Mengirim SMS

Untuk memverifikasi telepon, langkah pertama menghasilkan kode dan mengirimkannya ke nomor telepon. Opsi berikut dapat dikonfigurasi untuk langkah ini.

Klaim input

Elemen InputClaims berisi daftar klaim untuk dikirim ke autentikasi multifaktor Microsoft Entra. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan dalam profil teknis MFA.

ClaimReferenceId Wajib Deskripsi
userPrincipalName Ya Pengidentifikasi untuk pengguna yang memiliki nomor telepon.
phoneNumber Ya Nomor telepon tujuan pengiriman kode SMS.
companyName Tidak Nama perusahaan dalam SMS. Jika tidak disediakan, nama aplikasi Anda digunakan.
locale Tidak Lokal SMS. Jika tidak disediakan, lokal browser pengguna digunakan.

Klaim output

Penyedia protokol autentikasi multifaktor Microsoft Entra tidak mengembalikan klaim output apa pun, sehingga tidak perlu menentukan klaim output.

Metadata

Elemen Metadata berisi atribut berikut ini.

Atribut Wajib Deskripsi
Operation Ya Harus berupa OneWaySMS .
Elemen antarmuka pengguna

Metadata berikut dapat digunakan untuk mengonfigurasi pesan kesalahan yang ditampilkan saat kegagalan mengirim SMS. Metadata harus dikonfigurasi dalam profil teknis yang dibuat sendiri. Pesan kesalahan dapat dilokalisasi.

Atribut Wajib Deskripsi
UserMessageIfCouldntSendSms Tidak Pesan kesalahan pengguna jika nomor telepon yang disediakan tidak menerima SMS.
UserMessageIfInvalidFormat Tidak Pesan kesalahan pengguna jika nomor telepon yang disediakan bukan nomor telepon yang valid.
UserMessageIfServerError Tidak Pesan kesalahan pengguna jika server mengalami Pesan kesalahan internal.
UserMessageIfThrottled Tidak Pesan kesalahan pengguna jika permintaan telah dibatasi.

Contoh: mengirim SMS

Contoh berikut menunjukkan profil teknis autentikasi multifaktor ID Microsoft Entra yang digunakan untuk mengirim kode melalui 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>

Verifikasi kode

Langkah kode verifikasi akan memverifikasi kode yang dikirim ke pengguna. Opsi berikut dapat dikonfigurasi untuk langkah ini.

Klaim input

Elemen InputClaims berisi daftar klaim untuk dikirim ke autentikasi multifaktor Microsoft Entra. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan dalam profil teknis MFA.

ClaimReferenceId Wajib Deskripsi
phoneNumber Ya Nomor telepon yang sama seperti yang digunakan sebelumnya untuk mengirim kode. Ini juga digunakan untuk menemukan sesi verifikasi telepon.
verificationCode Ya Kode verifikasi yang disediakan oleh pengguna untuk diverifikasi

Klaim output

Penyedia protokol autentikasi multifaktor Microsoft Entra tidak mengembalikan klaim output apa pun, sehingga tidak perlu menentukan klaim output.

Metadata

Elemen Metadata berisi atribut berikut ini.

Atribut Wajib Deskripsi
Operation Ya Harus berupa Verify .
Elemen antarmuka pengguna

Metadata berikut dapat digunakan untuk mengkonfigurasi pesan kesalahan yang ditampilkan saat kegagalan verifikasi kode. Metadata harus dikonfigurasi dalam profil teknis yang dibuat sendiri. Pesan kesalahan dapat dilokalisasi.

Atribut Wajib Deskripsi
UserMessageIfMaxAllowedCodeRetryReached Tidak Pesan kesalahan pengguna jika pengguna terlalu sering mencoba kode verifikasi.
UserMessageIfServerError Tidak Pesan kesalahan pengguna jika server mengalami Pesan kesalahan internal.
UserMessageIfThrottled Tidak Pesan kesalahan pengguna jika permintaan dibatasi.
UserMessageIfWrongCodeEntered Tidak Pesan kesalahan pengguna jika kode yang dimasukkan untuk verifikasi salah.

Contoh: memverifikasi kode

Contoh berikut menunjukkan profil teknis autentikasi multifaktor ID Microsoft Entra yang digunakan untuk memverifikasi kode.

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

Mode TOTP

Dalam mode ini, pengguna diminta untuk menginstal aplikasi pengautentikasi apa pun yang mendukung verifikasi kata sandi sekali pakai waktu terbatas (TOTP), seperti aplikasi Microsoft Authenticator, pada perangkat yang mereka miliki.

Selama pendaftaran atau masuk pertama, pengguna memindai kode QR, membuka tautan dalam, atau memasukkan kode secara manual menggunakan aplikasi pengautentikasi. Untuk memverifikasi kode TOTP, gunakan Mulai verifikasi OTP diikuti dengan Verifikasi TOTP profil teknis validasi.

Untuk proses masuk berikutnya, gunakan metode Dapatkan perangkat yang tersedia untuk memeriksa apakah pengguna telah mendaftarkan perangkat mereka. Jika jumlah perangkat yang tersedia lebih dari nol, ini menunjukkan pengguna telah mendaftar sebelumnya. Dalam hal ini, pengguna perlu mengetik kode TOTP yang muncul di aplikasi pengautentikasi.

Profil teknis:

  • Tidak menyediakan antarmuka untuk berinteraksi dengan pengguna. Sebagai gantinya, antarmuka pengguna dipanggil dari profil teknis yang dibuat sendiri, dengan kontrol tampilan TOTP.
  • Menggunakan layanan autentikasi multifaktor Microsoft Entra untuk memvalidasi kode TOTP.
  • Periksa apakah pengguna telah mendaftarkan perangkat mereka.

Cuplikan layar berikut menunjukkan alur pendaftaran dan verifikasi TOTP. Langkahnya dimulai dengan memeriksa jumlah perangkat yang tersedia. Jika jumlah perangkat yang tersedia adalah nol, pengguna melewati langkah orkestrasi pendaftaran. Jika tidak, pengguna melewati langkah orkestrasi verifikasi.

Screenshot showing TOTP flow.

Mendapatkan perangkat yang tersedia

Mode dapatkan perangkat yang tersedia memeriksa jumlah perangkat yang tersedia untuk pengguna. Jika jumlah perangkat yang tersedia adalah nol, ini menunjukkan pengguna belum terdaftar.

Klaim input

Elemen InputClaims berisi daftar klaim untuk dikirim ke autentikasi multifaktor Microsoft Entra. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan dalam profil teknis MFA.

ClaimReferenceId Wajib Deskripsi
userPrincipalName Ya Nama prinsipal pengguna.

Klaim output

Elemen klaim output berisi daftar klaim yang akan dikembalikan dari autentikasi multifaktor Microsoft Entra. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan dalam profil teknis MFA.

ClaimReferenceId Wajib Deskripsi
numberOfAvailableDevices Ya Jumlah perangkat yang tersedia untuk pengguna.

Metadata

Elemen Metadata berisi atribut berikut ini.

Atribut Wajib Deskripsi
Operation Ya Harus berupa GetAvailableDevices .

Contoh: Get available devices

Contoh berikut menunjukkan profil teknis autentikasi multifaktor ID Microsoft Entra yang digunakan untuk mendapatkan jumlah perangkat yang tersedia.

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

Langkah Begin verify TOTP memulai proses verifikasi. Profil teknis validasi ini dipanggil dari profil teknis yang dinyatakan secara mandiri yang menyajikan dan memverifikasi kode TOTP. Profil teknis validasi ini harus diikuti dengan panggilan untuk Verifikasi profil teknis validasi TOTP.

Klaim input

Elemen InputClaims berisi daftar klaim untuk dikirim ke autentikasi multifaktor Microsoft Entra. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan dalam profil teknis MFA.

ClaimReferenceId Wajib Deskripsi
userPrincipalName Ya Nama prinsipal pengguna.
objectId Ya ID objek pengguna.
secretKey Ya Kunci rahasia pengguna. Kunci ini disimpan di profil pengguna di direktori Active Directory B2C dan dibagikan dengan aplikasi pengautentikasi. Aplikasi pengautentikasi menggunakan rahasia untuk menghasilkan kode TOTP. Profil teknis ini menggunakan rahasia untuk memverifikasi kode TOTP.

Klaim output

Penyedia protokol autentikasi multifaktor Microsoft Entra tidak mengembalikan klaim output apa pun, sehingga tidak perlu menentukan klaim output.

Metadata

Elemen Metadata berisi atribut berikut ini.

Atribut Wajib Deskripsi
Operation Ya Harus berupa BeginVerifyOTP .

Contoh: Begin verify TOTP

Contoh berikut menunjukkan profil teknis autentikasi multifaktor ID Microsoft Entra yang digunakan untuk memulai proses verifikasi 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>

Verify TOTP

Metode Verify TOTP memverifikasi kode TOTP. Profil teknis validasi ini dipanggil dari profil teknis yang dinyatakan secara mandiri yang menyajikan dan memverifikasi kode TOTP. Profil teknis validasi ini harus diikuti dengan panggilan ke profil teknis validasi Begin Verify TOTP.

Klaim input

Elemen InputClaims berisi daftar klaim untuk dikirim ke autentikasi multifaktor Microsoft Entra. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan dalam profil teknis MFA.

ClaimReferenceId Wajib Deskripsi
otpCode Ya Kode TOTP yang disediakan oleh pengguna.

Klaim output

Penyedia protokol autentikasi multifaktor Microsoft Entra tidak mengembalikan klaim output apa pun, sehingga tidak perlu menentukan klaim output.

Metadata

Elemen Metadata berisi atribut berikut ini.

Atribut Wajib Deskripsi
Operation Ya Harus berupa VerifyOTP .

Contoh: Verify TOTP

Contoh berikut menunjukkan profil teknis autentikasi multifaktor ID Microsoft Entra yang digunakan untuk memverifikasi kode 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>

Langkah berikutnya