Menentukan profil teknis kata sandi satu kali dalam kebijakan kustom Azure AD B2C
Catatan
Di Azure Active Directory B2C, kebijakan kustom didesain khusus untuk menangani skenario kompleks. Untuk skenario umum, sebaiknya gunakan alur pengguna bawaan. Jika Anda belum melakukannya, pelajari tentang paket starter kebijakan kustom di Mulai dengan kebijakan kustom di Azure Active Directory B2C.
Azure Active Directory B2C (Azure AD B2C) menyediakan dukungan untuk mengelola pembuatan dan verifikasi kata sandi satu kali. Gunakan profil teknis untuk membuat kode, lalu verifikasi kode itu nanti.
Profil teknis kata sandi satu kali juga dapat mengembalikan pesan kesalahan selama verifikasi kode. Rancang integrasi dengan kata sandi satu kali dengan menggunakan Profil teknis validasi. Profil teknis validasi memanggil profil teknis kata sandi satu kali untuk memverifikasi kode. Profil teknis validasi memvalidasi data yang disediakan pengguna sebelum perjalanan berlanjut. Dengan profil teknis validasi, pesan kesalahan ditampilkan di halaman yang ditegaskan sendiri.
Protokol
Atribut Nama dari elemen Protokol perlu diatur ke Proprietary
. Atribut handler harus berisi nama yang sepenuhnya memenuhi syarat dari rakitan handler protokol yang digunakan oleh Azure AD B2C:
Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Contoh berikut menunjukkan profil teknis kata sandi satu kali:
<TechnicalProfile Id="VerifyCode">
<DisplayName>Validate user input verification code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
Membuat kode
Mode pertama dari profil teknis ini adalah membuat kode. Di bawah ini adalah opsi yang dapat dikonfigurasi untuk mode ini. Kode yang dibuat dan upaya dilacak dalam sesi.
Klaim input
Elemen InputClaims berisi daftar klaim yang diperlukan untuk dikirim ke penyedia protokol kata sandi satu kali. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan di bawah ini.
ClaimReferenceId | Diperlukan | Deskripsi |
---|---|---|
pengidentifikasi | Ya | Pengidentifikasi untuk mengidentifikasi pengguna yang perlu memverifikasi kode nanti. Ini biasanya digunakan sebagai pengidentifikasi tujuan tempat kode dikirimkan, misalnya alamat email atau nomor telepon. |
Elemen InputClaimsTransformations dapat berisi kumpulan elemen InputClaimsTransformation yang digunakan untuk mengubah klaim input atau membuat yang baru sebelum mengirim ke penyedia protokol kata sandi satu kali.
Klaim output
Elemen OutputClaims berisi daftar klaim yang dibuat oleh penyedia protokol kata sandi satu kali. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan di bawah ini.
ClaimReferenceId | Diperlukan | Deskripsi |
---|---|---|
otpGenerated | Ya | Kode yang dihasilkan yang sesinya dikelola oleh Azure AD B2C. |
Elemen OutputClaimsTransformations mungkin berisi kumpulan elemen OutputClaimsTransformation yang digunakan untuk memodifikasi klaim output atau menghasilkan yang baru.
Metadata
Pengaturan berikut dapat digunakan untuk mengonfigurasi mode pembuatan kode:
Atribut | Diperlukan | Deskripsi |
---|---|---|
Operasi | Ya | Operasi yang akan dilakukan. Nilai yang mungkin: GenerateCode . |
CodeExpirationInSeconds | Tidak | Waktu dalam detik hingga kode kedaluwarsa. Minimum: 60 ; Maksimum: 1200 ; Default: 600 . Setiap kali kode diberikan (kode yang sama menggunakan ReuseSameCode , atau kode baru), kedaluwarsa kode diperpanjang. Waktu ini juga digunakan untuk mengatur waktu tunggu coba lagi (setelah upaya maksimal tercapai, pengguna tidak dapat mencoba mendapatkan kode baru hingga waktu ini berakhir) |
CodeLength | Tidak | Panjang kode. Nilai defaultnya adalah 6 . |
CharacterSet | Tidak | Tataan karakter untuk kode, diformat untuk digunakan dalam regex. Contohnya:a-z0-9A-Z Nilai defaultnya adalah 0-9 . Tataan karakter harus menyertakan minimal 10 karakter berbeda dalam set yang ditentukan. |
NumRetryAttempts | Tidak | Jumlah upaya verifikasi sebelum kode dianggap tidak valid. Nilai defaultnya adalah 5 . Misalnya, jika Anda mengatur NumRetryAttempts ke 2, Anda hanya memiliki kesempatan untuk mencoba sebanyak 2 kali (pertama + 1 kali coba lagi). Upaya yang ke-3 akan membuang upaya maksimal yang dicapai terlepas dari apakah kodenya benar atau tidak. |
NumCodeGenerationAttempts | Tidak | Jumlah upaya pembuatan kode maksimum per pengidentifikasi. Nilai defaultnya adalah 10 jika tidak ditentukan. |
ReuseSameCode | Tidak | Apakah kode yang sama harus diberikan daripada membuat kode baru ketika kode yang diberikan belum kedaluwarsa dan masih valid. Nilai defaultnya adalah false . |
Contoh
Contoh berikut TechnicalProfile
digunakan untuk membuat kode:
<TechnicalProfile Id="GenerateCode">
<DisplayName>Generate Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">GenerateCode</Item>
<Item Key="CodeExpirationInSeconds">600</Item>
<Item Key="CodeLength">6</Item>
<Item Key="CharacterSet">0-9</Item>
<Item Key="NumRetryAttempts">5</Item>
<Item Key="NumCodeGenerationAttempts">10</Item>
<Item Key="ReuseSameCode">false</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpGenerated" />
</OutputClaims>
</TechnicalProfile>
Verifikasi kode
Mode kedua dari profil teknis ini adalah memverifikasi kode. Di bawah ini adalah opsi yang dapat dikonfigurasi untuk mode ini.
Klaim input
Elemen InputClaims berisi daftar klaim yang diperlukan untuk dikirim ke penyedia protokol kata sandi satu kali. Anda juga dapat memetakan nama klaim Anda ke nama yang ditentukan di bawah ini.
ClaimReferenceId | Diperlukan | Deskripsi |
---|---|---|
pengidentifikasi | Ya | Pengidentifikasi untuk mengidentifikasi pengguna yang sebelumnya telah menghasilkan kode. Ini biasanya digunakan sebagai pengidentifikasi tujuan tempat kode dikirimkan, misalnya alamat email atau nomor telepon. |
otpToVerify | Ya | Kode verifikasi yang disediakan oleh pengguna. |
Elemen InputClaimsTransformations dapat berisi kumpulan elemen InputClaimsTransformation yang digunakan untuk mengubah klaim input atau membuat yang baru sebelum mengirim ke penyedia protokol kata sandi satu kali.
Klaim output
Tidak ada klaim output yang diberikan selama verifikasi kode penyedia protokol ini.
Elemen OutputClaimsTransformations mungkin berisi kumpulan elemen OutputClaimsTransformation yang digunakan untuk memodifikasi klaim output atau menghasilkan yang baru.
Metadata
Pengaturan berikut dapat digunakan untuk mode verifikasi kode:
Atribut | Diperlukan | Deskripsi |
---|---|---|
Operasi | Ya | Operasi yang akan dilakukan. Nilai yang mungkin: VerifyCode . |
Elemen antarmuka pengguna
Metadata berikut dapat digunakan untuk mengkonfigurasi pesan kesalahan yang ditampilkan saat verifikasi kode gagal. Metadata harus dikonfigurasi dalam profil teknis yang self-asserted. Pesan kesalahan dapat dilokalkan.
Atribut | Diperlukan | Deskripsi |
---|---|---|
UserMessageIfSessionDoesNotExist | Tidak | Pesan untuk ditampilkan kepada pengguna jika sesi verifikasi kode telah kedaluwarsa. Ini adalah kode telah kedaluwarsa atau kode belum pernah dihasilkan untuk pengidentifikasi tertentu. |
UserMessageIfMaxRetryAttempted | Tidak | Pesan yang akan ditampilkan kepada pengguna jika mereka telah melebihi upaya verifikasi maksimum yang diizinkan. |
UserMessageIfMaxNumberOfCodeGenerated | Tidak | Pesan yang akan ditampilkan kepada pengguna jika pembuatan kode telah melebihi jumlah percobaan maksimum yang diizinkan. |
UserMessageIfInvalidCode | Tidak | Pesan yang akan ditampilkan kepada pengguna jika mereka memberikan kode yang tidak valid. |
UserMessageIfVerificationFailedRetryAllowed | Tidak | Pesan yang akan ditampilkan kepada pengguna jika mereka memberikan kode yang tidak valid, dan pengguna diizinkan untuk memberikan kode yang benar. |
UserMessageIfSessionConflict | Tidak | Pesan yang akan ditampilkan kepada pengguna jika kode tidak dapat diverifikasi. |
Contoh
Contoh berikut TechnicalProfile
digunakan untuk memverifikasi kode:
<TechnicalProfile Id="VerifyCode">
<DisplayName>Verify Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">VerifyCode</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
<InputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpToVerify" />
</InputClaims>
</TechnicalProfile>
Langkah berikutnya
Lihat artikel berikut untuk contoh penggunaan profil teknis kata sandi satu kali dengan verifikasi email kustom: