ClaimsSchema
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.
Elemen ClaimsSchema menentukan jenis klaim yang dapat direferensikan sebagai bagian dari kebijakan. Skema klaim adalah tempat di mana Anda menyatakan klaim Anda. Klaim dapat berupa nama depan, nama belakang, nama tampilan, nomor telepon, dan lainnya. Elemen ClaimsSchema berisi daftar elemen ClaimType. Elemen ClaimType berisi atribut Id, yaitu nama klaim.
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="Id">
<DisplayName>Surname</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="family_name" />
<Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
</DefaultPartnerClaimTypes>
<UserHelpText>Your surname (also known as family name or last name).</UserHelpText>
<UserInputType>TextBox</UserInputType>
ClaimType
Elemen ClaimType berisi atribut berikut:
Atribut | Wajib | Deskripsi |
---|---|---|
Id | Ya | Pengidentifikasi yang digunakan untuk jenis klaim. Elemen lain dapat menggunakan pengidentifikasi ini dalam kebijakan. |
Elemen ClaimType berisi elemen berikut:
Elemen | Kemunculan | Deskripsi |
---|---|---|
DisplayName | 1:1 | Judul yang ditampilkan kepada pengguna di berbagai layar. Nilainya dapat dilokalkan. |
DataType | 1:1 | Jenis klaim. |
DefaultPartnerClaimTypes | 0:1 | Jenis klaim default mitra yang digunakan untuk protokol tertentu. Nilai dapat ditimpa dalam PartnerClaimType yang ditentukan dalam elemen InputClaim atau OutputClaim. Gunakan elemen ini untuk menentukan nama default untuk protokol. |
Mask | 0:1 | Serangkaian untai karakter masking opsional yang dapat diterapkan saat menampilkan klaim. Misalnya, nomor telepon 324-232-4343 dapat dimasker menjadi XXX-XXX-4343. |
UserHelpText | 0:1 | Deskripsi jenis klaim yang dapat membantu pengguna untuk memahami tujuannya. Nilainya dapat dilokalkan. |
UserInputType | 0:1 | Jenis kontrol input yang harus tersedia untuk pengguna saat memasukkan data klaim secara manual untuk jenis klaim. Lihat jenis input pengguna yang ditentukan nanti di halaman ini. |
AdminHelpText | 0:1 | Deskripsi jenis klaim yang dapat membantu administrator untuk memahami tujuannya. |
Pembatasan | 0:1 | Batasan nilai untuk klaim ini, seperti ekspresi reguler (Regex) atau daftar nilai yang dapat diterima. Nilainya dapat dilokalkan. |
PredicateValidationReference | 0:1 | Referensi ke elemen PredicateValidationsInput. Elemen PredicateValidationReference memungkinkan Anda melakukan proses validasi untuk memastikan bahwa hanya data yang terbentuk dengan benar yang dimasukkan. Untuk informasi selengkapnya, lihat Predikat. |
DataType
Elemen DataType mendukung nilai berikut ini:
Tipe | Deskripsi |
---|---|
Boolean | Mewakili nilai Boolean (true atau false ). |
date | Mewakili instan dalam waktu, biasanya dinyatakan sebagai tanggal hari. Nilai tanggal mengikuti konvensi ISO 8601. |
tanggalWaktu | Mewakili instan dalam waktu, biasanya dinyatakan sebagai tanggal dan jam hari. Nilai tanggal mengikuti konvensi ISO 8601 selama runtime dan dikonversi menjadi waktu epoch UNIX saat diterbitkan sebagai klaim ke dalam token. |
durasi | Mewakili interval waktu dalam tahun, bulan, hari, jam, menit, dan detik. Formatnya adalah PnYnMnDTnHnMnS , di mana P menunjukkan positif, atau N untuk nilai negatif. nY adalah jumlah tahun diikuti oleh harfiah Y . nMo adalah jumlah bulan diikuti oleh harfiah Mo . nD adalah jumlah hari diikuti oleh harfiah D . Contoh: P21Y mewakili 21 tahun. P1Y2Mo mewakili satu tahun, dan dua bulan. P1Y2Mo5D mewakili satu tahun, dua bulan, dan lima hari. P1Y2M5DT8H5M20S mewakili satu tahun, dua bulan, lima hari, delapan jam, lima menit, dan dua puluh detik. |
Nomor telepon | Menunjukkan nomor telepon. |
int | Mewakili angka antara -2.147.483.648 dan 2.147.483.647 |
long | Mewakili angka antara -9.223.372.036.854.775.808 hingga 9.223.372.036.854.775.807 |
string | Mewakili teks sebagai urutan unit kode UTF-16. |
stringCollection | Mewakili koleksi string . |
userIdentity | Mewakili identitas pengguna. |
userIdentityCollection | Mewakili koleksi userIdentity . |
DefaultPartnerClaimTypes
DefaultPartnerClaimTypes mungkin berisi elemen berikut:
Elemen | Kemunculan | Deskripsi |
---|---|---|
Protokol | 1:n | Daftar protokol dengan nama jenis klaim mitra default mereka. |
Elemen Protokol berisi atribut berikut ini:
Atribut | Wajib | Deskripsi |
---|---|---|
Nama | Ya | Nama protokol valid yang didukung oleh Azure AD B2C. Nilai yang mungkin adalah: OAuth1, OAuth2, SAML2, OpenIdConnect. |
PartnerClaimType | Ya | Nama jenis klaim yang akan digunakan. |
Dalam contoh berikut, ketika IEF berinteraksi dengan penyedia identitas SAML2 atau aplikasi pihak yang mengandalkan, klaim nama keluarga dipetakan ke http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
, dengan OpenIdConnect dan OAuth2, klaim dipetakan ke family_name
.
<ClaimType Id="surname">
<DisplayName>Surname</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="family_name" />
<Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
</DefaultPartnerClaimTypes>
</ClaimType>
Hasilnya, token JWT yang dikeluarkan oleh Azure AD B2C, memancarkan family_name
alih-alih nama ClaimType nama keluarga.
{
"sub": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
Mask
Elemen Mask berisi atribut-atribut berikut ini:
Atribut | Wajib | Deskripsi |
---|---|---|
Type |
Ya | Jenis masker klaim. Nilai yang mungkin: Simple atau Regex . Nilai Simple menunjukkan bahwa masker teks sederhana diterapkan ke bagian terdepan dari klaim string. Nilai Regex menunjukkan bahwa regex diterapkan ke klaim untai secara keseluruhan. Jika nilai Regex ditentukan, atribut opsional juga harus didefinisikan dengan regex untuk digunakan. |
Regex |
No | Jika Type diatur ke Regex , tentukan regex yang akan digunakan. |
Contoh berikut mengonfigurasi klaim PhoneNumber dengan masker Simple
. Untuk lebih banyak sampel, lihat Demo langsung masker simpel klaim.
<ClaimType Id="PhoneNumber">
<DisplayName>Phone Number</DisplayName>
<DataType>string</DataType>
<Mask Type="Simple">XXX-XXX-</Mask>
<UserHelpText>Your telephone number.</UserHelpText>
</ClaimType>
IEF merender nomor telepon sambil menyembunyikan enam digit pertama:
Contoh berikut mengonfigurasi klaim AlternateEmail dengan masker Regex
. Untuk sampel lebih lanjut, lihat Demo langsung masker regex.
<ClaimType Id="AlternateEmail">
<DisplayName>Please verify the secondary email linked to your account</DisplayName>
<DataType>string</DataType>
<Mask Type="Regex" Regex="(?<=.).(?=.*@)">*</Mask>
<UserInputType>Readonly</UserInputType>
</ClaimType>
IEF hanya merender huruf pertama alamat surel dan nama domain surel:
Pembatasan
Elemen Restriction mungkin berisi atribut berikut:
Atribut | Wajib | Deskripsi |
---|---|---|
MergeBehavior | No | Metode yang digunakan untuk menggabungkan nilai enumerasi dengan ClaimType dalam kebijakan induk dengan pengidentifikasi yang sama. Gunakan atribut ini saat Anda menimpa klaim yang ditentukan dalam kebijakan dasar. Kemungkinan nilai: Append , Prepend , atau ReplaceAll . Nilai Append tersebut adalah kumpulan data yang harus ditambahkan ke akhir koleksi yang ditentukan dalam kebijakan induk. Nilai Prepend tersebut adalah kumpulan data yang harus ditambahkan sebelum koleksi ditentukan dalam kebijakan induk. Nilai ReplaceAll adalah merupakan kumpulan data yang ditentukan dalam kebijakan induk yang harus diabaikan. |
Elemen Restriction berisi elemen-elemen berikut ini:
Elemen | Kemunculan | Deskripsi |
---|---|---|
Enumeration | 1:n | Opsi yang tersedia di antarmuka pengguna untuk pengguna memilih klaim, seperti nilai dalam menu drop-down. |
Pola | 1:1 | Regex yang akan digunakan. |
Enumeration
Elemen Enumeration mendefinisikan opsi yang tersedia bagi pengguna untuk memilih klaim di antarmuka pengguna, seperti nilai dalam CheckboxMultiSelect
, DropdownSingleSelect
, atau RadioSingleSelect
. Atau, Anda dapat menentukan dan melokalkan opsi yang tersedia dengan elemen LocalizedCollections. Untuk mencari item dari kumpulan klaim Enumeration gunakan transformasi klaim GetMappedValueFromLocalizedCollection.
Elemen Enumeration berisi atribut berikut:
Atribut | Wajib | Deskripsi |
---|---|---|
SMS | Ya | Untai tampilan yang ditampilkan kepada pengguna di antarmuka pengguna untuk opsi ini. |
Nilai | Ya | Nilai klaim yang terkait dengan pemilihan opsi ini. |
SelectByDefault | No | Menunjukkan apakah opsi ini harus dipilih secara default atau tidak di UI. Nilai yang mungkin: Benar atau Salah. |
Contoh berikut mengonfigurasi klaim daftar drop-down kota dengan nilai default yang ditetapkan ke New York
. Untuk sampel lainnya, lihat Demo langsung enumerasi pembatasan klaim.
<ClaimType Id="city">
<DisplayName>city where you work</DisplayName>
<DataType>string</DataType>
<UserInputType>DropdownSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
<Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
<Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
</Restriction>
</ClaimType>
Daftar drop-down kota dengan nilai default yang ditetapkan ke New York:
Pola
Elemen Pattern dapat berisi atribut berikut:
Atribut | Wajib | Deskripsi |
---|---|---|
RegularExpression | Ya | Regex yang mengklaim jenis ini harus sesuai agar valid. |
HelpText | No | Pesan kesalahan untuk pengguna jika pemeriksaan regex gagal. |
Contoh berikut mengonfigurasi klaim alamat surel dengan validasi input regex dan teks bantuan:
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OpenIdConnect" PartnerClaimType="email" />
</DefaultPartnerClaimTypes>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>TextBox</UserInputType>
<Restriction>
<Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>
IEF menyajikan klaim alamat surel dengan validasi input format surel:
UserInputType
Azure AD B2C mendukung berbagai tipe input pengguna, seperti kotak teks, kata sandi, dan daftar drop-down yang dapat digunakan saat memasukkan data klaim secara manual untuk jenis klaim. Anda harus menentukan UserInputType ketika Anda mengumpulkan informasi dari pengguna dengan menggunakan profil teknis yang ditegaskan mandiri dan kontrol tampilan.
Lihat Demo langsung dari jenis input pengguna.
Elemen UserInputType jenis input pengguna yang tersedia:
UserInputType | ClaimType yang Didukung | Deskripsi |
---|---|---|
CheckboxMultiSelect | string |
Kotak drop-down multi pilih. Nilai klaim diwakili dalam untai pembatas koma dari nilai yang dipilih. |
DateTimeDropdown | date , dateTime |
Opsi drop-down untuk memilih hari, bulan, dan tahun. |
DropdownSingleSelect | string |
Kotak drop-down pilihan tunggal. Nilai klaim adalah nilai yang dipilih. |
EmailBox | string |
Bidang input alamat surel. |
Paragraph | boolean , , date dateTime , duration , int , , long ,string |
Bidang yang memperlihatkan teks hanya dalam tag paragraf. |
Kata sandi | string |
Kotak teks kata sandi. |
RadioSingleSelect | string |
Kumpulan tombol radio. Nilai klaim adalah nilai yang dipilih. |
Hanya baca | boolean , , date dateTime , duration , int , , long ,string |
Kotak teks baca-saja. |
TextBox | boolean , , int phoneNumber ,string |
Kotak teks baris tunggal |
TextBox
Jenis input pengguna TextBox digunakan untuk menyediakan kotak teks baris tunggal.
<ClaimType Id="displayName">
<DisplayName>Display Name</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your display name.</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
EmailBox
Jenis input pengguna EmailBox digunakan untuk menyediakan bidang input surel dasar.
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>EmailBox</UserInputType>
<Restriction>
<Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>
Kata sandi
Jenis input pengguna Kata Sandi digunakan untuk merekam kata sandi yang dimasukkan oleh pengguna.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
</ClaimType>
DateTimeDropdown
Jenis input pengguna DateTimeDropdown digunakan untuk menyediakan sekumpulan drop-down untuk memilih hari, bulan, dan tahun. Anda dapat menggunakan elemen Predicates dan PredicateValidations untuk mengontrol nilai tanggal minimum dan maksimum. Untuk informasi selengkapnya, lihat bagian Mengonfigurasi rentang tanggal pada Predicates dan PredicateValidations.
<ClaimType Id="dateOfBirth">
<DisplayName>Date Of Birth</DisplayName>
<DataType>date</DataType>
<UserHelpText>The date on which you were born.</UserHelpText>
<UserInputType>DateTimeDropdown</UserInputType>
</ClaimType>
RadioSingleSelect
Jenis input pengguna RadioSingleSelect digunakan untuk menyediakan kumpulan tombol radio yang memungkinkan pengguna untuk memilih satu opsi.
<ClaimType Id="color">
<DisplayName>Preferred color</DisplayName>
<DataType>string</DataType>
<UserInputType>RadioSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Blue" Value="Blue" SelectByDefault="false" />
<Enumeration Text="Green " Value="Green" SelectByDefault="false" />
<Enumeration Text="Orange" Value="Orange" SelectByDefault="true" />
</Restriction>
</ClaimType>
DropdownSingleSelect
Jenis input pengguna DropdownSingleSelect digunakan untuk menyediakan kumpulan kotak drop-down yang memungkinkan pengguna untuk memilih satu opsi.
<ClaimType Id="city">
<DisplayName>City where you work</DisplayName>
<DataType>string</DataType>
<UserInputType>DropdownSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
<Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
<Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
</Restriction>
</ClaimType>
CheckboxMultiSelect
Jenis input pengguna CheckboxMultiSelect digunakan untuk menyediakan kumpulan kotak centang yang memungkinkan pengguna untuk memilih beberapa opsi.
<ClaimType Id="languages">
<DisplayName>Languages you speak</DisplayName>
<DataType>string</DataType>
<UserInputType>CheckboxMultiSelect</UserInputType>
<Restriction>
<Enumeration Text="English" Value="English" SelectByDefault="true" />
<Enumeration Text="France " Value="France" SelectByDefault="false" />
<Enumeration Text="Spanish" Value="Spanish" SelectByDefault="false" />
</Restriction>
</ClaimType>
Hanya baca
Jenis input penggunaReadonly digunakan untuk menyediakan bidang baca-saja untuk menampilkan klaim dan nilai.
<ClaimType Id="membershipNumber">
<DisplayName>Membership number</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your membership number (read only)</UserHelpText>
<UserInputType>Readonly</UserInputType>
</ClaimType>
Paragraph
Jenis input pengguna Paragraph digunakan untuk menyediakan bidang yang memperlihatkan teks hanya dalam tag paragraf. Misalnya, <p>text</p>. Jenis input pengguna Paragraph OutputClaim
dari profil teknis yang ditegaskan sendiri, harus set atribut Required
ke false
(default). Jenis input pengguna ini hanya didukung dalam tata letak halaman yang dinyatakan sendiri. Halaman masuk dan pendaftaran terpadu (unifiedssp) mungkin tidak menampilkan ini dengan benar.
<ClaimType Id="responseMsg">
<DisplayName>Error message: </DisplayName>
<DataType>string</DataType>
<AdminHelpText>A claim responsible for holding response messages to send to the relying party</AdminHelpText>
<UserHelpText>A claim responsible for holding response messages to send to the relying party</UserHelpText>
<UserInputType>Paragraph</UserInputType>
</ClaimType>