OIDC id_token扩展值填写规范

本文介绍OIDC标准协议的OIDC 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