全部产品
Search
文档中心

Identity as a Service:Aturan untuk nilai-nilai bidang tambahan OIDC id_token

更新时间:Jul 02, 2025

Topik ini menjelaskan aturan untuk nilai-nilai bidang tambahan OpenID Connect (OIDC) id_token serta menyediakan contoh konfigurasi.

Aturan untuk mengisi bidang tambahan id_token

Tipe

Nilai

Deskripsi

Variabel

user.username

Nama pengguna.

user.displayName

Nama tampilan.

user.phone (kedaluwarsa)

Nomor telepon seluler yang tidak termasuk kode negara dan telah kedaluwarsa.

user.phoneNumber

Nomor telepon seluler, tidak termasuk kode negara.

user.email

Alamat email.

user.status

Status pengguna. Nilai yang valid:

  • enabled

  • disabled

user.primaryOrganizationalUnitId

ID organisasi utama tempat pengguna bernaung.

user.organizationalUnits

Informasi tentang organisasi tempat pengguna bernaung.

ArrayMap(user.organizationalUnits, __item.organizationalUnitId)

ID semua organisasi tempat pengguna bernaung.

Nilainya adalah array JSON.

user.groups

Informasi tentang grup tempat akun bernaung.

Nilainya adalah array JSON.

ArrayMap(user.groups, __item.groupId)

ID grup tempat akun bernaung.

Nilainya adalah array JSON.

ArrayMap(user.groups, __item.groupExternalId)

ID eksternal grup tempat akun bernaung.

Nilainya adalah array JSON.

user.customFields

Informasi tentang semua bidang tambahan.

Nilainya adalah array JSON.

user.customFieldMap.$fieldname$.fieldValue

Nilai dari sebuah bidang tambahan.

Konstanta

Konstanta harus diapit dengan tanda kutip ganda ("").

Ekspresi

Fitur lanjutan. Anda dapat secara fleksibel menggabungkan dan mengubah nilai menggunakan ekspresi.

Untuk informasi lebih lanjut, lihat Ekspresi lanjutan untuk bidang akun.

Contoh: objek user.

{
  ...
  "customFieldMap": {
        "place": {
            "fieldName": "place",
            "fieldValue": "beijing"
        },
        "age": {
            "fieldName": "age",
            "fieldValue": "18"
        }
    },
    "identityProviderUserMap": {
        "idp_m2gngriuenktdkxxxxxx": {
            "identityProviderId": "idp_m2gngriuenktdkxxxxxx",
            "identityProviderType": "ding_talk",
            "identityProviderExternalId": "corp_1234xxxxxxx",
            "identityProviderUserId": "b2ed5fc0xxxxx"
        }
    },
    "organizationalUnits": [
        {
            "organizationalUnitId": "ou_sdfadtaaxxxxxx",
            "organizationalUnitName": "AD",
            "primary": false
        },
        {
            "organizationalUnitId": "ou_werttxxxxxx",
            "organizationalUnitName": "name_002",
            "primary": true
        }
    ],
    "primaryOrganizationalUnitId": "ou_werttxxxxxx",
    "customFields": [
        {
            "fieldName": "place",
            "fieldValue": "beijing"
        },
        {
            "fieldName": "age",
            "fieldValue": "18"
        }
    ],
    "groups": [
        {
            "groupId": "group_jp6al4sn4n4wjgjxxxxxx",
            "groupName": "group1",
            "groupExternalId": "group_jp6al4sn4n4wjgjxxxxxx"
        },
        {
            "groupId": "group_vavikcxewkf5h3oxxxxxx",
            "groupName": "group2",
            "groupExternalId": "group_vavikcxewkf5h3oxxxxxx"
        }
    ],
  ...
}

Contoh Ekspresi OIDC

image

  1. Bidang organizationalUnits dalam id_token diuraikan menggunakan ekspresi user.organizationalUnits.

    [
      {
        "organizationalUnitId": "ou_sdfadtaaxxxxxx",
        "organizationalUnitName": "AD",
        "primary": false
      },
      {
        "organizationalUnitId": "ou_werttxxxxxx",
        "organizationalUnitName": "name_002",
        "primary": true
      }
    ]
  2. Bidang organizationalUnitIds dalam id_token diuraikan menggunakan ekspresi ArrayMap(user.organizationalUnits, __item.organizationalUnitId).

    [
      "ou_sdfadtaaxxxxxx",
      "ou_werttxxxxxx"
    ]
  3. Bidang groups dalam id_token diuraikan menggunakan ekspresi user.groups.

    [
      {
        "groupId": "group_jp6al4sn4n4wjgjxxxxxx",
        "groupName": "group1",
        "groupExternalId": "group_jp6al4sn4n4wjgjxxxxxx"
      },
      {
        "groupId": "group_vavikcxewkf5h3oxxxxxx",
        "groupName": "group2",
        "groupExternalId": "group_vavikcxewkf5h3oxxxxxx"
      }
    ]
  4. Bidang groupIds dalam id_token diuraikan menggunakan ekspresi ArrayMap(user.groups, __item.groupId).

    [
        "group_jp6al4sn4n4wjgjxxxxxx",
        "group_vavikcxewkf5h3oxxxxxx"
    ]
  5. Bidang groupExternalIds dalam id_token diuraikan menggunakan ekspresi ArrayMap(user.groups, __item.groupExternalId).

    [
        "group_jp6al4sn4n4wjgjxxxxxx",
        "group_vavikcxewkf5h3oxxxxxx"
    ]
  6. Bidang customFields dalam id_token diuraikan menggunakan ekspresi user.customFields.

    [
        {
          "fieldName": "place",
          "fieldValue": "beijing"
        },
        {
          "fieldName": "age",
          "fieldValue": "18"
        }
    ]
  7. Bidang age dalam id_token diuraikan menggunakan ekspresi user.customFieldMap.age.fieldValue.

    18

Aturan untuk menulis ulang bidang tambahan id_token

Aturan bidang default

  1. Bidang default tidak mendukung penulisan ulang: exp, nbf, iat, iss, jti, at_hash, c_hash, nonce, sid.

  2. Bidang yang mendukung penulisan ulang: sub.

Aturan bidang informasi pengguna

Bidang berikut dalam id_token pengguna dapat ditulis ulang berdasarkan ruang lingkup:

Nama bidang

Ruang lingkup terkait

Kondisi tidak dapat ditulis ulang

email, email_verified

email

Saat ruang lingkup mencakup email dan email pengguna tidak kosong

phone_number, phone_number_verified

phone

Saat ruang lingkup mencakup phone dan phoneNumber pengguna tidak kosong

name, preferred_username, updated_at, locale

profile

Saat ruang lingkup mencakup profile

instance_id, application_id

instance

Saat ruang lingkup mencakup instance

Rekomendasi konfigurasi

  1. Berhati-hatilah saat memilih ruang lingkup dalam konfigurasi informasi pengguna karena ini akan memengaruhi bidang pengguna mana yang dapat ditulis ulang.

  2. Untuk menulis ulang bidang tertentu, pastikan bahwa ruang lingkup yang sesuai tidak disertakan atau bidang pengguna yang sesuai kosong.