ClaimsTransformations

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 ClaimsTransformations berisi daftar fungsi transformasi klaim, yang dapat digunakan dalam perjalanan pengguna sebagai bagian dari kebijakan kustom. Transformasi klaim mengubah klaim yang diberikan menjadi klaim yang lain. Dalam transformasi klaim, Anda menentukan metode transformasi, misalnya menambahkan item ke koleksi string atau mengubah kasus string.

Untuk menyertakan daftar fungsi transformasi klaim yang dapat digunakan dalam perjalanan pengguna, elemen XML ClaimsTransformations harus dideklarasikan di bawah bagian BuildingBlocks dari kebijakan.

<ClaimsTransformations>
  <ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
    ...
  </ClaimsTransformation>
</ClaimsTransformations>

Elemen ClaimsTransformation berisi atribut berikut:

Atribut Diperlukan Deskripsi
Id Ya Pengidentifikasi yang digunakan untuk mengidentifikasi transformasi klaim secara unik. Pengidentifikasi dirujuk dari elemen XML lain dalam kebijakan.
TransformationMethod Ya Metode transformasi untuk digunakan dalam transformasi klaim. Setiap transformasi klaim memiliki nilainya sendiri. Lihat referensi transformasi klaim untuk daftar lengkap nilai yang tersedia.

ClaimsTransformation

Elemen ClaimsTransformation berisi atribut berikut:

<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
  <InputClaims>
    ...
  </InputClaims>
  <InputParameters>
    ...
  </InputParameters>
  <OutputClaims>
    ...
  </OutputClaims>
</ClaimsTransformation>
Elemen Kemunculan Deskripsi
InputClaims 0:1 Daftar elemen InputClaim yang menentukan jenis klaim yang diambil sebagai input ke transformasi klaim. Masing-masing elemen ini berisi rujukan ke ClaimType yang sudah ditentukan di bagian ClaimsSchema dalam kebijakan.
InputParameters 0:1 Daftar elemen InputParameter yang disediakan sebagai masukan untuk transformasi klaim.
OutputClaims 0:1 Daftar elemen OutputClaim yang menentukan jenis klaim yang dihasilkan setelah Transaksi Klaim telah dipanggil. Masing-masing elemen ini berisi rujukan ke ClaimType yang sudah ditentukan di bagian ClaimsSchema dalam kebijakan.

InputClaims

Elemen InputClaims berisi elemen berikut ini:

Elemen Kemunculan Deskripsi
InputClaim 1:n Jenis klaim input yang diharapkan.

InputClaim

Elemen InputClaim berisi atribut berikut:

Atribut Diperlukan Deskripsi
ClaimTypeReferenceId Ya Referensi ke ClaimType yang sudah ditentukan di bagian ClaimsSchema dalam kebijakan.
TransformationClaimType Ya Pengidentifikasi untuk mereferensikan jenis klaim transformasi. Setiap transformasi klaim memiliki nilainya sendiri. Lihat referensi transformasi klaim untuk daftar lengkap nilai yang tersedia.

InputParameters

Elemen InputClaims berisi elemen berikut ini:

Elemen Kemunculan Deskripsi
InputParameter 1:n Parameter input yang diharapkan.

InputParameter

Atribut Diperlukan Deskripsi
Id Ya Pengidentifikasi yang merupakan referensi ke parameter metode transformasi klaim. Setiap metode transformasi klaim memiliki nilainya sendiri. Lihat tabel transformasi klaim untuk daftar lengkap nilai yang tersedia.
DataType Ya Jenis data parameter, seperti String, Boolean, Int, atau DateTime sesuai enumerasi Tipe Data dalam skema XML kebijakan kustom. Jenis ini digunakan untuk melakukan operasi aritmatika dengan benar. Setiap transformasi klaim memiliki nilainya sendiri. Lihat referensi transformasi klaim untuk daftar lengkap nilai yang tersedia.
Nilai Ya Nilai yang diteruskan secara verbatim ke transformasi. Beberapa nilai bersifat absolut, beberapa di antaranya dapat dipilih dari metode transformasi klaim.

OutputClaims

Elemen OutputClaims berisi elemen berikut:

Elemen Kemunculan Deskripsi
OutputClaim 0:n Jenis klaim output yang diharapkan.

OutputClaim

Elemen OutputClaim berisi atribut berikut:

Atribut Diperlukan Deskripsi
ClaimTypeReferenceId Ya Referensi ke ClaimType yang sudah ditentukan di bagian ClaimsSchema dalam kebijakan.
TransformationClaimType Ya Pengidentifikasi untuk mereferensikan jenis klaim transformasi. Setiap transformasi klaim memiliki nilainya sendiri. Lihat referensi transformasi klaim untuk daftar lengkap nilai yang tersedia.

Klaim input dan output yang digunakan dalam transformasi klaim harus berbeda. Klaim input yang sama tidak dapat digunakan sebagai klaim output.

Contoh

Misalnya, Anda dapat menyimpan versi terakhir dari persyaratan layanan yang diterima pengguna. Saat memperbarui ketentuan layanan, Anda dapat meminta pengguna untuk menerima versi baru. Dalam contoh berikut, transformasi klaim HasTOSVersionChanged membandingkan nilai klaim TOSVersion dengan nilai klaim LastTOSAcceptedVersion dan kemudian mengembalikan klaim TOSVersionChanged boolean.

<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="TOSVersionChanged">
      <DisplayName>Indicates if the TOS version accepted by the end user is equal to the current version</DisplayName>
      <DataType>boolean</DataType>
    </ClaimType>
    <ClaimType Id="TOSVersion">
      <DisplayName>TOS version</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    <ClaimType Id="LastTOSAcceptedVersion">
      <DisplayName>TOS version accepted by the end user</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
  </ClaimsSchema>

  <ClaimsTransformations>
    <ClaimsTransformation Id="HasTOSVersionChanged" TransformationMethod="CompareClaims">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="TOSVersion" TransformationClaimType="inputClaim1" />
        <InputClaim ClaimTypeReferenceId="LastTOSAcceptedVersion" TransformationClaimType="inputClaim2" />
      </InputClaims>
      <InputParameters>
        <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
      </InputParameters>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="TOSVersionChanged" TransformationClaimType="outputClaim" />
      </OutputClaims>
    </ClaimsTransformation>
  </ClaimsTransformations>
</BuildingBlocks>

Referensi transformasi klaim

Untuk contoh transformasi klaim, lihat halaman referensi berikut: