用户目录(UD)

最后更新:2021-12-03

本文档主要覆盖一个SP应用如何通过SCIM协议与IDP4进行用户目录进行数据同步。本文档主要针对SP需要拉取IDaaS平台数据(此方法不建议,IDaaS不可控)、SP需要推送组织机构、账户、组数据到IDaaS、IDaaS需要推送组织机构、账户、组数据到SP的三类典型应用场景,方便SP与IDaaS实现数据交互闭环。

当前SP推至IDaaS和IDaaS推至SP场景我们都提供覆盖场景广的连接器Connector实现应用和IDaaS数据打通,需要IDaaS与SP相关同步数据都通过Connector连接器实现。

术语定义

参考:IDP中产品术语介绍

场景描述:

IDaaS平台支持 SCIM 协议,用户目录同步机制支持三种方式:

  1. 推的方式:IDaaS平台通过API将IDaaS中的用户目录信息同步到应用服务器(即SP Service Provider),需要业务系统提供API,如下图中第1步所示;

  2. 送的方式:IDaaS系统提供API,应用服务器(即SP Service Provider)调用IDaaS平台API接口将业务用户目录同步到IDaaS中,如下图中第2步所示;

  3. 拉的方式:IDaaS系统提供API,应用服务器(即SP Service Provider)调用IDaaS平台API接口拉取IDaaS平台的用户目录数据,如下图中的第3步所示。

image.png 建议使用第一种方式;
优势:在保证安全的前提下,可以保证账户数据的一致性,实时性;
如果各业务系统(SP)采用第二种方式,IDaaS平台可提供相应技术文档及API接口;
如果各业务系统(SP)采用第三种方式,IDaaS平台可提供相应技术文档及API接口。

IDaaS推至SP

集成方式

通过统一连接器Connector实现,如何创建任务见IDP同步数据到SP场景

同步目标

选择SCIM类型,选择目标子类型为IDP4标准SCIM
目标管理配置如图:
image.png

  • 来源名称:随意填写,注意唯一性即可;

  • 适用环境:默认是开发环境。需要注意的是来源和目标的环境必须是一样的,否则不会执行同步任务

  • 来源主类型:SCIM类型

  • 来源子类型:选择IDP4标准SCIM

  • 组织机构同步地址: SP系统组织机构API地址

  • 账户同步地址: SP系统账户API地址,

  • 组同步地址: SP系统组API地址,

注意,组织机构同步地址,账户同步地址,组同步地址三者必须有一个不能为空

  • 协议类型: sp系统API接口认证类型(BASIC,OAUTH2)

如果API接口没有认证措施,可以默认BASIC,账密随意填写即可

  • 如选择basic,则需要填写basic协议的账户和密码,如图

image.png

  • 如选择oauth2,则需要填写oauth的url,client_id,client_secret,如图:

image.png

API定义

组织机构

url地址如: developer/scim/organization

添加组织机构

method: POST

content-Type: application/json

参数名

参数值

备注

organization

{organization}

组织机构的名称

parentUuid

{parentUuid}

所属父级组织机构的uuid或外部ID

rootNode

{rootNode}

是否是根节点

organizationUuid

{organizationUuid}

本组织机构的uuid或外部ID

manager

{manager}

组织机构的管理者,value是管理者账户的外部ID,displayName是用户名,管理者可为空

type

{type}

SELF_OU(自建组织机构)或DEPARTMENT(“自建部门”)

levelNumber

{levelNumber}

部门排序号

extendFields

{extendFields}

扩展字典,attributes为系统定义扩展字段

├─ grp_type

{extendFields.grp_type}

组织类型,[{公司:UNIT},{部门:DEPARTMENT}]

Request Body示例:

{
  "organization": "test1",
  "parentUuid": "main",
  "organizationUuid": "0801601",
  "manager": [],
  "extendFields": {
    "testAttr": "123"
  },
  "levelNumber": "1",
  "type": "EXTERNAL_OU",
  "enabled": true,
  "rootNode": false
}

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

修改组织机构

method: PUT

content-Type: application/json

参数名

参数值

备注

organization

{organization}

组织机构的名称

parentUuid

{parentUuid}

所属父级组织机构的uuid或外部ID

rootNode

{rootNode}

是否是根节点

organizationUuid

{organizationUuid}

本组织机构的uuid或外部ID

manager

{manager}

组织机构的管理者,value是管理者账户的外部ID,displayName是用户名,管理者可为空

type

{type}

SELF_OU(自建组织机构)或DEPARTMENT(“自建部门”)

levelNumber

{levelNumber}

部门排序号

extendFields

{extendFields}

扩展字典,attributes为系统定义扩展字段

├─ grp_type

{extendFields.grp_type}

组织类型,[{公司:UNIT},{部门:DEPARTMENT}]

Request Body示例:

{
  "organization": "test1",
  "parentUuid": "main",
  "organizationUuid": "0801601",
  "manager": [],
  "extendFields": {
    "testAttr": "123"
  },
  "levelNumber": "1",
  "type": "EXTERNAL_OU",
  "enabled": true,
  "rootNode": false
}

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

删除组织机构

method: DELETE

content-Type: application/json

参数名

参数值

备注

id

{id}

本组织机构的外部ID,对应应用系统的唯一标识

Request Body示例:

/developer/scim/organization?id=4544581305390943066

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

账户

url地址如: developer/scim/account

添加账户

method: POST

content-Type: application/json

参数名

参数值

备注

userName

{userName}

账户名称,唯一

id

{id}

用户ID,与外部ID值一样

displayName

{displayName}

用户的显示名称,唯一

emails

{emails}

邮箱

phoneNumbers

{phoneNumbers}

手机号, 只能一个且唯一

externalId

{externalId}

外部ID,唯一,不为空

belongs

{belongs}

为账户指定组织单位

organzationsOrderList

{organzationsOrderList}

账户在所属机构下的排序号

locked

boolean

是否锁定账户,ture锁定账户,false启用账户。锁定账户后将不能登录应用系统

enabled

boolean

是否禁用账户,ture禁用账户,false启用账户。禁用账户后将不能登录应用系统

extendField

{extendField}

扩展字段,attributes为系统定义扩展字段

├─ img_dd

{extendFields.mainOu}

钉钉头像id

├─ company_code

{extendFields.company_code}

公司信息

├─ startTime

{extendFields.startTime}

跟班学习开始时间

├─ endTime

{extendFields.endTime}

跟班学习结束时间

├─ learnUnit

{extendFields.learnUnit}

跟班学习公司编码

├─ learnDepartment

{extendFields.learnDepartment}

跟班学习部门编码

├─ learnPost

{extendFields.learnPost}

跟班学习岗位编码

├─ emp_cardNum

{extendFields.emp_cardNum}

物理卡号

├─ emp_mark

{extendFields.emp_mark}

姓名全拼

├─ tool_type

{extendFields.tool_type}

用工形式

├─ is_res_person

{extendFields.is_res_person}

部门负责人标识

├─ is_guidance

{extendFields.is_guidance}

部门领导标识

├─ role_code

{extendFields.role_code}

所属岗位

├─ emp_img

{extendFields.emp_img}

头像地址

├─ sex

{extendFields.sex}

性别,[{男:1},{女:2},{未知的性别:0},{未说明的性别:9}]

userBelongs

{userBelongs}

账户所属组织

├─ belong

{userBelongs.belong}

组织外部id

├─ mainOu

{userBelongs.mainOu}

是否为主职,true主职,false副职

├─ extendFields

{userBelongs.extendFields}

人员-组织扩展字段,一般兼职的扩展字段在这取

─├─ company

{userBelongs.extendFields.company}

兼职单位(兼职公司信息)

─├─ post

{userBelongs.extendFields.post}

任职岗位code

─├─ role_name

{userBelongs.extendFields.role_name}

职务

─├─ work_sort

{userBelongs.extendFields.work_sort}

任职排序号

Request Body示例:

{
  "emails": [
    {
      "value": "test@test.com",
      "primary": true
    }
  ],
  "belongs": [
    {
      "belongOuUuid": "testUuid"
    }
  ],
  "displayName": "test1",
  "extendFields": {
    "testAttr": "1"
  },
  "externalId": "536607420296949165",
  "id": "536607420296949165",
  "locked": true,
  "userName": "test1",
  "enabled": true,
  "phoneNumbers": [
    {
      "value": "180xxxxxxxx"
    }
  ],
     "userBelongs": [{
     	"belong": "0101",
     	"mainOu": true,
     	"extendFields": {
     		"role_name": "测试",
     		"work_sort": "22"
     	}
     }, {
     	"belong": "0102",
     	"mainOu": false,
     	"extendFields": {
     		"role_name": "机器人",
     		"company": "01",
     		"work_sort": "23",
     		"post": "123"
     	}
     }]
}

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

修改账户

method: PUT

content-Type: application/json

参数名

参数值

备注

userName

{userName}

账户名称,唯一

id

{id}

用户ID,与外部ID值一样

displayName

{displayName}

用户的显示名称,唯一

emails

{emails}

邮箱

phoneNumbers

{phoneNumbers}

手机号, 只能一个且唯一

externalId

{externalId}

外部ID,唯一,不为空

belongs

{belongs}

为账户指定组织单位

organzationsOrderList

{organzationsOrderList}

账户在所属机构下的排序号

locked

boolean

是否锁定账户,ture锁定账户,false启用账户。锁定账户后将不能登录应用系统

enabled

boolean

是否禁用账户,ture禁用账户,false启用账户。禁用账户后将不能登录应用系统

extendField

{extendField}

扩展字段,attributes为系统定义扩展字段

├─ img_dd

{extendFields.mainOu}

钉钉头像id

├─ company_code

{extendFields.company_code}

公司信息

├─ startTime

{extendFields.startTime}

跟班学习开始时间

├─ endTime

{extendFields.endTime}

跟班学习结束时间

├─ learnUnit

{extendFields.learnUnit}

跟班学习公司编码

├─ learnDepartment

{extendFields.learnDepartment}

跟班学习部门编码

├─ learnPost

{extendFields.learnPost}

跟班学习岗位编码

├─ emp_cardNum

{extendFields.emp_cardNum}

物理卡号

├─ emp_mark

{extendFields.emp_mark}

姓名全拼

├─ tool_type

{extendFields.tool_type}

用工形式

├─ is_res_person

{extendFields.is_res_person}

部门负责人标识

├─ is_guidance

{extendFields.is_guidance}

部门领导标识

├─ role_code

{extendFields.role_code}

所属岗位

├─ emp_img

{extendFields.emp_img}

头像地址

├─ sex

{extendFields.sex}

性别,[{男:1},{女:2},{未知的性别:0},{未说明的性别:9}]

userBelongs

{userBelongs}

账户所属组织

├─ belong

{userBelongs.belong}

组织外部id

├─ mainOu

{userBelongs.mainOu}

是否为主职,true主职,false副职

├─ extendFields

{userBelongs.extendFields}

人员-组织扩展字段,一般兼职的扩展字段在这取

─├─ company

{userBelongs.extendFields.company}

兼职单位(兼职公司信息)

─├─ post

{userBelongs.extendFields.post}

任职岗位code

─├─ role_name

{userBelongs.extendFields.role_name}

职务

─├─ work_sort

{userBelongs.extendFields.work_sort}

任职排序号

Request Body示例:

{
  "emails": [
    {
      "value": "test@test.com",
      "primary": true
    }
  ],
  "belongs": [
    {
      "belongOuUuid": "testUuid"
    }
  ],
  "displayName": "test1",
  "extendFields": {
    "testAttr": "1"
  },
  "externalId": "536607420296949165",
  "id": "536607420296949165",
  "locked": true,
  "userName": "test1",
  "enabled": true,
  "phoneNumbers": [
    {
      "value": "180xxxxxxxx"
    }
  ],
     "userBelongs": [{
     	"belong": "0101",
     	"mainOu": true,
     	"extendFields": {
     		"role_name": "测试",
     		"work_sort": "22"
     	}
     }, {
     	"belong": "0102",
     	"mainOu": false,
     	"extendFields": {
     		"role_name": "机器人",
     		"company": "01",
     		"work_sort": "23",
     		"post": "123"
     	}
     }]
}

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

删除账户

method: DELETE

content-Type: application/json

参数名

参数值

备注

id

{id}

本账户的外部ID,对应应用系统的唯一标识

Request Body示例:

/developer/scim/account?id=4544581305390943066

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

岗位

url地址如: developer/scim/group

添加岗位

method: POST

content-Type: application/json

参数名

参数值

备注

ouExternalId

{ouExternalId}

岗位组织的外部id,一般采用这个字段作为组织唯一值

ouUuid

{ouUuid}

所属父级组织机构的uuid

belongs

{belongs}

所属组织,一般为空

displayName

{displayName}

岗位名称

members

{members}

岗位下的成员,一般为空

extendFields

{extendFields}

扩展字段

id

{id}

岗位id(唯一值)

enabled

{enabled}

是否启用(暂时没用)

Request Body示例:

{
  "ouExternalId": "fafaf123",
  "ouUuid": "8fad61d53e7691dffd1c0a25cdd32ee5k3uutib9yfN",
  "belongs": [ ],
  "displayName": "业务开发岗",
  "members": [ ],
  "extendFields": { },
  "id": "ywkfg2",
  "enabled": false
}

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

更新岗位

method: PUT

content-Type: application/json

参数名

参数值

备注

ouExternalId

{ouExternalId}

岗位组织的外部id,一般采用这个字段作为组织唯一值

ouUuid

{ouUuid}

所属父级组织机构的uuid

belongs

{belongs}

所属组织,一般为空

displayName

{displayName}

岗位名称

members

{members}

岗位下的成员,一般为空

extendFields

{extendFields}

扩展字段

id

{id}

岗位id(唯一值)

enabled

{enabled}

是否启用(暂时没用)

Request Body示例:

{
  "ouExternalId": "fafaf123",
  "ouUuid": "8fad61d53e7691dffd1c0a25cdd32ee5k3uutib9yfN",
  "belongs": [ ],
  "displayName": "业务开发岗",
  "members": [ ],
  "extendFields": { },
  "id": "ywkfg2",
  "enabled": false
}

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

删除岗位

method: DELETE

content-Type: application/json

参数名

参数值

备注

ouExternalId

{ouExternalId}

岗位组织的外部id,一般采用这个字段作为组织唯一值

ouUuid

{ouUuid}

所属父级组织机构的uuid

belongs

{belongs}

所属组织,一般为空

displayName

{displayName}

岗位名称

members

{members}

岗位下的成员,一般为空

extendFields

{extendFields}

扩展字段

id

{id}

岗位id(唯一值)

enabled

{enabled}

是否启用(暂时没用)

Request Body示例:

{
  "ouExternalId": "fafaf123",
  "ouUuid": "8fad61d53e7691dffd1c0a25cdd32ee5k3uutib9yfN",
  "belongs": [ ],
  "displayName": "业务开发岗",
  "members": [ ],
  "extendFields": { },
  "id": "ywkfg2",
  "enabled": false
}

SP需要返回 Response Body示例:

{ "code": 200, "message": "" }

参数说明:

字段名

错误码

备注

code,int类型

200

SP返回错误码200,即视为成功

message,错误信息,String类型

400

参数异常

SP推至IDaaS

集成方式

针对不同SP推送至IDaaS的方式,我们提供不同的接入指引,只需要按需选择相关接入指引即可实现不同SP同步数据到IDaaS的流程,目前我们支持两种方式,一种采用调用API的方式同步数据到IDaaS,也可以通过统一连接器Connector实现,见数据同步方案

API集成步骤

1. 创建应用(如果有则不需要创建)

该步骤主要目的帮助开发者在IDaaS平台上如何创建一个应用,以及获取AK,SK,用于识别是哪个应用向IDaaS平台同步数据。这里建议不要混用其他应用。

2. 获取access_token

该步骤主要帮助开发者获取调用机构或人员API时所需的token,该token是对API接口做到保护作用,必须使用正确的SK,AK才能获取到token。

3. 调用接口

该步骤主要帮助开发者开发对应的机构或人员API接口,通过下面的文档介绍调用。

API文档

1. 应用获取token

调用API接口时,需要先获取access_token,调用接口时传入access_token有两种方式:

  • URL值后:URL?access_token={access_token}

  • Header里面:Authorization Bearer {access_token}(注意 bearer与access_token之间的空格)

client_id和client_secret即为创建应用时候查看到的API Key和APi Secret

Path:/oauth/token
Method: POST
请求方法: POST
Headers:

参数名称

参数值

是否必须

示例

备注

Content-Type

application/x-www-form-urlencoded

Body:

参数名称

参数类型

是否必须

示例

备注

client_id

text

client_id={API Key}

应用详情 API Key值

client_secret

text

client_secret={API Secret}

应用详情 API Secret值

scope

text

scope=read

固定值

grant_type

text

grant_type=client_credentials

固定值

返回数据

名称

类型

是否必须

默认值

备注

其他信息

access_token

string

必须

access_token凭证

token_type

string

必须

凭证类型

固定值 bearer

expires_in

number

必须

有效期

单位为秒

scope

string

必须

授权范围

固定值 read

jti

string

非必须

access_token为jwt格式时,才有此值。

2f5a91a9-e939-401e-8a0b-db0b5fdee42a

请求地址示例: {{idaas_host}}/oauth/token?client_id={{client_id}}&client_secret={{client_secret}}&scope=read&grant_type=client_credentials

返回示例 :

{
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYXBwX2FwaV9yZXNvdXJjZSIsImVudGVycHJpc2VfbW9iaWxlX3Jlc291cmNlIiwiYmZmX2FwaV9yZXNvdXJjZSJdLCJzY29wZSI6WyJyZWFkIl0sImV4cCI6MTYyMDQ4NDI3MCwiYXV0aG9yaXRpZXMiOlsiUk9MRV9BUFBMSUNBVElPTl9BUEkiLCJST0xFX0VORF9VU0VSIl0sImp0aSI6ImQ0N2U3M2RlLTFiMTctNDgxZS05Yzg4LTNkODdlZGE1ODllZiIsImNsaWVudF9pZCI6IjBmZmI3MWI5MDQwY2IxZWM5OGZlZTQ1ZTllYWVkODQxWjIwQ2t0bmRremQifQ.UxPJWUOA9YWvKHRZ8VWgu1qwKCYKVBYfQfBMpJyvIQk",
    "token_type": "bearer",
    "expires_in": 43199,
    "scope": "read",
    "jti": "d47e73de-1b17-481e-9c88-3d87eda589ef"
}

image.png

2. 调用API

组织机构

推送组织机构

Path:/api/bff/v1.2/developer/scim/organization/create
Method: POST
Headers

参数名称

参数值

是否必须

示例

备注

Content-Type

application/json

Authorization

Bearer {access_token}

应用获取到的access_token

Body

名称

类型

是否必须

默认值

备注

其他信息

organizationName

string

必须

机构名称

externalId

string

非必须

组织机构的唯一id,该id是SP同步过来的,所以在IDaaS中称为外部id,如果不填IDP将随机生成一个外部id。选填

parentExternalId

string

必须

所属的父级组织机构的唯一id, 该id是SP同步过来的, 所以在IDaaS中称为父级外部id,通过在系统”机构及组”中在组织机构属性中查看参数“外部ID”即可。

type

string

非必须

自建组织单位:SELF_OU,自建部门:DEPARTMENT,外部同步组织单位:EXTERNAL_OU,默认为DEPARTMENT

sortNumber

string

非必须

排序号

enabled

boolean

非必须

是否启用

true:启用,false:禁用,默认为true。

description

string

必须

描述

用于说明当前OU,不超过500个字符。

extendFields

object

非必须

扩展字段

在IDP数据字典中定义,如果自定义扩展的字段是必填选项,则该属性必填

├─ test1

string

非必须

返回数据

名称

类型

是否必须

默认值

备注

其他信息

success

boolean

必须

是否成功

code

string

必须

成功为200

message

null

必须

错误信息

success为false取值提示给用户

requestId

string

必须

无须关注

data

object

非必须

├─ externalId

string

非必须

返回的外部id

├─ id

string

非必须

uuid

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:externalId:123456重复

请求参数错误

400

InvalidParameter.ExternalId.Exist

例如:外部ID重复,externalId:123456

外部id重复

400

InvalidParameter.Name.Exist

例如:OU名称重复,OrganizationName:研发部

组织机构的名称已存在

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/organization/create
请求示例:

{
    "organizationName": "成都研发部",
    "externalId": "123456",
    "parentExternalId": "2961201661376138058",
    "type": "DEPARTMENT",
    "sortNumber": "3",
    "enabled":true,
    "description": "负责产品研发",
    "extendFields":{
         "test1":"123"
    }
}

返回示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1620441890839$1be504af-ddc2-c5e3-ef2e-35c9682890af",
    "data": {
        "externalId": "123456",
        "id": "48dac1a9e83bc7fb3436283cd9fd00e1dOxlgdGxN15"
    }
}

image.png

修改组织机构

Path:/api/bff/v1.2/developer/scim/organization/update
Method: PUT
Headers

参数名称

参数值

是否必须

示例

备注

Content-Type

application/json

Authorization

Bearer {access_token}

应用获取到的access_token

Body

名称

类型

是否必须

默认值

备注

其他信息

organizationName

string

必须

机构名称

externalId

string

非必须

组织机构的唯一id,该id是SP同步过来的,所以在IDaaS中称为外部id,如果不填IDP将随机生成一个外部id。选填

parentExternalId

string

必须

所属的父级组织机构的唯一id, 该id是SP同步过来的, 所以在IDaaS中称为父级外部id,通过在系统”机构及组”中在组织机构属性中查看参数“外部ID”即可。

type

string

非必须

自建组织单位:SELF_OU,自建部门:DEPARTMENT,默认为DEPARTMENT

sortNumber

string

非必须

排序号

enabled

boolean

非必须

是否启用

true:启用,false:禁用,默认为true。

description

string

必须

描述

用于说明当前OU,不超过500个字符。

extendFields

object

非必须

扩展字段

在IDP数据字典中定义,如果自定义扩展的字段是必填选项,则该属性必填

├─ test1

string

非必须

返回数据

名称

类型

是否必须

默认值

备注

其他信息

success

boolean

必须

是否成功

code

string

必须

成功为200

message

null

必须

错误信息

success为false取值提示给用户

requestId

string

必须

无须关注

data

object

非必须

├─ externalId

string

非必须

返回的外部id

├─ id

string

非必须

uuid

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:描述信息不能超过500个字符

请求参数错误

400

EntityNotFound

例如:组织机构不存在

未查找到要更新的OU

400

InvalidParameter.Name.Exist

例如:OU名称重复,OrganizationName:研发部

组织机构的名称已存在

400

OperationDenied

例如:OU不能移动到自己子级下

不被允许的操作

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/organization/update
请求示例 :

{
    "description": "",
    "organizationName": "成都研发部",
    "externalId": "123456",
    "parentExternalId": "2961201661376138058",
    "enabled":false,
    "type": null,
    "sortNumber": "5",
    "extendFields":{
       "test1":"1235123"
    }
}

返回示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1620441921304$7a08f7ce-9120-1a2c-aa20-a835abbcb2d8",
    "data": {
        "externalId": "123456",
        "id": "48dac1a9e83bc7fb3436283cd9fd00e1dOxlgdGxN15"
    }
}

image.png

删除组织机构

Path:/api/bff/v1.2/developer/scim/organization/delete
Method: DELETE
Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

应用获取到的access_token

Query

参数名称

是否必须

示例

备注

externalId

外部id

返回数据

名称

类型

是否必须

默认值

备注

其他信息

success

boolean

必须

是否成功

code

string

必须

成功为200

message

null

必须

错误信息

success为false取值提示给用户

requestId

string

必须

无须关注

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:外部id(externalId)不能为空

请求参数错误

400

EntityNotFound

例如:组织机构不存在

未查找到要更新的OU

400

OperationDenied.OUContainsChildren

例如:该OU存在关联关系,不能删除

未查找到要更新的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/organization/delete?externalId={{externalId}}
返回示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1620441956051$13d70a5d-ef59-c447-9a30-12aeac3c5c2c"
}

image.png

账户

推送账户

Path:/api/bff/v1.2/developer/scim/account/create
Method: POST
Headers

参数名称

参数值

是否必须

示例

备注

Content-Type

application/json

Authorization

Bearer {access_token}

Body

名称

类型

是否必须

默认值

备注

其他信息

externalId

string

非必须

用户的唯一id

如果不填,将随机生成一个,并在结果中返回

userName

string

必须

IDaaS平台主账户

displayName

string

必须

用户的显示名称

password

string

非必须

IDaaS平台主账户密码

若为空,则将使用系统随机密码。

firstLogin

boolean

非必须

是否首次登录

打开密码策略的强制改密的前提下,true 表示触发首次登录强制修改密码

email

string

非必须

邮箱

和手机号必有一个

phoneNumber

string

非必须

手机号, 只能一个且唯一

和邮箱必有一个

phoneRegion

string

非必须

手机号区号

enabled

boolean

非必须

是否启用

true:启用,false:禁用,默认为true。

locked

boolean

非必须

是否锁定

true:已锁定,false:未锁定,默认为false。

description

string

非必须

描述信息

expireTime

Date

非必须

用户过期时间

mainOUBelong

string

非必须

主OU,归属的组织机构的外部ID

选填,没有则是使用belongs中的第一个作为主OU

userBelongs

string []

必须

所属ou的外部id

为组织外部id的集合,必填

├─belong

String

必须

具体的组织外部id

├─mainOu

boolean

必须

是否主组织

true:是,false:不是

├─extendFields

object

非必须

自定义”人员-组织属性”数据字典

填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填

organzationsOrderList

object[]

非必须

账户在所属组织机构下的排序号

一个账户可在不同组织机构下有不同的排序号

├─externalId

string

非必须

组织的外部id

├─displayOrder

long

非必须

显示顺序

extendFields

object

非必须

自定义扩展的字段,在IDP数据字典中定义。

填写则代表更新该项信息。更新时,如果自定义扩展的字段是必填选项,则该属性必填

├─ test

string

非必须

├─ test1

string

非必须

applicationUuid

string

非必须

应用uuid

选填,应用的uuid可在应用列表-具体应用详情里查看,若传递则代表需要推送应用子账户,子账户信息参考applicationUsers

applicationUsers

object[]

非必须

应用子账户列表

├─ username

string

必须

子账户名

├─ xxx…

string

非必须

子账户扩展属性’字段值’

​注意,“xxx” 不是固定值,“xxx”代表子账户扩展属性定义的数据字典’字段值’,是动态的,请在应用群组下-> 具体群组-> 数据字典查看,”…” 代表有多个

返回数据

名称

类型

是否必须

默认值

备注

其他信息

success

boolean

必须

是否成功

code

string

必须

成功为200

message

null

必须

错误信息

success为false取值提示给用户

requestId

string

必须

无须关注

data

object

非必须

├─ externalId

string

非必须

返回的外部id

├─ id

string

非必须

uuid

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:账户名称不能为空

请求参数错误

400

InvalidParameter.ExternalId.Exist

例如:externalId外部ID重复

外部id重复

400

InvalidParameter.Name.Exist

例如:账户名(username)已经存在

账户名称已经存在

400

InvalidParameter.Name.Exist

例如:账户名(username)已经存在

账户名称已经存在

400

InvalidParameter.DisplayName.Exist

例如:显示名已经存在

显示名已经存在

400

InvalidParameter.Email.Exist

例如:邮箱(email)已被其他账户绑定

邮箱(email)已被其他账户绑定

400

InvalidParameter.PhoneNumber.Exist

例如:手机号(phoneNumber)已被其他账户绑定

手机号(phoneNumber)已被其他账户绑定

400

InvalidParameter.PhoneEmail.AllEmpty

例如:手机号(phoneNumber)和邮箱(email)必须选填一个

手机号(phoneNumber)和邮箱(email)不能全为空

400

EntityNotFound

例如:所属组织机构(belongs):123456不存在

未查找到externalId对应的OU

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/account/create
请求示例 :

{
    "externalId": "123456",
    "userName": "developer2",
    "displayName": "开发人员3",
    "password": "Jdev@12345",
    "email": "test2@test.com",
    "phoneNumber": "",
    "description": "",
    "phoneRegion":"",
    "expireTime":null,
    "userBelongs": [{
        "belong": "123456",
        "mainOu": true,
        "extendFields": {
            "attr": "123",
            "position": "pdsa"
        }
    }],
    "organzationsOrderList": [{
        "externalId": "test1",
        "displayOrder": 3243243
    }],
    "extendFields": {
        "test": "123456",
        "test1": "woman"
    },
    "applicationUuid":"2029afb7cfa9dcbf01f4c16df2632f79SBhU2RbjQb9",
    "applicationUsers":[
        {
          "username":"developer2",
          "adCode":"ad111",
          "ldapCode":"ldap111"
        },
        {
          "username":"developer22",
          "adCode":"ad222",
          "ldapCode":"ldap222"
        }
      ]
}

成功示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1620442045576$7b6c6eb2-f581-1cd3-61df-e25fbd81e432",
    "data": {
        "externalId": "123456",
        "id": "102c03563bc868f5055438828f1b30063g5xe8NBpKk"
    }
}

image.png

修改账户

Path:/api/bff/v1.2/developer/scim/account/update
Method: PUT
Headers

参数名称

参数值

是否必须

示例

备注

Content-Type

application/json

Authorization

Bearer {access_token}

Body

名称

类型

是否必须

默认值

备注

其他信息

externalId

string

非必须

userName

string

非必须

displayName

string

非必须

password

string

非必须

email

string

非必须

phoneNumber

string

非必须

expireTime

string

非必须

description

string

非必须

locked

boolean

非必须

userBelongs

string []

必须

所属ou的外部id

为组织外部id的集合,必填

├─belong

String

必须

具体的组织外部id

├─mainOu

boolean

必须

是否主组织

true:是,false:不是

├─extendFields

object

非必须

自定义”人员-组织属性”数据字典

填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填

extendFields

object

非必须

├─ test

string

非必须

├─ test1

string

非必须

applicationUuid

string

非必须

应用uuid

选填,应用的uuid可在应用列表-具体应用详情里查看,若传递则代表需要推送应用子账户,子账户信息参考applicationUsers

applicationUsers

object[]

非必须

应用子账户列表

├─ username

string

必须

子账户名

├─ xxx…

string

非必须

子账户扩展属性’字段值’

注意,“xxx” 不是固定值,“xxx”代表子账户扩展属性定义的数据字典值,是动态的,请在应用群组下-> 具体群组-> 数据字典查看,”…” 代表有多个

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:账户名称不能为空

请求参数错误

400

InvalidParameter.ExternalId.Exist

例如:externalId外部ID重复

外部id重复

400

InvalidParameter.Name.Exist

例如:账户名(username)已经存在

账户名称已经存在

400

InvalidParameter.DisplayName.Exist

例如:显示名已经存在

显示名已经存在

400

InvalidParameter.Email.Exist

例如:邮箱(email)已被其他账户绑定

邮箱(email)已被其他账户绑定

400

InvalidParameter.PhoneNumber.Exist

例如:手机号(phoneNumber)已被其他账户绑定

手机号(phoneNumber)已被其他账户绑定

400

InvalidParameter.PhoneEmail.AllEmpty

例如:手机号(phoneNumber)和邮箱(email)必须选填一个

手机号(phoneNumber)和邮箱(email)不能全为空

400

InvalidParameter.ExternalId.NotExist

例如:通过externalId查询不到账户

未查找到externalId对应的账户

400

EntityNotFound

例如:所属组织机构(belongs):123456不存在

未查找到externalId对应的OU

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/account/update
请求示例 :

{
    "externalId": "123456",
    "userName": "developer2",
    "displayName": "开发人员4",
    "password": "Jdev@12345",
    "email": "test2@test.com",
    "phoneNumber": "",
    "description": "",
    "mainOUBelong": "",
    "userBelongs": [{
        "belong": "123456",
        "mainOu": true,
        "extendFields": {
            "attr": "123",
            "position": "pdsa"
        }
    }],
    "organzationsOrderList": [{
        "externalId": "test1",
        "displayOrder": 3243243
    }],
    "extendFields": {
        "test": "123456",
        "test1": "woman"
    },
    "applicationUuid":"2029afb7cfa9dcbf01f4c16df2632f79SBhU2RbjQb9",
    "applicationUsers":[
        {
          "username":"developer2",
          "adCode":"ad111",
          "ldapCode":"ldap111"
        },
        {
          "username":"developer22",
          "adCode":"ad222",
          "ldapCode":"ldap222"
        }
      ]
}

返回示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1620442079935$84b7e280-7242-6830-f632-14bfe2f7e8d4",
    "data": {
        "externalId": "123456",
        "id": "102c03563bc868f5055438828f1b30063g5xe8NBpKk"
    }
}

image.png

删除账户

Path:/api/bff/v1.2/developer/scim/account/delete
Method: DELETE

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名称

是否必须

示例

备注

externalId

外部ID

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:外部id(externalId)不能为空

请求参数错误

400

EntityNotFound

例如:账户不存在

未查找到要删除的账户

403

OperationDenied

例如:管理员 admin 不能删除

删除操作不被允许

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/account/delete?externalId={{externalId}}
返回示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1620442094115$5c057847-70bb-0391-306b-162643fd994c"
}

image.png

离职账户

Path:/api/bff/v1.2/developer/scim/account/archive
Method: PUT

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Body

参数名称

是否必须

示例

备注

externalId

外部ID

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:外部id(externalId)不能为空

请求参数错误

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/account/archive
返回示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1638948843358$fac3b9ad-b426-b2d7-8c69-2746b8d050bf",
    "data": null
}

image.png

返聘账户

Path:/api/bff/v1.2/developer/scim/account/rehired
Method: PUT
Headers

参数名称

参数值

是否必须

示例

备注

Content-Type

application/json

Authorization

Bearer {access_token}

Body

名称

类型

是否必须

默认值

备注

其他信息

externalId

string

必须

账户外部id

organizationExternalId

string

非必须

返聘后账户所属组织机构外部id

不填则返聘至原组织机构下,若原组织机构不存在则返聘至根组织机构下

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:外部id(externalId)不能为空

请求参数错误

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/account/rehired
请求示例 :

{
    "externalId":"12345678",
    "organizationExternalId":"11648579523462"
}

返回示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1620442079935$84b7e280-7242-6830-f632-14bfe2f7e8d4",
    "data": {
        "externalId": "123456",
        "id": "102c03563bc868f5055438828f1b30063g5xe8NBpKk"
    }
}

image.png

推送组

Path:/api/bff/v1.2/developer/scim/group/create
Method: POST
Headers

参数名称

参数值

是否必须

示例

备注

Content-Type

application/json

Authorization

Bearer {access_token}

Body

名称

类型

是否必须

默认值

备注

其他信息

externalId

string

非必须

账户组id,唯一

选填,不填时,系统会随机生成一个,并在结果中返回

displayName

string

必须

组显示名称。必填

ouExternalId

string

必须

所属组织单位(OU)的外部ID,必填

description

string

非必须

描述信息,选填

addMembers

object []

非必须

需要添加的组成员

已经存在的账户外部ID和账户名

├─accountExternalId

String

非必须

账户外部ID,如果同时传了accountExternalId和username,以accountExternalId为准

├─username

string

非必须

账户名,如果同时传了accountExternalId和username,以accountExternalId为准

extendFields

object

非必须

自定义扩展的字段,在IDP数据字典中定义。

填写则代表更新该项信息。更新时,如果自定义扩展的字段是必填选项,则该属性必填

├─ test

string

非必须

├─ test1

string

非必须

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├─ externalId

string

返回的外部id

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:组名称不能为空

请求参数错误

400

InvalidParameter.DisplayName.Exist

例如:当前OU下,组名已经存在

显示名已经存在

400

InvalidParameter.ExternalId.Exist

例如:externalId已存在

externalId已存在

400

EntityNotFound

例如:OU不存在

组隶属的OU不存在

403

Forbidden

例如:没有权限操作该组

没有权限操作该组

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/group/create
请求示例 :

{
  "externalId": "121-11",
  "displayName": "测试同步组11",
  "ouExternalId": "605016592710192945",
  "addMembers": [
    {
      "accountExternalId":"",
      "username":"test1"
    }
  ],
  "extendFields": {
    "test":"123456"
  }
}

成功示例 :

{
  "success": true,
  "code": "200",
  "message": null,
  "requestId": "1638516367923$28829ca7-b8c8-d03c-9558-b91328184e9e",
  "data": {
    "externalId": "121-11"
  }
}

img.png

修改组

Path:/api/bff/v1.2/developer/scim/group/update
Method: PUT
Headers

参数名称

参数值

是否必须

示例

备注

Content-Type

application/json

Authorization

Bearer {access_token}

Body

名称

类型

是否必须

默认值

备注

其他信息

externalId

string

必须

账户组id,唯一

displayName

string

非必须

组显示名称。必填

description

string

非必须

描述信息,选填

选填,填写时代表更新

addMembers

object []

非必须

需要添加的组成员

已经存在的账户外部ID和账户名

├─accountExternalId

String

非必须

账户外部ID,如果同时传了accountExternalId和username,以accountExternalId为准

├─username

string

非必须

账户名,如果同时传了accountExternalId和username,以accountExternalId为准

deleteMembers

object[]

非必须

需要移除的组成员,

已经存在的账户外部ID和账户名

├─accountExternalId

String

非必须

账户外部ID,如果同时传了accountExternalId和username,以accountExternalId为准

├─username

string

非必须

账户名,如果同时传了accountExternalId和username,以accountExternalId为准

extendFields

object

非必须

自定义扩展的字段,在IDP数据字典中定义。

填写则代表更新该项信息。更新时,如果自定义扩展的字段是必填选项,则该属性必填

├─ test

string

非必须

├─ test1

string

非必须

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:组的externalId参数不能为空

请求参数错误

400

InvalidParameter.DisplayName.Exist

例如:当前OU下,组名已经存在

显示名已经存在

400

InvalidParameter.ExternalId.NotExist

例如:externalId不存在

externalId不存在

403

Forbidden

例如:没有权限操作该组 没有权限操作该组

请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/group/update
请求示例 :

{
  "externalId": "121",
  "description": "tttt测试",
  "displayName": "测试t121",
  "addMembers": [
    {
      "accountExternalId":"",
      "username":"test1"
    }
  ],
  "deleteMembers": [
    {
      "accountExternalId":"",
      "username":"test2"
    }
  ],
  "extendFields": {
    "test":"ttt测试"
  }
}

返回示例 :

{
  "success": true,
  "code": "200",
  "message": null,
  "requestId": "BF66FA08-E57B-4387-90C0-A72E41307239",
  "data": null
}

img.png

删除组

Path:/api/bff/v1.2/developer/scim/group/delete
Method: DELETE

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名称

是否必须

示例

备注

externalId

外部ID

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:组的externalId参数不能为空

请求参数错误

400

EntityNotFound

例如:查询不到组信息

未查询到组信息

400

OperationDenied.GroupContainsChildren

例如:组有关联成员(如有子成员),不能删除

组有关联成员(如有子成员),不能删除

403

Forbidden

例如:没有权限操作该组

没有权限操作该组

请求地址示例:{{idaas_host}}//api/application/group?externalId=1694618271068407094 请求示例 :

{
  "success": true,
  "code": "200",
  "message": null,
  "requestId": "BF66FA08-E57B-4387-90C0-A72E41307239",
  "data": null
}

img.png

SP从IDaaS拉取

此方案主要针对业务系统需要单独拉取IDaaS组织机构和账户数据提供。

集成方式

集成方式和SP推至IDaas一致,请查看SP推至IDaas

API文档

组织机构

查询组织机构

Path:/api/bff/v1.2/developer/scim/organization/detail
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

参数值

类型

备注

externalId

{externalId}

String

组织机构的外部id(externalId)

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├externalId

string

组织机构的外部id

├organizationName

string

组织机构名称

├externalId

string

组织机构的外部id,和id一样

├parentExternalId

string

父组织机构外部id

├type

string

类型

├enabled

string

是否可用

├description

string

描述

├nodeType

string

组织机构类型

ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”)
MASTER_TREE_ROOT(“主树根节点”, “Master tree root node”)
APP_GROUP(“应用群组”, “App Group Node”) 
SLAVE_TREE_ROOT(“子树根节点”, “Slave tree root node”) 
SELF_CREATED(“自建节点”, “Self Create”) 
REF_NODE(“引用主树”, “Reference main tree”);

├refOrgExternalId

string

引用人事节点外部ID

当nodeType为引用主树类型时,该ID代表当前节点引用的人事节点ID

└extendFields

object

扩展字段

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:外部id(externalId)不能为空

请求参数错误

400

EntityNotFound

例如:组织机构不存在

未查找到要更新的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:/api/bff/v1.2/developer/scim/organization/detail?externalId=1694618271068407094

响应示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "B5D4A6D1-9C51-4AC3-A413-4A27EE1C1474",
    "data": {
        "organizationName": "ceshi导入0009",
        "externalId": "9999",
        "parentExternalId": "764712910283009725",
        "type": "SELF_OU",
        "rootNode": false,
        "sortNumber": 0,
        "enabled": true,
        "description": null,
        "extendFields": {
            "4": "asd"
        }
    }
}

获取组织机构列表

若传入的查询参数externalId为引用节点组织外部ID,则会返回引用的人事组织节点下的所有组织

Path: /api/bff/v1.2/developer/scim/organization/list
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

参数值

类型

备注

externalId

{externalId}

String

组织单位的外部id(externalId)。选填

start

{start}

Number

分页开始位置,默认0

limit

{limit}

Number

分页限制条数,默认20

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├ refOrgExternalId

string

若传入的查询参数externalId为引用节点组织外部ID,则会返回引用的人事组织节点外部ID

├ organizations

string

返回的组织机构信息

├─externalId

string

组织机构的外部id

├─organizationName

string

组织机构名称

├─externalId

string

组织机构的外部id,和id一样

├─parentExternalId

string

父组织机构外部id

├─ type

string

类型

├─enabled

string

是否可用

├─description

string

描述

├─nodeType

string

组织机构类型

ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”)
MASTER_TREE_ROOT(“主树根节点”, “Master tree root node”)
APP_GROUP(“应用群组”, “App Group Node”) 
SLAVE_TREE_ROOT(“子树根节点”, “Slave tree root node”) 
SELF_CREATED(“自建节点”, “Self Create”) 
REF_NODE(“引用主树”, “Reference main tree”);

