Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Berlaku mulai 1 Mei 2025, Azure AD B2C tidak akan lagi tersedia untuk dibeli untuk pelanggan baru. Pelajari lebih lanjut di FAQ kami.
Nota
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.
Elemen Predicates dan PredicateValidations memungkinkan Anda melakukan proses validasi untuk memastikan bahwa hanya data yang dibentuk dengan benar yang dimasukkan ke dalam penyewa Azure Active Directory B2C (Azure AD B2C) Anda.
Diagram berikut menunjukkan hubungan antara elemen:
Predikat
Elemen Predikat mendefinisikan validasi dasar untuk memeriksa nilai jenis klaim dan mengembalikan true atau false. Validasi dilakukan dengan menggunakan elemen Metode yang ditentukan dan sekumpulan elemen Parameter yang relevan dengan metode. Misalnya, predikat dapat memeriksa apakah panjang nilai klaim string berada dalam rentang parameter minimum dan maksimum yang ditentukan, atau apakah nilai klaim string berisi set karakter. Elemen UserHelpText memberikan pesan kesalahan untuk pengguna jika pemeriksaan gagal. Nilai elemen UserHelpText dapat dilokalkan menggunakan penyesuaian bahasa.
Elemen Predikat harus muncul langsung setelah elemen ClaimsSchema dalam elemen BuildingBlocks.
Elemen Predikat berisi elemen berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| Predikat | 1:n | Daftar predikat. |
Elemen Predikat berisi atribut berikut:
| Karakteristik | Diperlukan | Deskripsi |
|---|---|---|
| Nomor Identitas | Ya | Pengidentifikasi yang digunakan untuk predikat. Elemen lain dapat menggunakan pengidentifikasi ini dalam kebijakan. |
| Metode | Ya | Jenis metode yang akan digunakan untuk validasi. Nilai yang memungkinkan: IsLengthRange, MatchesRegex, IncludesCharacters, atau IsDateRange. |
| Teks Bantuan | Tidak. | Pesan kesalahan untuk pengguna jika pemeriksaan gagal. String ini dapat dilokalkan menggunakan penyesuaian bahasa |
Elemen Predikat berisi elemen-elemen berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| UserHelpText | 0:1 | (Tidak digunakan lagi) Pesan kesalahan untuk pengguna jika pemeriksaan gagal. |
| Parameter-parameternya | 1:1 | Parameter untuk jenis metode validasi string. |
Elemen Parameter berisi elemen berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| Pengaturan | 1:n | Parameter untuk jenis metode validasi string. |
Elemen Parameter berisi atribut berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| Nomor Identitas | 1:1 | Pengidentifikasi parameter. |
Metode predikat
Rentang Panjang
Metode IsLengthRange memeriksa apakah panjang nilai klaim string berada dalam rentang parameter minimum dan maksimum yang ditentukan. Lihat demo langsung dari metode predikat ini. Elemen predikat mendukung parameter berikut:
| Pengaturan | Diperlukan | Deskripsi |
|---|---|---|
| Maksimum | Ya | Jumlah maksimum karakter yang dapat dimasukkan. |
| Sekurang-kurangnya | Ya | Jumlah minimum karakter yang harus dimasukkan. |
Contoh berikut menunjukkan metode IsLengthRange dengan parameter Minimum dan Maximum yang menentukan rentang panjang string:
<Predicate Id="IsLengthBetween8And64" Method="IsLengthRange" HelpText="The password must be between 8 and 64 characters.">
<Parameters>
<Parameter Id="Minimum">8</Parameter>
<Parameter Id="Maximum">64</Parameter>
</Parameters>
</Predicate>
PertandinganRegex
Metode MatchesRegex memeriksa apakah nilai klaim string cocok dengan ekspresi reguler. Lihat demo langsung dari metode predikat ini. Elemen predikat mendukung parameter berikut:
| Pengaturan | Diperlukan | Deskripsi |
|---|---|---|
| Ekspresi Reguler | Ya | Pola ekspresi reguler yang cocok. |
Contoh berikut menunjukkan MatchesRegex metode dengan parameter RegularExpression yang menentukan ekspresi reguler:
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
TermasukKarakter
Metode IncludesCharacters memeriksa apakah nilai klaim string berisi kumpulan karakter. Lihat demo langsung dari metode predikat ini. Elemen predikat mendukung parameter berikut:
| Pengaturan | Diperlukan | Deskripsi |
|---|---|---|
| Set Karakter | Ya | Himpunan karakter yang dapat dimasukkan. Misalnya, karakter a-zhuruf kecil , karakter A-Zhuruf besar , digit 0-9, atau daftar simbol, seperti @#$%^&*\-_+=[]{}|\\:',?/~"();!. |
Contoh berikut menunjukkan IncludesCharacters metode dengan parameter CharacterSet yang menentukan kumpulan karakter:
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
Rentang TanggalIsIsDateRange
Metode IsDateRange memeriksa apakah nilai klaim tanggal berada di antara rentang parameter minimum dan maksimum yang ditentukan. Lihat demo langsung dari metode predikat ini. Elemen predikat mendukung parameter berikut:
| Pengaturan | Diperlukan | Deskripsi |
|---|---|---|
| Maksimum | Ya | Tanggal terbesar yang dapat dimasukkan. Format tanggal mengikuti yyyy-mm-dd konvensi, atau Today. |
| Sekurang-kurangnya | Ya | Tanggal sekecil mungkin yang dapat dimasukkan. Format tanggal mengikuti yyyy-mm-dd konvensi, atau Today. |
Contoh berikut menunjukkan IsDateRange metode dengan parameter Minimum dan Maximum yang menentukan rentang tanggal dengan format yyyy-mm-dd dan Today.
<Predicate Id="DateRange" Method="IsDateRange" HelpText="The date must be between 1970-01-01 and today.">
<Parameters>
<Parameter Id="Minimum">1970-01-01</Parameter>
<Parameter Id="Maximum">Today</Parameter>
</Parameters>
</Predicate>
PredikatValidasi
Sementara predikat menentukan validasi untuk memeriksa jenis klaim, PredicateValidations mengelompokkan sekumpulan predikat untuk membentuk validasi input pengguna yang dapat diterapkan ke jenis klaim. Setiap elemen PredicateValidation berisi sekumpulan elemen PredicateGroup yang berisi sekumpulan elemen PredicateReference yang menunjuk ke Predicate. Untuk lulus validasi, nilai klaim harus lulus semua pengujian predikat apa pun di bawah semua PredicateGroup dengan kumpulan elemen PredicateReference-nya .
Elemen PredicateValidations harus muncul langsung setelah elemen Predicates dalam elemen BuildingBlocks .
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
Elemen PredicateValidations berisi elemen berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| PredikatValidasi | 1:n | Daftar validasi predikat. |
Elemen PredicateValidation berisi atribut berikut:
| Karakteristik | Diperlukan | Deskripsi |
|---|---|---|
| Nomor Identitas | Ya | Pengidentifikasi yang digunakan untuk validasi predikat. Elemen ClaimType dapat menggunakan ID ini dalam kebijakan. |
Elemen PredicateValidation berisi elemen berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| Grup Predikat | 1:n | Daftar kelompok predikat. |
Elemen PredicateGroups berisi elemen berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| PredikatGrup | 1:n | Daftar predikat. |
Elemen PredicateGroup berisi atribut berikut:
| Karakteristik | Diperlukan | Deskripsi |
|---|---|---|
| Nomor Identitas | Ya | Pengidentifikasi yang digunakan untuk grup predikat. |
Elemen PredicateGroup berisi elemen berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| UserHelpText | 0:1 | Deskripsi predikat yang dapat membantu pengguna untuk mengetahui nilai apa yang harus mereka ketikkan. |
| PredikatReferensi | 1:n | Daftar referensi predikat. |
Elemen PredicateReferences berisi atribut berikut:
| Karakteristik | Diperlukan | Deskripsi |
|---|---|---|
| CocokSetidaknya | Tidak. | Menentukan bahwa nilai harus cocok dengan setidaknya sebanyak definisi predikat agar input diterima. Jika tidak ditentukan, nilai harus cocok dengan semua definisi predikat. |
Elemen PredicateReferences berisi elemen berikut:
| Elemen | Kemunculan | Deskripsi |
|---|---|---|
| PredikatReferensi | 1:n | Referensi ke predikat. |
Elemen PredicateReference berisi atribut berikut:
| Karakteristik | Diperlukan | Deskripsi |
|---|---|---|
| Nomor Identitas | Ya | Pengidentifikasi yang digunakan untuk validasi predikat. |
Mengonfigurasi kompleksitas kata sandi
Dengan Predikat dan PredicateValidationsInput, Anda dapat mengontrol persyaratan kompleksitas untuk kata sandi yang disediakan oleh pengguna saat membuat akun. Secara default, Azure AD B2C menggunakan kata sandi yang kuat. Azure AD B2C juga mendukung opsi konfigurasi untuk mengontrol kompleksitas kata sandi yang dapat digunakan pelanggan. Anda dapat menentukan kompleksitas kata sandi dengan menggunakan elemen predikat ini:
-
IsLengthBetween8And64 menggunakan metode ini
IsLengthRange, memvalidasi bahwa kata sandi harus antara 8 dan 64 karakter. -
Huruf kecil menggunakan metode ini
IncludesCharacters, memvalidasi bahwa kata sandi berisi huruf kecil. -
Huruf besar menggunakan metode ini
IncludesCharacters, memvalidasi bahwa kata sandi berisi huruf besar. -
Nomor menggunakan
IncludesCharactersmetode, memvalidasi bahwa kata sandi berisi digit. -
Simbol menggunakan metode ini
IncludesCharacters, memvalidasi bahwa kata sandi berisi salah satu dari beberapa karakter simbol. -
PIN menggunakan metode ini
MatchesRegex, memvalidasi bahwa kata sandi hanya berisi angka. -
AllowedAADCharacters menggunakan metode ini
MatchesRegex, memvalidasi bahwa kata sandi hanya karakter yang tidak valid yang disediakan. -
DisallowedWhitespace menggunakan metode ini
MatchesRegex, memvalidasi bahwa kata sandi tidak dimulai atau diakhiri dengan karakter spasi kosong.
<Predicates>
<Predicate Id="IsLengthBetween8And64" Method="IsLengthRange" HelpText="The password must be between 8 and 64 characters.">
<Parameters>
<Parameter Id="Minimum">8</Parameter>
<Parameter Id="Maximum">64</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Uppercase" Method="IncludesCharacters" HelpText="an uppercase letter">
<Parameters>
<Parameter Id="CharacterSet">A-Z</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Number" Method="IncludesCharacters" HelpText="a digit">
<Parameters>
<Parameter Id="CharacterSet">0-9</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Symbol" Method="IncludesCharacters" HelpText="a symbol">
<Parameters>
<Parameter Id="CharacterSet">@#$%^&*\-_+=[]{}|\\:',.?/`~"();!</Parameter>
</Parameters>
</Predicate>
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
<Predicate Id="AllowedAADCharacters" Method="MatchesRegex" HelpText="An invalid character was provided.">
<Parameters>
<Parameter Id="RegularExpression">(^([0-9A-Za-z\d@#$%^&*\-_+=[\]{}|\\:',?/`~"();! ]|(\.(?!@)))+$)|(^$)</Parameter>
</Parameters>
</Predicate>
<Predicate Id="DisallowedWhitespace" Method="MatchesRegex" HelpText="The password must not begin or end with a whitespace character.">
<Parameters>
<Parameter Id="RegularExpression">(^\S.*\S$)|(^\S+$)|(^$)</Parameter>
</Parameters>
</Predicate>
Setelah menentukan validasi dasar, Anda dapat menggabungkannya dan membuat serangkaian kebijakan sandi yang dapat Anda gunakan dalam kebijakan:
- SimplePassword memvalidasi DisallowedWhitespace, AllowedAADCharacters, dan IsLengthBetween8And64
-
StrongPassword memvalidasi DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64. Grup
CharacterClassesterakhir menjalankan serangkaian predikat tambahan denganMatchAtLeastset ke 3. Kata sandi pengguna harus antara 8 dan 16 karakter, dan tiga karakter berikut: Huruf Kecil, Huruf Besar, Angka, atau Simbol. - CustomPassword hanya memvalidasi DisallowedWhitespace, AllowedAADCharacters. Jadi, pengguna dapat memberikan kata sandi apa pun dengan panjang berapa pun, selama karakternya valid.
<PredicateValidations>
<PredicateValidation Id="SimplePassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="LengthGroup">
<PredicateReferences>
<PredicateReference Id="IsLengthBetween8And64" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
<PredicateValidation Id="StrongPassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="LengthGroup">
<PredicateReferences>
<PredicateReference Id="IsLengthBetween8And64" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="CharacterClasses">
<UserHelpText>The password must have at least 3 of the following:</UserHelpText>
<PredicateReferences MatchAtLeast="3">
<PredicateReference Id="Lowercase" />
<PredicateReference Id="Uppercase" />
<PredicateReference Id="Number" />
<PredicateReference Id="Symbol" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
<PredicateValidation Id="CustomPassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
Dalam jenis klaim Anda, tambahkan elemen PredicateValidationReference dan tentukan pengidentifikasi sebagai salah satu validasi predikat, seperti SimplePassword, StrongPassword, atau CustomPassword.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<AdminHelpText>Enter password</AdminHelpText>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
<PredicateValidationReference Id="StrongPassword" />
</ClaimType>
Berikut ini menunjukkan bagaimana elemen diatur saat Azure AD B2C menampilkan pesan kesalahan:
Mengonfigurasi rentang tanggal
Dengan elemen Predicates dan PredicateValidations, Anda dapat mengontrol nilai tanggal minimum dan maksimum UserInputType dengan menggunakan .DateTimeDropdown Untuk melakukan ini, buat Predikat dengan metode dan IsDateRange berikan parameter minimum dan maksimum.
<Predicates>
<Predicate Id="DateRange" Method="IsDateRange" HelpText="The date must be between 01-01-1980 and today.">
<Parameters>
<Parameter Id="Minimum">1980-01-01</Parameter>
<Parameter Id="Maximum">Today</Parameter>
</Parameters>
</Predicate>
</Predicates>
Tambahkan PredicateValidation dengan referensi ke DateRange predikat.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
Dalam jenis klaim Anda, tambahkan elemen PredicateValidationReference dan tentukan pengidentifikasi sebagai CustomDateRange.
<ClaimType Id="dateOfBirth">
<DisplayName>Date of Birth</DisplayName>
<DataType>date</DataType>
<AdminHelpText>The user's date of birth.</AdminHelpText>
<UserHelpText>Your date of birth.</UserHelpText>
<UserInputType>DateTimeDropdown</UserInputType>
<PredicateValidationReference Id="CustomDateRange" />
</ClaimType>
Langkah selanjutnya
- Pelajari cara Mengonfigurasi kompleksitas kata sandi menggunakan kebijakan kustom di Azure Active Directory B2C menggunakan validasi predikat.