全部產品
Search
文件中心

Identity as a Service:OIDC id_token擴充值填寫規範

更新時間:Jun 25, 2025

本文介紹OIDC標準協議的OIDC id_token擴充值填寫規範及配置樣本。

id_token擴充欄位填寫規則

類型

填寫值

說明

變數

user.username

使用者名稱。

user.displayName

顯示名稱。

user.phone(已到期)

手機號,不包含國際區號(已到期)

user.phoneNumber

手機號,不包含國際區號。

user.email

郵箱。

user.status

使用者狀態,取值:

  • enabled:啟用。

  • disabled:禁用。

user.primaryOrganizationalUnitId

使用者所屬主組織ID。

user.organizationalUnits

使用者所屬組織所有資訊。

ArrayMap(user.organizationalUnits, __item.organizationalUnitId)

使用者所屬所有組織ID。

格式:JSON數組。

user.groups

賬戶所屬組,組的所有資訊。

格式:JSON數組

ArrayMap(user.groups, __item.groupId)

賬戶所屬組ID列表

格式:JSON數組

ArrayMap(user.groups, __item.groupExternalId)

賬戶所屬組外部ID列表

格式:JSON數組

user.customFields

所有擴充欄位資訊

格式:JSON數組

user.customFieldMap.$fieldname$.fieldValue

某個擴充欄位的值

常量

使用 "" 英文雙引號,引號中填寫常量。

運算式

進階功能,可以靈活地將值進行拼接、變化。

具體功能請參考進階賬戶欄位運算式

輸入樣本:(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"
        }
    ],
  ...
}

OIDC運算式相關樣本

image

  1. 通過運算式user.organizationalUnits進行id_token解析後:

    [
      {
        "organizationalUnitId": "ou_sdfadtaaxxxxxx",
        "organizationalUnitName": "AD",
        "primary": false
      },
      {
        "organizationalUnitId": "ou_werttxxxxxx",
        "organizationalUnitName": "name_002",
        "primary": true
      }
    ]
  2. 通過運算式ArrayMap(user.organizationalUnits, __item.organizationalUnitId)進行id_token解析後:

    [
      "ou_sdfadtaaxxxxxx",
      "ou_werttxxxxxx"
    ]
  3. 通過運算式user.groups進行id_token解析後:

    [
      {
        "groupId": "group_jp6al4sn4n4wjgjxxxxxx",
        "groupName": "group1",
        "groupExternalId": "group_jp6al4sn4n4wjgjxxxxxx"
      },
      {
        "groupId": "group_vavikcxewkf5h3oxxxxxx",
        "groupName": "group2",
        "groupExternalId": "group_vavikcxewkf5h3oxxxxxx"
      }
    ]
  4. 通過運算式ArrayMap(user.groups, __item.groupId)進行id_token解析後:

    [
        "group_jp6al4sn4n4wjgjxxxxxx",
        "group_vavikcxewkf5h3oxxxxxx"
    ]
  5. 通過運算式ArrayMap(user.groups, __item.groupExternalId)進行id_token解析後:

    [
        "group_jp6al4sn4n4wjgjxxxxxx",
        "group_vavikcxewkf5h3oxxxxxx"
    ]
  6. 通過運算式user.customFields進行id_token解析後:

    [
        {
          "fieldName": "place",
          "fieldValue": "beijing"
        },
        {
          "fieldName": "age",
          "fieldValue": "18"
        }
    ]
  7. 通過運算式user.customFieldMap.age.fieldValue進行id_token解析後:

    18

id_token擴充欄位重寫規則

預設欄位規則

  1. 系統預設欄位不支援重寫:expnbfiatissjtiat_hashc_hashnoncesid

  2. 支援重寫欄位:sub

使用者資訊欄位規則

使用者 id_token 中的以下欄位根據 scope 判斷是否可重寫:

欄位名稱

關聯scope

不可重寫條件

email, email_verified

email

當scope包含email且使用者email不為空白時

phone_number, phone_number_verified

phone

當scope包含phone且使用者phoneNumber不為空白時

name, preferred_username, updated_at, locale

profile

當scope包含profile時

instance_id, application_id

instance

當scope包含instance時

配置建議

  1. 在使用者資訊範圍配置中謹慎選擇scope,因為這將影響哪些使用者欄位可以被重寫。

  2. 如果需要重寫特定欄位,請確保:未包含對應的scope或對應的使用者欄位為空白值。