├─refOrgExternalId

string

引用人事节点外部ID

当nodeType为引用主树类型时,该ID代表此节点引用的人事组织节点外部ID

└─extendFields

object

扩展字段

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求示例 :

获取该公司的所有组织机构:/api/bff/v1.2/developer/scim/organization/list

获取某个OU下所有组织机构的信息:/api/bff/v1.2/developer/scim/organization/list?externalId=5986176890912195413

响应示例:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "3CCA4939-170C-46AA-BE11-F3DE924FC0E9",
    "data": {"organizations": [
            {
                "organizationName": "成都研发部",
                "externalId": "2858068028015036528",
                "parentExternalId": "129733886490329012",
                "type": "DEPARTMENT",
                "rootNode": false,
                "sortNumber": 0,
                "enabled": true,
                "description": "",
                "extendFields": {}
            },
            {
                "organizationName": "成都分公司",
                "externalId": "129733886490329012",
                "parentExternalId": "6721629573848908864",
                "type": "SELF_OU",
                "rootNode": false,
                "sortNumber": 0,
                "enabled": true,
                "description": "",
                "extendFields": {}
            },
            {
                "organizationName": "测试研发部3-3",
                "externalId": "test3-3",
                "parentExternalId": "test3",
                "type": "DEPARTMENT",
                "rootNode": false,
                "sortNumber": 3,
                "enabled": true,
                "description": "通过SCIM同步组织机构",
                "extendFields": {
                    "test1": "1235123"
                }
            },
            {
                "organizationName": "研发部3-4",
                "externalId": "test3-4",
                "parentExternalId": "test3",
                "type": "DEPARTMENT",
                "rootNode": false,
                "sortNumber": 3,
                "enabled": true,
                "description": "研发分部",
                "extendFields": {
                    "test1": "123"
                }
            }
            ],
            "total": 4,
            "refOrgExternalId":""
    }
}

获取根节点组织机构信息

Path:/api/bff/v1.2/developer/scim/organization/root
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├externalId

string

组织机构的外部id

├organizationName

string

组织机构名称

├externalId

string

组织机构的外部id,和id一样

├parentExternalId

string

父组织机构外部id

├type

string

类型

├enabled

string

账户是否可用

├description

string

描述

├nodeType

string

组织机构类型

ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”)
MASTER_TREE_ROOT(“主树根节点”, “Master tree root node”)
APP_GROUP(“应用群组”, “App Group Node”) 
SLAVE_TREE_ROOT(“子树根节点”, “Slave tree root node”) 
SELF_CREATED(“自建节点”, “Self Create”) 
REF_NODE(“引用主树”, “Reference main tree”);

├refOrgExternalId

string

引用人事节点外部ID

当nodeType为引用主树类型时,该ID代表当前节点引用的人事节点ID

└extendFields

object

扩展字段

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:cannot get current enterpriseUuid(获取不到当前租户信息)

请求参数错误

400

EntityNotFound

例如:cannot get rootOU

未查找根OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例: /api/bff/v1.2/developer/scim/organization/root

响应示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "C757F8D6-E96A-4399-823C-E55AED4D59C3",
    "data": {
        "organizationName": "OuName",
        "externalId": "6721629573848908864",
        "parentExternalId": null,
        "type": "SELF_OU",
        "rootNode": true,
        "sortNumber": 0,
        "enabled": true,
        "description": "",
        "extendFields": {}
    }
}

获取组织机构的直属子级

若传入的查询参数externalId为引用节点组织外部ID,则会返回引用的人事组织节点下一级直属子级组织

Path:/api/bff/v1.2/developer/scim/organization/children
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

参数值

类型

备注

externalId

{externalId}

String

组织单位的外部id(externalId)。选填

start

{start}

Number

分页开始位置,默认0

limit

{limit}

Number

分页限制条数,默认20

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├ refOrgExternalId

string

若传入的查询参数externalId为引用节点组织外部ID,则会返回引用的人事组织节点外部ID

├ organizations

string

返回的组织机构信息

├─externalId

string

组织机构的外部id

├─organizationName

string

组织机构名称

├─externalId

string

组织机构的外部id,和id一样

├─parentExternalId

string

父组织机构外部id

├─ type

string

类型

├─enabled

string

账户是否可用

├─description

string

描述

├─nodeType

string

组织机构类型

ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”)
MASTER_TREE_ROOT(“主树根节点”, “Master tree root node”)
APP_GROUP(“应用群组”, “App Group Node”) 
SLAVE_TREE_ROOT(“子树根节点”, “Slave tree root node”) 
SELF_CREATED(“自建节点”, “Self Create”) 
REF_NODE(“引用主树”, “Reference main tree”);

├─refOrgExternalId

string

引用人事节点外部ID

当nodeType为引用主树类型时,该ID代表当前节点引用的人事节点ID

└─extendFields

object

扩展字段

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:/api/bff/v1.2/developer/scim/organization/children?externalId=1

响应示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "26AD790D-FB7D-4ED9-B07E-82448C929F88",
    "data": {
        "organizations": [
            {
                "organizationName": "销售部",
                "externalId": "130015784",
                "parentExternalId": "1",
                "type": "DEPARTMENT",
                "rootNode": false,
                "sortNumber": 130015784,
                "enabled": true,
                "description": null,
                "extendFields": {
                }
            },
            {
                "organizationName": "研发部",
                "externalId": "129387071",
                "parentExternalId": "1",
                "type": "DEPARTMENT",
                "rootNode": false,
                "sortNumber": 129387071,
                "enabled": true,
                "description": null,
                "extendFields": {
                }
            },
            {
                "organizationName": "测试部",
                "externalId": "129083981",
                "parentExternalId": "1",
                "type": "DEPARTMENT",
                "rootNode": false,
                "sortNumber": 129083981,
                "enabled": true,
                "description": null,
                "extendFields": {
                }
            }
        ],
        "total": 3,
        "refOrgExternalId":""
    }
}

获取组织机构在根组织机构下的详情

Path:/api/bff/v1.2/developer/scim/organization/ou_tree/detail
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

参数值

类型

备注

externalId

{externalId}

String

组织单位的外部id(externalId)。

ouTreeId

{ouTreeId}

String

根组织单位的外部id(externalId)。

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├organizationName

string

组织机构名称

├externalId

string

组织机构的外部id,和id一样

├parentExternalId

string

父组织机构外部id

├type

string

类型

├enabled

boolean

是否可用

├description

string

描述

├extendFields

object

扩展字段

├nodeType

string

组织机构类型

ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”)
MASTER_TREE_ROOT(“主树根节点”, “Master tree root node”)
APP_GROUP(“应用群组”, “App Group Node”) 
SLAVE_TREE_ROOT(“子树根节点”, “Slave tree root node”) 
SELF_CREATED(“自建节点”, “Self Create”) 
REF_NODE(“引用主树”, “Reference main tree”);

├refOrgExternalId

string

引用人事节点外部ID

当nodeType为引用主树类型时,该ID代表当前节点引用的人事节点ID

├mainTree

boolean

查询参数ouTreeId组织是否是人事组织节点

├inRefTree

boolean

查询的组织是否在应用群组树下被引用

└refTreeInfo

object

应用群组下引用树节点详情

当该OU在应用群组被引用时(inRefTree=true)返回该节点在引用树中的详情

├parentRefNodeId

string

引用节点的ID

├parentRefNodeParentId

string

引用节点的上级ID

├parentRefNodePath

string

引用节点的完整路径

└virtualPath

string

当前OU在引用树的路径

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:/api/bff/v1.2/developer/scim/organization/ou_tree/detail?externalId=4976673832566876807&ouTreeId=6754318132683840690

响应示例 :

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "1638524635493$33f22ddb-ada2-fc94-53b6-6b48ba1cbb57",
    "data": {
        "organizationName": "部门12",
        "externalId": "4976673832566876807",
        "parentExternalId": "5874903584085219353",
        "type": "DEPARTMENT",
        "rootNode": false,
        "sortNumber": 0,
        "enabled": true,
        "description": "",
        "extendFields": {},
        "uuid": "0e5650d3a1a6368a5bb884c23a9a3ad7v8stn6k6xEF",
        "manager": [],
        "nodeType": "SELF_CREATED",
        "refOrgExternalId": null,
        "mainTree": false,
        "inRefTree": true,
        "refTreeInfo": [
            {
                "parentRefNodeId": "2782426129122542668",
                "parentRefNodeParentId": "6754318132683840690",
                "parentRefNodePath": "wceshi / 应用群组 / 钉钉 / 部门1",
                "virtualPath": "wceshi / 应用群组 / 钉钉 / 部门1 / 部门12"
            }
        ]
    }
}

