Bagikan melalui


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:

Klaim nomor telepon ditampilkan di browser dengan enam digit pertama yang dimasker oleh Xs

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="(?&lt;=.).(?=.*@)">*</Mask>
  <UserInputType>Readonly</UserInputType>
</ClaimType>

IEF hanya merender huruf pertama alamat surel dan nama domain surel:

Klaim surel diperlihatkan di browser dengan karakter yang dilapisi oleh tanda bintang

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:

Kontrol drop-down dirender di browser dan memperlihatkan nilai default

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.+!#$%&amp;'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'+^_`{}~-]+)*@(?:[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:

TextBox memperlihatkan pesan kesalahan yang dipicu oleh pembatasan regex

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, , datedateTime, 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, , datedateTime, duration, int, , long,string Kotak teks baca-saja.
TextBox boolean, , intphoneNumber,string Kotak teks baris tunggal

TextBox

Jenis input pengguna TextBox digunakan untuk menyediakan kotak teks baris tunggal.

TextBox memperlihatkan properti yang ditentukan dalam jenis klaim

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

EmailBox memperlihatkan properti yang ditentukan dalam jenis klaim

<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.+!#$%&amp;'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'+^_`{}~-]+)*@(?:[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.

Menggunakan jenis klaim dengan kata sandi

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

Menggunakan jenis klaim dengan datetimedropdown

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

Menggunakan jenis klaim dengan radiodsingselect

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

Jenis input pengguna DropdownSingleSelect digunakan untuk menyediakan kumpulan kotak drop-down yang memungkinkan pengguna untuk memilih satu opsi.

Menggunakan jenis klaim dengan dropdownsingleselect

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

Menggunakan jenis klaim dengan checkboxmultiselect

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

Menggunakan tipe klaim dengan readonly

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

Menggunakan jenis klaim dengan kata paragraf

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