通过外部id批量获取机构列表

Path:/api/bff/v1.2/developer/scim/organization/list_by_externalids
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

参数值

类型

备注

externalIds

{externalIds}

Array

组织单位的外部id列表(externalIds),查询上限为20条。

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├externalId

string

组织机构的外部id

├organizationName

string

组织机构名称

├externalId

string

组织机构的外部id,和id一样

├parentExternalId

string

父组织机构外部id

├type

string

类型

├enabled

string

是否可用

├description

string

描述

├nodeType

string

组织机构类型

ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”)
MASTER_TREE_ROOT(“主树根节点”, “Master tree root node”)
APP_GROUP(“应用群组”, “App Group Node”) 
SLAVE_TREE_ROOT(“子树根节点”, “Slave tree root node”) 
SELF_CREATED(“自建节点”, “Self Create”) 
REF_NODE(“引用主树”, “Reference main tree”);

├refOrgExternalId

string

引用人事节点外部ID

当nodeType为引用主树类型时,该ID代表此节点引用的人事组织节点外部ID

└extendFields

object

扩展字段

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:/api/bff/v1.2/developer/scim/organization/list_by_externalids?externalIds=main,5151221213604955599&access_token=4616b26c-5a90-4b96-a789-73082615978e

响应示例 :

{
  "success": true,
  "code": "200",
  "message": null,
  "requestId": "1653016959220$fe930cc3-a245-2db4-60ef-cd0f17022da0",
  "data": [
    {
      "organizationName": "信息中心",
      "externalId": "5151221213604955599",
      "parentExternalId": "main",
      "type": "DEPARTMENT",
      "rootNode": false,
      "sortNumber": 0,
      "enabled": true,
      "description": "",
      "extendFields": {},
      "uuid": "84ade7e0fac2f09860f0b12be0966327okxZfEsycxK",
      "manager": [],
      "nodeType": "SELF_CREATED",
      "refOrgExternalId": null
    },
    {
      "organizationName": "人事组织",
      "externalId": "main",
      "parentExternalId": "8249652021431815479",
      "type": "SELF_OU",
      "rootNode": false,
      "sortNumber": 1,
      "enabled": true,
      "description": "主数据根节点",
      "extendFields": {},
      "uuid": "a1ec4b823932038336d9e1055faf88fbWNWK14yKMcb",
      "manager": [],
      "nodeType": "MASTER_TREE_ROOT",
      "refOrgExternalId": null
    }
  ]
}

账户

获取账户信息

Path:/api/bff/v1.2/developer/scim/account/detail
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

参数值

类型

备注

externalId

{externalId}

String

账户的外部id(externalId)。必填

archived

{archived}

boolean

是否离职,true:查询离职账户,false:查询普通账户,默认false。可选

applicationUuid

{applicationUuid}

String

应用uuid信息,若传递,则返回IDaaS主账户在该应用下的子账户信息,可选

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├externalId

string

用户的外部id

├username

string

用户名

├displayName

string

显示名

├phoneNumber

string

手机号

├email

string

邮箱

├locked

string

账号是否锁定,true为锁定,false为未锁定

├archived

boolean

是否离职,false:普通账户,true:离职账户

├enabled

string

账号是否可用,true为启用,false禁用

├belongs

string

描述账户所属组织机构列表

├extendFields

object

扩展字段

├organzationsOrderList

object

账户在所属组织机构下的排序号

├applicationUsers

object[]

应用子账户列表

├─ username

string

子账户名

├─ xxx…

string

子账户扩展属性’字段值’

​注意,“xxx” 不是固定值,“xxx”代表子账户扩展属性定义的数据字典’字段值’,是动态的,请在应用群组下-> 具体群组-> 数据字典查看,”…” 代表有多个

├userBelongs

string []

所属ou的外部id

为组织外部id的集合,必填

├─belong

String

具体的组织外部id

├─mainOu

boolean

是否主组织

true:是,false:不是

├─extendFields

object

自定义”人员-组织属性”数据字典

填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:外部id(externalId)不能为空

请求参数错误

400

InvalidParameter.ExternalId.NotExist

例如:externalId不存在

未查找到该账户

请求地址示例:/api/bff/v1.2/developer/scim/account/detail?externalId=123456&applicationUuid=0e5650d3a1a6368a5bb884c23a9a3ad7v8stn6k6xEF

响应示例 :

{
  "success": true,
  "code": "200",
  "message": null,
  "requestId": "1654135480474$06464a81-94cf-eb7c-8938-d5cb6d742217",
  "data": {
    "externalId": "8867130358788280975",
    "username": "test11",
    "displayName": "test11",
    "phoneNumber": "180xxxxxxxx",
    "phoneRegion": "86",
    "email": null,
    "locked": false,
    "enabled": true,
    "archived": false,
    "description": "",
    "extendFields": {
      "age": ""
    },
    "belongs": [
      "8094330624995480237"
    ],
    "organzationsOrderList": [
      {
        "externalId": "8094330624995480237",
        "displayOrder": 0
      }
    ],
    "userBelongs": [
      {
        "belong": "8094330624995480237",
        "extendFields": {},
        "mainOu": true,
        "belongOuUuid": "8094330624995480237"
      }
    ],
    "applicationUsers": []
  }
}

获取账户列表(旧)

若传入的查询参数ouUuid或者ouExternalId为引用节点组织外部ID,则会返回引用的人事组织节点账户列表数据

Path: /api/bff/v1.2/developer/scim/account/enterprise/list_all
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

类型

备注

ouUuid

String

指定具体组织机构的UUID, 可选

ouExternalId

String

指定具体组织机构的外部ID, 可选,ouUuid和ouExternalId只能存在一个

username

String

通过账户名称进行过滤, 可选

createStartDate

String

指定账户创建开始日期, 格式: yyyy-MM-dd, 如: 2018-01-01, 可选

createEndDate

String

指定账户创建结束日期, 格式: yyyy-MM-dd, 如: 2018-01-30, 可选

start

Number

分页开始位置,默认0

limit

Number

分页限制条数,默认20

archived

boolean

是否离职,true:查询离职账户,false:查询普通账户,默认false。可选

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

│ total

int

总数

├ refOrgExternalId

string

若传入的查询参数ouExternalId为引用节点组织外部ID,则会返回引用的人事组织节点外部ID

├ refOrgUuid

string

若传入的查询参数ouUuid为引用节点组织外部UUID,则会返回引用的人事组织节点UUID

└─accounts

object

返回的账户列表

├─externalId

string

用户的外部id

├─username

string

用户名

├─displayName

string

显示名

├─phoneNumber

string

手机号

├─email

string

邮箱

├─locked

string

账号是否锁定,true为锁定,false为未锁定

├─archived

boolean

是否离职,false:普通账户,true:离职账户

├─enabled

string

账号是否可用,true为启用,false禁用

├─belongs

string

描述账户所属组织机构列表

├─extendFields

object

扩展字段

└─organzationsOrderList

object

账户在所属组织机构下的排序号

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:/api/bff/v1.2/developer/scim/account/enterprise/list_all?ouUuid=87e6a7827a3852db002b4f9236b4e08cEkEe5m1hWlF&access_token=4616b26c-5a90-4b96-a789-73082615978e

响应示例 :

 {
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "5709C39A-D53A-4D74-8765-7D763907877B",
    "data": {
        "total": 3,
        "accounts": [
            {
                "externalId": "3543180585310896590",
                "username": "developer2",
                "displayName": "开发人员3",
                "phoneNumber": "",
                "email": "test2@test.com",
                "enabled": true,
                "locked": false,
                "description": "来自应用{test-developer}的同步",
                "extendFields": {
                    "test": "123456",
                    "test1": "woman"
                },
                "belongs": [
                    "test2",
                    "test1"
                ]
            },
            {
                "externalId": "test-2",
                "username": "test-2",
                "displayName": "test-3",
                "phoneNumber": "18890900900",
                "email": "test2@test2.com",
                "enabled": false,
                "locked": false,
                "description": "123ttt",
                "extendFields": {
                    "test": "t",
                    "test1": "woman123"
                },
                "belongs": [
                    "test2"
                ]
            },
            {
                "externalId": "test-1",
                "username": "test-1",
                "displayName": "test-1",
                "phoneNumber": "",
                "email": "tangyuehan@idsmanager.com",
                "enabled": false,
                "locked": false,
                "description": "来自应用{test-developer}的同步",
                "extendFields": {},
                "belongs": [
                    "test2",
                    "test1"
                ]
            }
        ],
        "refOrgExternalId":"",
        "refOrgUuid":""
    }
}

获取账户列表(新)

若传入的查询参数ouExternalId为引用节点组织外部ID,则会返回引用的人事组织节点账户列表数据

Path: /api/bff/v1.2/developer/scim/account/list
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

类型

备注

ouExternalId

String

指定具体组织机构的外部ID, 可选

createStartDate

String

指定账户创建开始日期, 格式: yyyy-MM-dd, 如: 2018-01-01, 可选

createEndDate

String

指定账户创建结束日期, 格式: yyyy-MM-dd, 如: 2018-01-30, 可选

start

Number

分页开始位置,默认0

limit

Number

分页限制条数,默认20

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

│ total

int

总数

├ refOrgExternalId

string

若传入的查询参数ouExternalId为引用节点组织外部ID,则会返回引用的人事组织节点外部ID

└─accounts

object

返回的账户列表

├─externalId

string

用户的外部id

├─username

string

用户名

├─displayName

string

显示名

├─phoneNumber

string

手机号

├─email

string

邮箱

├─locked

string

账号是否锁定,true为锁定,false为未锁定

├─archived

boolean

是否离职,false:普通账户,true:离职账户

├─enabled

string

账号是否可用,true为启用,false禁用

├─belongs

string

描述账户所属组织机构列表

├─extendFields

object

扩展字段

└─organzationsOrderList

object

账户在所属组织机构下的排序号

├userBelongs

string []

所属ou的外部id

为组织外部id的集合,必填

├─belong

String

具体的组织外部id

├─mainOu

boolean

是否主组织

true:是,false:不是

├─extendFields

object

自定义”人员-组织属性”数据字典

填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:/api/bff/v1.2/developer/scim/account/enterprise/list_all?ouUuid=87e6a7827a3852db002b4f9236b4e08cEkEe5m1hWlF&access_token=4616b26c-5a90-4b96-a789-73082615978e

响应示例 :

 {
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "5709C39A-D53A-4D74-8765-7D763907877B",
    "data": {
        "total": 3,
        "accounts": [
            {
                "externalId": "3543180585310896590",
                "username": "developer2",
                "displayName": "开发人员3",
                "phoneNumber": "",
                "email": "test2@test.com",
                "enabled": true,
                "locked": false,
                "description": "来自应用{test-developer}的同步",
                "extendFields": {
                    "test": "123456",
                    "test1": "woman"
                },
                "belongs": [
                    "test2",
                    "test1"
                ]
            },
            {
                "externalId": "test-2",
                "username": "test-2",
                "displayName": "test-3",
                "phoneNumber": "18890900900",
                "email": "test2@test2.com",
                "enabled": false,
                "locked": false,
                "description": "123ttt",
                "extendFields": {
                    "test": "t",
                    "test1": "woman123"
                },
                "belongs": [
                    "test2"
                ]
            },
            {
                "externalId": "test-1",
                "username": "test-1",
                "displayName": "test-1",
                "phoneNumber": "",
                "email": "tangyuehan@idsmanager.com",
                "enabled": false,
                "locked": false,
                "description": "来自应用{test-developer}的同步",
                "extendFields": {},
                "belongs": [
                    "test2",
                    "test1"
                ]
            }
        ],
        "refOrgExternalId":"",
        "refOrgUuid":""
    }
}

获取账户在根组织机构下的详情

Path: /api/bff/v1.2/developer/scim/account/ou_tree/detail
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

参数值

类型

备注

externalId

{externalId}

String

账户的外部id(externalId)。

ouTreeId

{ouTreeId}

String

根组织单位的外部id(externalId)。

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

├externalId

string

用户的外部id

├username

string

用户名

├displayName

string

显示名

├phoneNumber

string

手机号

├email

string

邮箱

├locked

string

账号是否锁定,true为锁定,false为未锁定

├enabled

string

账号是否可用,true为启用,false禁用

├belongs

string

描述账户所属组织机构列表

├extendFields

object

扩展字段

├organzationsOrderList

object

账户在所属组织机构下的排序号

├refOrgExternalId

string

引用人事节点外部ID

当nodeType为引用主树类型时,该ID代表当前节点引用的人事节点ID

├mainTree

boolean

查询的ouTreeId组织是否是人事组织节点

├inRefTree

boolean

查询的账户是否在应用群组树下被引用

└refTreeInfo

object

应用群组下引用树节点详情

账户所属父级组织被引用时返回该节点在引用树中的详情

├parentRefNodeId

string

引用节点的ID

├parentRefNodeParentId

string

引用节点的上级ID

├parentRefNodePath

string

引用节点的完整路径

├virtualPath

string

当前账户的路径

└parentNodeId

string

当前账户上级OU的ID

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:/api/bff/v1.2/developer/scim/account/ou_tree/detail?externalId=3623477547857298846&ouTreeId=6754318132683840690

响应示例 :

{
  "success": true,
  "code": "200",
  "message": null,
  "requestId": "1638525208227$283d52ea-3c79-7160-7ade-e796a55543e4",
  "data": {
    "externalId": "test2",
    "username": "Runolfsson",
    "displayName": "test3333",
    "phoneNumber": "",
    "phoneRegion": "86",
    "email": "test@test.com",
    "locked": false,
    "enabled": true,
    "archived": false,
    "description": "来自应用{RBuWV09PLYCbfob9}的同步",
    "extendFields": {
      "indutydate": ""
    },
    "belongs": [],
    "organzationsOrderList": [],
    "userBelongs": [],
    "mainTree": false,
    "inRefTree": true,
    "refTreeInfo": [
      {
        "parentRefNodeId": "2782426129122542668",
        "parentRefNodeParentId": "6754318132683840690",
        "parentRefNodePath": "wceshi / 应用群组 / 钉钉 / 部门1",
        "virtualPath": "wceshi / 应用群组 / 钉钉 / 部门1",
        "parentNodeId": "5874903584085219353",
        "extendFields": {}
      }
    ]
  }
}

通过外部id等条件批量获取用户信息列表

Path: /api/bff/v1.2/developer/scim/account/load_by_externalIds
Method: GET

Headers

参数名称

参数值

是否必须

示例

备注

Authorization

Bearer {access_token}

Query

参数名

参数值

类型

备注

externalIds

{externalIds}

Array

账户的外部id集合(externalIds),查询上限为50条。

email

{email}

String

邮箱(不支持模糊查询)。

phone

{phone}

String

手机号(不支持模糊查询)。

displayName

{displayName}

String

显示名(支持使用前缀模糊查询)。

返回数据

名称

类型

备注

其他信息

success

boolean

是否成功

code

string

成功为200

message

null

错误信息

success为false取值提示给用户

requestId

string

无须关注

data

object

└─accounts

object

返回的账户列表

├─externalId

string

用户的外部id

├─username

string

用户名

├─displayName

string

显示名

├─phoneNumber

string

手机号

├─email

string

邮箱

├─locked

string

账号是否锁定,true为锁定,false为未锁定

├─archived

boolean

是否离职,false:普通账户,true:离职账户

├─enabled

string

账号是否可用,true为启用,false禁用

├─belongs

string

描述账户所属组织机构列表

├─extendFields

object

扩展字段

└─organzationsOrderList

object

账户在所属组织机构下的排序号

├─userBelongs

string []

所属ou的外部id

为组织外部id的集合,必填

├──belong

String

具体的组织外部id

├──mainOu

boolean

是否主组织

true:是,false:不是

├──extendFields

object

自定义”人员-组织属性”数据字典

填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填

错误码

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

例如:没有权限操作该父OU

没有权限操作

请求地址示例:/api/bff/v1.2/developer/scim/account/load_by_externalIds?externalIds=4739561390085559492&phone=18398600000&displayName=test_zg_122&email=test_zg_122@gmail.com&access_token=4616b26c-5a90-4b96-a789-73082615978e

响应示例 :

 {
  "success": true,
  "code": "200",
  "message": null,
  "requestId": "1653017399120$5b04f792-7994-9d6c-42c8-33235147d4bb",
  "data": {
    "accounts": [
      {
        "externalId": "4739561390085559492",
        "username": "test_zg_1",
        "displayName": "test_zg_122",
        "phoneNumber": "18398600000",
        "phoneRegion": "86",
        "email": "test_zg_122@gmail.com",
        "locked": false,
        "enabled": true,
        "archived": false,
        "description": "",
        "extendFields": {},
        "belongs": [
          "main"
        ],
        "organzationsOrderList": [
          {
            "externalId": "main",
            "displayOrder": 0
          }
        ],
        "userBelongs": [
          {
            "belong": "main",
            "extendFields": {},
            "mainOu": true,
            "belongOuUuid": "main"
          }
        ],
        "applicationUsers": []
      }
    ]
  }
}