用户目录(UD)¶
最后更新:2024-09-09
本文档主要覆盖一个SP应用如何通过SCIM协议与IDP4进行用户目录进行数据同步。本文档主要针对SP需要拉取IDaaS平台数据(此方法不建议,IDaaS不可控)、SP需要推送组织机构、账户、组数据到IDaaS、IDaaS需要推送组织机构、账户、组数据到SP的三类典型应用场景,方便SP与IDaaS实现数据交互闭环。
当前SP推至IDaaS和IDaaS推至SP场景我们都提供覆盖场景广的连接器Connector实现应用和IDaaS数据打通,需要IDaaS与SP相关同步数据都通过Connector连接器实现。
1. 术语定义¶
参考:IDP中产品术语介绍
2. 场景描述:¶
IDaaS平台支持 SCIM 协议,用户目录同步机制支持三种方式:
推的方式:IDaaS平台通过API将IDaaS中的用户目录信息同步到应用服务器(即SP Service Provider),需要业务系统提供API,如下图中第1步所示;
送的方式:IDaaS系统提供API,应用服务器(即SP Service Provider)调用IDaaS平台API接口将业务用户目录同步到IDaaS中,如下图中第2步所示;
拉的方式:IDaaS系统提供API,应用服务器(即SP Service Provider)调用IDaaS平台API接口拉取IDaaS平台的用户目录数据,如下图中的第3步所示。
建议使用第一种方式;
优势:在保证安全的前提下,可以保证账户数据的一致性,实时性;
如果各业务系统(SP)采用第二种方式,IDaaS平台可提供相应技术文档及API接口;
如果各业务系统(SP)采用第三种方式,IDaaS平台可提供相应技术文档及API接口。
3. IDaaS推至SP¶
3.1. 集成方式¶
通过统一连接器Connector实现,其中不同的下游SP通过不同的集成方式集成。此处主要介绍标准SCIM方式推送,如何创建任务见IDaaS通过标准SCIM接口推送数据
3.1.1. 同步目标¶
选择SCIM类型,选择目标子类型为IDP4标准SCIM
目标管理配置如图:
来源名称:随意填写,注意唯一性即可;
适用环境:默认是开发环境。需要注意的是来源和目标的环境必须是一样的,否则不会执行同步任务
来源主类型:SCIM类型
来源子类型:选择IDP4标准SCIM
组织机构同步地址: SP系统组织机构API地址
账户同步地址: SP系统账户API地址,
组同步地址: SP系统组API地址,
注意,组织机构同步地址,账户同步地址,组同步地址三者必须有一个不能为空
协议类型: sp系统API接口认证类型(BASIC,OAUTH2)
如果API接口没有认证措施,可以默认BASIC,账密随意填写即可
如选择basic,则需要填写basic协议的账户和密码,如图
如选择oauth2,则需要填写oauth的url,client_id,client_secret,如图:
3.2. API定义¶
3.2.1. 组织机构¶
url地址如: developer/scim/organization
3.2.1.1. 添加组织机构¶
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为系统定义扩展字段 |
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 |
参数异常 |
3.2.1.2. 修改组织机构¶
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为系统定义扩展字段 |
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 |
参数异常 |
3.2.1.3. 删除组织机构¶
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 |
参数异常 |
3.2.2. 账户¶
url地址如: developer/scim/account
3.2.2.1. 添加账户¶
method: POST
content-Type: application/json
参数名 |
参数值 |
备注 |
---|---|---|
userName |
{userName} |
账户名称,唯一 |
id |
{id} |
用户ID,与外部ID(externalId)值一样 |
displayName |
{displayName} |
用户的显示名称,唯一 |
emails |
{emails} |
邮箱 |
phoneNumbers |
{phoneNumbers} |
手机号, 只能一个且唯一 |
externalId |
{externalId} |
外部ID,唯一,可作主键 |
userBelongs |
{userBelongs} |
用户所属的组织机构列表 ,人员组织机构属性需要放到这下面 |
├─externalId |
{externalId} |
组织机构的外部id |
├─mainOu |
{mainOu} |
是否是主组织机构 |
├─displayOrder |
{displayOrder} |
显示顺序 |
├─extendFields |
{extendFields} |
人员组织属性参数,Map<key,value>结构,key为人员组织属性的字段值,value为需要赋予的具体值 |
locked |
boolean |
是否锁定账户,ture锁定账户,false启用账户。锁定账户后将不能登录应用系统 |
enabled |
boolean |
是否禁用账户,ture禁用账户,false启用账户。禁用账户后将不能登录应用系统 |
extendFields |
{extendFields} |
扩展字段,attributes为系统定义扩展字段 |
Request Body示例:
{
"emails": [
{
"value": "test@test.com",
"primary": true
}
],
"userBelongs":[{
"externalId":"4860408743312212887",
"mainOu":true,
"extendFields":{
"connector":"1"
},
"displayOrder":1
}],
"displayName": "test1",
"extendFields": {
"testAttr": "1"
},
"externalId": "536607420296949165",
"id": "536607420296949165",
"locked": true,
"userName": "test1",
"enabled": true,
"phoneNumbers": [
{
"value": "180xxxxxxxx"
}
]
}
SP需要返回 Response Body示例:
{
"code": 200,
"message": ""
}
参数说明:
字段名 |
错误码 |
备注 |
---|---|---|
code,int类型 |
200 |
SP返回错误码200,即视为成功 |
message,错误信息,String类型 |
400 |
参数异常 |
3.2.2.2. 修改账户¶
method: PUT
content-Type: application/json
参数名 |
参数值 |
备注 |
---|---|---|
userName |
{userName} |
账户名称,唯一 |
id |
{id} |
用户ID,与外部ID(externalId)值一样 |
displayName |
{displayName} |
用户的显示名称,唯一 |
emails |
{emails} |
邮箱 |
phoneNumbers |
{phoneNumbers} |
手机号, 只能一个且唯一 |
externalId |
{externalId} |
外部ID,唯一,可作主键 |
belongs |
{belongs} |
为账户指定组织单位 |
organzationsOrderList |
{organzationsOrderList} |
账户在所属机构下的排序号 |
locked |
boolean |
是否锁定账户,ture锁定账户,false启用账户。锁定账户后将不能登录应用系统 |
enabled |
boolean |
是否禁用账户,ture启用账户,false禁用账户。禁用账户后将不能登录应用系统 |
extendFields |
{extendFields} |
扩展字段,attributes为系统定义扩展字段 |
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"
}
]
}
SP需要返回 Response Body示例:
{
"code": 200,
"message": ""
}
参数说明:
字段名 |
错误码 |
备注 |
---|---|---|
code,int类型 |
200 |
SP返回错误码200,即视为成功 |
message,错误信息,String类型 |
400 |
参数异常 |
3.2.2.3. 删除账户¶
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 |
参数异常 |
4. SP推至IDaaS¶
4.1 集成方式¶
针对不同SP推送至IDaaS的方式,我们提供不同的接入指引,只需要按需选择相关接入指引即可实现不同SP同步数据到IDaaS的流程,目前我们支持两种方式,一种通过统一连接器Connector实现,也可以采用调用API的方式同步数据到IDaaS,见IDP4用户目录API
推荐使用Connector 的SCIM 接口进行数据同步,替换掉直接使用IDaaS SCIM接口进行数据同步
4.2 数据同步配置¶
在管理员界面,点击同步任务 -》 添加同步任务 -》上游同步 -》IDaaS标准SCIM。
4.2.1 基本信息配置¶
4.2.1.1 同步任务名称:¶
4.2.1.2. 上游配置:¶
4.2.1.3 授权信息:¶
关联应用是为了根据应用进行接口范围和数据范围的管理,保证idaas数据的安全性。
应用API状态:开启:允许调用IDaaS接口。关闭:不允许调用IDaaS接口。
接口范围:设置同步任务允许调用哪些接口。请根据需要,选择开放调用的接口。
数据范围:设置在拉取idaas数据时,可以从哪些组织层级查询到数据。
4.2.1.4 规则配置:¶
IDaaS根节点标识:
选择需要同步到IDaaS的组织机构根节点,选择后,后续所有数据以该节点为根节点进行同步。如果不选择,默认同步到IDaaS人事组织根节点。
上游系统根节点标识:
填入上游业务系统的根节点标识,SCIM标准接口同步,不需要填写该项。
同步类型:
选择需要同步的对象类型,如:组织机构,组,账户。
默认密码:
同步账户时,若账户映射的密码字段值为空,则使用该默认密码进行填值。该项非必填。
增改模式:
SCIM标准接口同步,不允许打开增改模式。必须为关闭状态,不然调用接口将会报错。
4.3 字段映射¶
字段映射主要作用为把来源的原始数据,根据所配置的字段映射规则,转换成目标所需要的数据。该同步场景下,已经预设了一些常用字段映射规则,如需更改,请自行修改即可。
字段映射方式分为:字段映射和脚本映射。
字段映射:一对一的直接映射,直接把来源字段映射为目标所需要字段。
脚本映射:根据groovy脚本所配置的内容,对来源数据进行处理之后,再映射到目标字段。groovy脚本配置方式请参考文章:
connector groovy脚本使用文档
新增字段映射:
点击添加按钮,选择映射方式,选择字段值,如果字段值在下拉列表中不存在,可以手动输入。
4.4 同步策略¶
4.4.1. 同步方式¶
4.4.1.1. 手动:¶
手动同步指管理员手动触发同步任务。可在同步任务页面点击立即同步按钮,进行立即同步。该同步方式下,同步任务会根据配置好的信息,从来源默认根节点下,拉取所需要同步的对象(组织机构,组,账户),同步到下游系统中。
(SCIM标准接口同步不支持点击立即同步按钮,进行数据拉取,需要业务方调用connector提供的接口,进行数据主动推送)
4.4.1.2. 定时:¶
定时同步指根据同步任务配置的定时任务执行计划,进行数据的同步。也可以进行手动触发。
定时任务又分为周期执行和定时执行两种。
周期执行:勾选“周期执行”并勾选“周二”并选择“间隔02:00”,表示在每个周二每隔2小时执行一次同步任务。
定时执行:勾选“定期执行”并勾选“周二”并选择“02:00:00”,表示在每个周二的2点执行一次同步任务。
(SCIM标准接口同步不支持定时同步)
4.4.1.3. 实时:¶
实时同步表示当数据源发生变化时,上游业务系统自动触发同步任务实时变更数据。(SCIM标准接口同步不支持实时同步)
4.4.2. 失败自动重试¶
该功能主要应对在数据同步过成中,如出现网络短暂波动而造成的数据同步失败的情况。选择失败重试之后,失败的数据将会立即进行重推。重推数据时,不再从来源拉取数据,使用之前已经拉取到的来源数据进行重推。失败重试可以选择重试1,2,3次。
该功能无法解决由于来源数据错误而导致的数据推送失败的情况。
(SCIM标准接口同步不需要开启该选项)
4.5. 调用connector提供的SCIM接口¶
在完成了同步任务的配置之后,业务系统可以按照以下接口进行调用,把数据推送到IDaaS系统。
4.5.1. connector SCIM 同步接口¶
4.5.1.1. 说明:¶
connector提供了以下接口,作为同步接口,主要覆盖组织机构、组、账户。
调用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:XXXX API Secret:XXX),以下为示例值:
API Key:2158438dbd06a23e63d5fc06724cfdeckJLumafTiS0 API Secret:FEqQHVzqYJVmT6mDHeTLram8sChPRWZFZr6DHBNf
Path:/connector/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}/connector/oauth/token
返回示例 :
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYXBwX2FwaV9yZXNvdXJjZSIsImVudGVycHJpc2VfbW9iaWxlX3Jlc291cmNlIiwiYmZmX2FwaV9yZXNvdXJjZSJdLCJzY29wZSI6WyJyZWFkIl0sImV4cCI6MTYyMDQ4NDI3MCwiYXV0aG9yaXRpZXMiOlsiUk9MRV9BUFBMSUNBVElPTl9BUEkiLCJST0xFX0VORF9VU0VSIl0sImp0aSI6ImQ0N2U3M2RlLTFiMTctNDgxZS05Yzg4LTNkODdlZGE1ODllZiIsImNsaWVudF9pZCI6IjBmZmI3MWI5MDQwY2IxZWM5OGZlZTQ1ZTllYWVkODQxWjIwQ2t0bmRremQifQ.UxPJWUOA9YWvKHRZ8VWgu1qwKCYKVBYfQfBMpJyvIQk",
"token_type": "bearer",
"expires_in": 43199,
"scope": "read",
"jti": "d47e73de-1b17-481e-9c88-3d87eda589ef"
}
4.5.1.2. 组织机构相关接口¶
4.5.1.2.1. 推送组织机构¶
Path:/connector/api/sync/v1/data_accept/SCIM/organization/id/{同步任务id}
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,默认为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}}/connector/api/sync/v1/data_accept/SCIM/organization/id/{同步任务id}
请求示例:
{
"organizationName": "成都研发部",
"externalId": "123456",
"parentExternalId": "2961201661376138058",
"type": "DEPARTMENT",
"sortNumber": "3",
"enabled":true,
"description": "负责产品研发",
"extendFields":{
"test1":"123"
}
}
返回示例 :
{
"status": 200,
"message": "添加成功",
"requestId": "6FF9F74F-15BF-4D36-BE17-6DE1FDD8065A",
"data": {
"externalId": "8262319981134538379",
"id": "f0e927df37434ae302e58a77a827896eCRVt7rSg0jr"
},
"code": "200",
"success": true
}
4.5.1.2.2. 修改组织机构¶
Path:/connector/api/sync/v1/data_accept/SCIM/organization/id/{同步任务id}
Method: PUT
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
应用获取到的access_token |
Body
名称 |
类型 |
是否必须 |
默认值 |
备注 |
其他信息 |
---|---|---|---|---|---|
organizationName |
string |
必须 |
机构名称 |
||
externalId |
string |
必须 |
组织机构的唯一id,该id是SP同步过来的,所以在IDaaS中称为外部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 |
非必须 |
错误码
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}}/connector/api/sync/v1/data_accept/SCIM/organization/id/{同步任务id}
请求示例 :
{
"description": "",
"organizationName": "成都研发部",
"externalId": "123456",
"parentExternalId": "2961201661376138058",
"enabled":false,
"type": null,
"sortNumber": "5",
"extendFields":{
"test1":"1235123"
}
}
返回示例 :
{
"status": 200,
"message": "修改成功",
"requestId": "1E8BB9A7-0A10-449F-813C-D9FF59810982",
"data": null,
"code": "200",
"success": true
}
4.5.1.2.3. 刪除组织机构¶
Path:/connector/api/sync/v1/data_accept/SCIM/organization/id/{同步任务id}
Method: DELETE
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
应用获取到的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)不能为空 |
请求参数错误 |
400 |
EntityNotFound |
例如:组织机构不存在 |
未查找到要更新的OU |
400 |
OperationDenied.OUContainsChildren |
例如:该OU存在关联关系,不能删除 |
未查找到要更新的OU |
403 |
Forbidden |
例如:没有权限操作该父OU |
没有权限操作 |
请求地址示例:
{{idaas_host}}/connector/api/sync/v1/data_accept/SCIM/organization/id/{同步任务id}
返回示例 :
{
"status": 200,
"message": "删除成功",
"requestId": "232F6C61-4098-4851-9B24-FE9B3C712027",
"data": null,
"code": "200",
"success": true
}
4.5.1.2.4. 获取组织机构¶
Path:/connector/api/sync/v1/data_accept/SCIM/organization/id/{同步任务id}
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
应用获取到的access_token |
Body
参数名称 |
是否必须 |
示例 |
备注 |
---|---|---|---|
externalId |
是 |
外部id |
返回数据
名称 |
类型 |
是否必须 |
默认值 |
备注 |
其他信息 |
---|---|---|---|---|---|
success |
boolean |
必须 |
是否成功 |
||
code |
string |
必须 |
成功为200 |
||
message |
null |
必须 |
错误信息 |
success为false取值提示给用户 |
|
requestId |
string |
必须 |
无须关注 |
||
data |
对象 |
组织机构相关信息 |
|||
├─ refOrgExternalId |
string |
来源于主数据的外部ID,只有mainData为false时,才可能有该值 |
|||
├─ organizationName |
string |
组织机构名称 |
|||
├─ manager |
string |
管理者 |
|||
├─ sortNumber |
int |
排序号 |
|||
├─ externalId |
string |
外部ID |
|||
├─ description |
string |
描述 |
|||
├─ type |
string |
类型 |
SELF_OU:自建组织单位,EXTERNAL_OU:外部同步,DEPARTMENT:自建部门 |
||
├─ nodeType |
string |
组织机构节点类型,前端需要根据此来进行判断对于的操作,默认为自建 |
ENTERPRISE_ROOT:公司根节点,MASTER_TREE_ROOT:主树根节点,APP_GROUP:应用群组,SLAVE_TREE_ROOT:子树根节点,SELF_CREATED:自建节点,COPY_REF_NODE:复制引用主树,REF_NODE:引用主树 |
||
├─ uuid |
string |
||||
├─ enabled |
boolean |
是否开启 |
|||
├─ rootNode |
boolean |
是否是根组织机构 |
|||
├─ parentExternalId |
string |
父级组织机构外部ID |
|||
├─ extendFields |
对象 |
扩展字段 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
InvalidParameter |
例如:外部id(externalId)不能为空 |
请求参数错误 |
400 |
EntityNotFound |
例如:组织机构不存在 |
未查找到OU |
请求地址示例:
{{idaas_host}}/connector/api/sync/v1/data_accept/SCIM/organization/id/{同步任务id}
返回示例 :
{
"status": 200,
"message": "查询成功",
"requestId": "48759A7F-BC80-467A-AA80-AA058C6331A7",
"data": {
"refOrgExternalId": null,
"organizationName": "测试123",
"manager": [],
"sortNumber": 0,
"externalId": "2748476799924177626",
"description": "",
"type": "SELF_OU",
"nodeType": "SELF_CREATED",
"uuid": "a2144f9071a240323d20e8a3192a512fWyfbJjKQu4r",
"enabled": true,
"rootNode": false,
"parentExternalId": "main",
"extendFields": {}
},
"code": "200",
"success": true
}
4.5.1.2.5. 获取组织机构列表¶
若传入的查询参数externalId为引用节点组织外部ID,则会返回引用的人事组织节点下的所有组织
Path: /connector/api/sync/v1/data_accept/SCIM/organization/list/id/{同步任务id}
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名 |
参数值 |
类型 |
备注 |
---|---|---|---|
externalId |
{externalId} |
String |
组织单位的外部id(externalId)。选填,返回该部门及其下所有子部门的信息 |
pageNumber |
{pageNumber} |
Number |
分页开始位置,默认1 |
pageSize |
{pageSize} |
Number |
分页限制条数,默认20,最大50 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
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”) |
├─refOrgExternalId |
string |
引用人事节点外部ID |
当nodeType为引用主树类型时,该ID代表此节点引用的人事组织节点外部ID |
└─extendFields |
object |
扩展字段 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
EntityNotFound |
例如:组织机构123456不存在 |
未查找到externalId对应的OU |
403 |
Forbidden |
例如:没有权限操作该父OU |
没有权限操作 |
请求示例 :
获取该公司的所有组织机构: /api/sync/v1/data_accept/SCIM/organization/list/id/5
获取某个OU下所有组织机构的信息: /api/sync/v1/data_accept/SCIM/organization/list/id/5?externalId=5986176890912195413
响应示例:
{
"status": 200,
"message": "查询成功",
"requestId": "1657529221902$09977776-b416-52e5-2ed9-cf4572dd75cc",
"data": {
"total": 163,
"refOrgExternalId": "",
"organizations": [
{
"refOrgExternalId": null,
"organizationName": "莉莉丝飞书同步IDP",
"manager": [],
"sortNumber": 0,
"externalId": "7379463240492416927",
"description": "",
"type": "DEPARTMENT",
"nodeType": "SELF_CREATED",
"uuid": "181d7b02707df7f045e37182e843200fi9J2ftg58jr",
"enabled": true,
"rootNode": false,
"parentExternalId": "main",
"extendFields": {}
},
{
"refOrgExternalId": null,
"organizationName": "2FA",
"manager": [],
"sortNumber": 0,
"externalId": "4666166874966675502",
"description": "",
"type": "DEPARTMENT",
"nodeType": "SELF_CREATED",
"uuid": "25a08a0ddbf2595a218bd33c8bf9a84aoLDzcdK5Ogc",
"enabled": true,
"rootNode": false,
"parentExternalId": "main",
"extendFields": {}
}
]
},
"code": "200",
"success": true
}
4.5.1.3. 账户相关接口¶
4.5.1.3.1. 推送账户¶
Path:/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}
Method: POST
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
默认值 |
备注 |
其他信息 |
---|---|---|---|---|---|
externalId |
string |
非必须 |
用户的唯一id |
如果不填,将随机生成一个,并在结果中返回 |
|
userName |
string |
必须 |
IDaaS平台主账户 |
||
displayName |
string |
必须 |
用户的显示名称 |
||
password |
string |
非必须 |
IDaaS平台主账户密码 |
若为空,则将使用系统随机密码。 |
|
string |
非必须 |
邮箱 |
和手机号必有一个 |
||
phoneNumber |
string |
非必须 |
|
手机号, 只能一个且唯一 |
和邮箱必有一个 |
enabled |
boolean |
非必须 |
|
是否启用 |
true:启用,false:禁用,默认为true。 |
locked |
boolean |
非必须 |
|
是否锁定 |
true:已锁定,false:未锁定,默认为false。 |
firstLogin |
boolean |
非必须 |
|
首次登录,是否需要用户修改密码 |
默认值为true,需要修改 |
description |
string |
非必须 |
|
描述信息 |
|
userBelongs |
object[] |
必须 |
|
用户所属的组织机构列表 |
人员组织机构属性需要放到这下面 |
├─externalId |
string |
必须 |
组织机构的外部id |
||
├─mainOu |
boolean |
必须 |
是否是主组织机构 |
||
├─displayOrder |
string |
非必须 |
显示顺序 |
||
├─extendFields |
object |
非必须 |
人员组织属性参数,Map<key,value>结构,key为人员组织属性的字段值,value为需要赋予的具体值 |
||
extendFields |
object |
非必须 |
自定义扩展的字段,在IDP数据字典中定义。 |
填写则代表更新该项信息。更新时,如果自定义扩展的字段是必填选项,则该属性必填 |
|
├─ test |
string |
非必须 |
该组需要拥有对应的扩展属性 |
|
|
├─ 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 |
例如:账户名称不能为空 |
请求参数错误 |
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}}/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}
请求示例 :
{
"externalId": "123456",
"userName": "developer2",
"displayName": "开发人员3",
"password": "Jdev@12345",
"email": "test2@test.com",
"phoneNumber": "",
"description": "",
"userBelongs":[{
"externalId":"4860408743312212887",
"mainOu":true,
"extendFields":{
"connector":"1"
},
"displayOrder":1
}],
"extendFields": {
"test": "123456",
"test1": "woman"
}
}
成功示例 :
{
"status": 200,
"message": "添加成功",
"requestId": "AEC3C517-3B90-49F8-B900-F6F3474C3AAE",
"data": {
"externalId": "39672213017021884",
"id": "6cd08b72926a7487118b37009f56571a7tPWM40TdZF"
},
"code": "200",
"success": true
}
4.5.1.3.2. 修改账户¶
Path:/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}
Method: PUT
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
默认值 |
备注 |
其他信息 |
---|---|---|---|---|---|
externalId |
string |
必须 |
账户外部id |
||
userName |
string |
非必须 |
|||
displayName |
string |
非必须 |
|||
password |
string |
非必须 |
|||
string |
非必须 |
||||
phoneNumber |
string |
非必须 |
|||
expireTime |
string |
非必须 |
|||
description |
string |
非必须 |
|||
locked |
boolean |
非必须 |
|
|
|
firstLogin |
boolean |
非必须 |
|
首次登录,是否需要用户修改密码 |
默认值为true,需要修改 |
userBelongs |
object[] |
必须 |
|
用户所属的组织机构列表 |
人员组织机构属性需要放到这下面 |
├─externalId |
string |
必须 |
组织机构的外部id |
||
├─mainOu |
boolean |
必须 |
是否是主组织机构 |
||
├─displayOrder |
long |
非必须 |
显示顺序 |
||
├─extendFields |
object |
非必须 |
人员组织属性参数,Map<key,value>结构,key为人员组织属性的字段值,value为需要赋予的具体值 |
||
extendFields |
object |
非必须 |
|||
├─ 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 |
例如:账户名称不能为空 |
请求参数错误 |
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}}/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}
请求示例 :
{
"externalId": "123456",
"userName": "developer2",
"displayName": "开发人员4",
"password": "Jdev@12345",
"email": "test2@test.com",
"phoneNumber": "",
"description": "",
"userBelongs":[{
"externalId":"4860408743312212887",
"mainOu":true,
"extendFields":{
"connector":"1"
},
"displayOrder":1
}],
"extendFields": {
"test": "123456",
"test1": "woman"
}
}
返回示例 :
{
"status": 200,
"message": "修改成功",
"requestId": "10DE5F50-F9EF-4FFF-A155-EF812CB7DA03",
"data": null,
"code": "200",
"success": true
}
4.5.1.3.3. 删除账户¶
Path:/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}
Method: DELETE
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)不能为空 |
请求参数错误 |
400 |
EntityNotFound |
例如:账户不存在 |
未查找到要删除的账户 |
403 |
OperationDenied |
例如:管理员 admin 不能删除 |
删除操作不被允许 |
请求地址示例:
{{idaas_host}}/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}
返回示例 :
{
"status": 200,
"message": "删除成功",
"requestId": "4DEC8F0A-68BF-4E8A-A17B-6B0417153ECC",
"data": null,
"code": "200",
"success": true
}
4.5.1.3.4. 获取账户¶
Path:/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
参数名称 |
是否必须 |
示例 |
备注 |
---|---|---|---|
externalId |
是 |
外部ID |
返回数据
名称 |
类型 |
是否必须 |
默认值 |
备注 |
其他信息 |
---|---|---|---|---|---|
success |
boolean |
必须 |
是否成功 |
||
code |
string |
必须 |
成功为200 |
||
message |
null |
必须 |
错误信息 |
success为false取值提示给用户 |
|
requestId |
string |
必须 |
无须关注 |
||
data |
object |
非必须 |
|||
externalId |
string |
非必须 |
用户的唯一id |
如果不填,将随机生成一个,并在结果中返回 |
|
userName |
string |
必须 |
IDaaS平台主账户 |
||
displayName |
string |
必须 |
用户的显示名称 |
||
password |
string |
非必须 |
IDaaS平台主账户密码 |
若为空,则将使用系统随机密码。 |
|
string |
非必须 |
邮箱 |
和手机号必有一个 |
||
phoneNumber |
string |
非必须 |
|
手机号, 只能一个且唯一 |
和邮箱必有一个 |
enabled |
boolean |
非必须 |
|
是否启用 |
true:启用,false:禁用,默认为true。 |
locked |
boolean |
非必须 |
|
是否锁定 |
true:已锁定,false:未锁定,默认为false。 |
firstLogin |
boolean |
非必须 |
|
首次登录,是否需要用户修改密码 |
默认值为true,需要修改 |
description |
string |
非必须 |
|
描述信息 |
|
userBelongs |
对象组 |
非必须 |
|
账户所属的组织机构列表 |
选填,没有则是使用belongs中的第一个作为主OU |
├─externalId |
string |
所属的OU |
|||
├─mainOu |
boolean |
是否是主OU |
|||
├─extendFields |
对象 |
扩展字段 |
|||
├─displayOrder |
long |
人员在组织机构里面的排序号 |
|||
extendFields |
object |
非必须 |
自定义扩展的字段,在IDP数据字典中定义。 |
填写则代表更新该项信息。更新时,如果自定义扩展的字段是必填选项,则该属性必填 |
|
├─ test |
string |
非必须 |
|
||
├─ test1 |
string |
非必须 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
InvalidParameter |
例如:externalID为空 |
请求参数错误 |
请求地址示例:
{{idaas_host}}/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}
请求示例 :
{
"externalId":"6388145574403509802"
}
成功示例 :
{
"status": 200,
"message": "查询成功",
"requestId": "630641BF-6A5B-4822-878F-13D3CEA96933",
"data": {
"displayName": "scim_test2",
"externalId": "6388145574403509802",
"description": "来自应用{企业微信同步数据到idaas}的同步",
"userBelongs": [
{
"externalId": "4860408743312212887",
"mainOu": true,
"extendFields": {
"connector": "1"
},
"displayOrder": 1
}
],
"enabled": true,
"archived": false,
"phoneNumber": "13980522912",
"phoneRegion": "86",
"extendFields": {
"test": "12",
"sex": "0",
"age": "12"
},
"locked": false,
"email": "zzzz@qq.com",
"username": "scim_test1",
},
"code": "200",
"success": true
}
4.5.1.3.5. 离职账户¶
Path:/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}/archive
Method: POST
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)不能为空 |
请求参数错误 |
400 |
EntityNotFound |
例如:账户不存在 |
|
403 |
OperationDenied |
例如:管理员 admin 不能离职 |
请求地址示例:
{{idaas_host}}/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}/archive
返回示例 :
{
"status": 200,
"message": "离职成功",
"requestId": "C2DB9275-52EA-4D60-BA42-E6438330778E",
"data": null,
"code": "200",
"success": true
}
4.5.1.3.6. 返聘账户¶
Path:/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}/rehire
Method: POST
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Body
参数名称 |
是否必须 |
示例 |
备注 |
---|---|---|---|
externalId |
是 |
账户外部ID |
|
organizationExternalId |
否 |
需要被返聘回的组织机构外部ID,如果不填,默认返聘回原组织机构 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
InvalidParameter |
例如:外部id(externalId)不能为空 |
请求参数错误 |
400 |
EntityNotFound |
例如:账户不存在 |
请求地址示例:
{{idaas_host}}/connector/api/sync/v1/data_accept/SCIM/account/id/{同步任务id}/rehire
请求示例:
{
"externalId":"6388145574403509802",
"organizationExternalId":"2748476799924177626"
}
返回示例 :
{
"status": 200,
"message": "返聘成功",
"requestId": "9868D889-268B-4507-9FF1-91EC030CD2FB",
"data": null,
"code": "200",
"success": true
}
4.5.1.3.7. 获取账户列表¶
Path:/connector/api/sync/v1/data_accept/SCIM/account/list/id/{同步任务id}
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
query
参数名称 |
是否必须 |
示例 |
备注 |
---|---|---|---|
ouExternalId |
否 |
指定具体组织机构的外部ID, 可选,返回该组织机构下的账户列表,子部门的账户列表无法返回 |
|
createStartDate |
否 |
2022-01-01 |
指定账户创建开始日期, 格式: yyyy-MM-dd, 如: 2018-01-01, 可选 |
createEndDate |
否 |
2022-01-01 |
指定账户创建结束日期, 格式: yyyy-MM-dd, 如: 2018-01-30, 可选 |
pageNumber |
否 |
分页页码,默认为1 |
|
pageSize |
否 |
每页数量,默认为20,最大50 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
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 |
手机号 |
|
string |
邮箱 |
||
├─locked |
string |
账号是否锁定,true为锁定,false为未锁定 |
|
├─archived |
boolean |
是否离职,false:普通账户,true:离职账户 |
|
├─enabled |
string |
账号是否可用,true为启用,false禁用 |
|
├─extendFields |
object |
扩展字段 |
|
├userBelongs |
string [] |
所属ou的外部id |
为组织外部id的集合,必填 |
├─externalId |
String |
具体的组织外部id |
|
├─mainOu |
boolean |
是否主组织 |
true:是,false:不是 |
├─displayOrder |
long |
人员排序 |
|
├─extendFields |
object |
自定义”人员-组织属性”数据字典 |
填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
EntityNotFound |
例如:组织机构123456不存在 |
未查找到externalId对应的OU |
403 |
Forbidden |
例如:没有权限操作该父OU |
没有权限操作 |
请求地址示例:
{{idaas_host}}/connector/api/sync/v1/data_accept/SCIM/account/list/id/5?ouExternalId=4860408743312212887&pageNumber=1&pageSize=2&createStartDate=2022-01-22&createEndDate=2022-01-22
请求示例:
返回示例 :
{
"status": 200,
"message": "查询成功",
"requestId": "1657188718443$553ff981-f2be-01b5-56a9-40cee28703bd",
"data": {
"total": 1,
"refOrgExternalId": null,
"accounts": [
{
"displayName": "cf_aaa",
"applicationUsers": [],
"effectiveTime": null,
"externalId": "6681920058773877059",
"description": "",
"updateTime": "2022-01-22 15:25",
"userBelongs": [
{
"externalId": "4860408743312212887",
"mainOu": false,
"extendFields": {
"connector": "1"
},
"displayOrder": 1
}
],
"enabled": true,
"archived": false,
"phoneNumber": "13980522956",
"expireTime": "2116-12-31 23:59",
"createTime": "2022-01-22 15:25",
"phoneRegion": "86",
"extendFields": {},
"locked": false,
"email": null,
"username": "cf_aaa",
}
]
},
"code": "200",
"success": true
}
4.5.1.4. 组相关接口¶
4.5.1.4.1. 推送组¶
Path:/connector/api/sync/v1/data_accept/SCIM/group/id/{同步任务id}
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 |
||
├─username |
boolean |
非必须 |
账户名 |
||
deleteMembers |
object[] |
非必须 |
需要移除的组成员, |
已经存在的账户外部ID和账户名 |
|
├─accountExternalId |
String |
非必须 |
账户外部ID |
||
├─username |
boolean |
非必须 |
账户名 |
||
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}}/connector/api/sync/v1/data_accept/SCIM/group/id/{同步任务id}
请求示例 :
{
"externalId": "121-11",
"displayName": "测试同步组11",
"ouExternalId": "605016592710192945",
"addMembers": [
{
"accountExternalId":"",
"username":"test1"
}
],
"deleteMembers": [
{
"accountExternalId":"",
"username":"test2"
}
],
"extendFields": {
"test":"123456"
}
}
成功示例 :
{
"status": 200,
"message": "添加成功",
"requestId": "3AC5EF75-2373-4C84-A18E-2E7C75D81514",
"data": {
"externalId": "121123"
},
"code": "200",
"success": true
}
4.5.1.4.2. 修改组¶
Path:/connector/api/sync/v1/data_accept/SCIM/group/id/{同步任务id}
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 |
||
├─username |
boolean |
非必须 |
账户名 |
||
deleteMembers |
object[] |
非必须 |
需要移除的组成员, |
已经存在的账户外部ID和账户名 |
|
├─accountExternalId |
String |
非必须 |
账户外部ID |
||
├─username |
boolean |
非必须 |
账户名 |
||
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 |
例如:没有权限操作该组 没有权限操作该组 |
请求地址示例:/connector/api/sync/v1/data_accept/SCIM/group/id/{同步任务id}
请求示例 :
{
"externalId": "121",
"description": "tttt测试",
"displayName": "测试t121",
"addMembers": [
{
"accountExternalId":"",
"username":"test1"
}
],
"deleteMembers": [
{
"accountExternalId":"",
"username":"test2"
}
],
"extendFields": {
"test":"ttt测试"
}
}
返回示例 :
{
"status": 200,
"message": "修改成功",
"requestId": "F8997456-DC8E-4120-B1AF-5055BA199CEC",
"data": null,
"code": "200",
"success": true
}
4.5.1.4.3. 删除组¶
Path:/connector/api/sync/v1/data_accept/SCIM/group/id/{同步任务id}
Method: DELETE
**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 |
例如:组的externalId参数不能为空 |
请求参数错误 |
400 |
EntityNotFound |
例如:查询不到组信息 |
未查询到组信息 |
400 |
OperationDenied.GroupContainsChildren |
例如:组有关联成员(如有子成员),不能删除 |
组有关联成员(如有子成员),不能删除 |
403 |
Forbidden |
例如:没有权限操作该组 |
没有权限操作该组 |
请求地址示例:
{{idaas_host}}/connector/api/sync/v1/data_accept/SCIM/group/id/{同步任务id}
请求示例 :
{
"externalId": "121123"
}
返回示例:
{
"status": 200,
"message": "删除成功",
"requestId": "A19B5B53-97E2-448E-A57A-268E5253AC3D",
"data": null,
"code": "200",
"success": true
}
5. SP从IDaaS拉取¶
此方案主要针对业务系统需要单独拉取IDaaS组织机构和账户数据提供。
5.1. 集成方式¶
集成方式参照IDP4用户目录API集成步骤,请查看用户目录UD-IDP4
5.2. API文档¶
5.2.1. 组织机构¶
5.2.1.1. 查询组织机构¶
Path:/api/bff/v1.2/developer/scim/organization/detail
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
必须 |
Query
参数名 |
是否必须 |
类型 |
备注 |
---|---|---|---|
externalId |
必须 |
String |
外部id,组织机构的唯一id |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├externalId |
string |
组织机构的外部id |
|
├organizationName |
string |
组织机构名称 |
|
├parentExternalId |
string |
父组织机构外部id |
|
├type |
string |
类型 |
|
├enabled |
boolean |
是否可用 |
|
├description |
string |
描述 |
|
├nodeType |
string |
组织机构类型 |
ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”) |
├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": "9999233222",
"parentExternalId": "764712910283009725",
"type": "SELF_OU",
"rootNode": false,
"sortNumber": 0,
"enabled": true,
"description": null,
"extendFields": {
"4": "asd"
}
}
}
5.2.1.2. 获取组织机构列表¶
若传入的查询参数externalId为引用节点组织外部ID,则会返回引用的人事组织节点下的所有组织
Path: /api/bff/v1.2/developer/scim/organization/list
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名 |
是否必须 |
类型 |
备注 |
---|---|---|---|
externalId |
非必须 |
String |
外部id,组织机构的唯一id |
start |
非必须 |
Number |
分页开始位置,默认0 |
limit |
非必须 |
Number |
分页限制条数,默认20 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
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 |
组织机构名称 |
|
├─parentExternalId |
string |
父组织机构外部id |
|
├─ type |
string |
类型 |
|
├─enabled |
string |
是否可用 |
|
├─description |
string |
描述 |
|
├─nodeType |
string |
组织机构类型 |
ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”) |
├─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": ""
}
}
5.2.1.3. 获取根节点组织机构信息¶
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 |
组织机构名称 |
|
├parentExternalId |
string |
父组织机构外部id |
|
├type |
string |
类型 |
|
├enabled |
string |
账户是否可用 |
|
├description |
string |
描述 |
|
├nodeType |
string |
组织机构类型 |
ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”) |
├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": {}
}
}
5.2.1.4. 获取组织机构的直属子级¶
若传入的查询参数externalId为引用节点组织外部ID,则会返回引用的人事组织节点下一级直属子级组织
Path:/api/bff/v1.2/developer/scim/organization/children
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名 |
是否必须 |
类型 |
备注 |
---|---|---|---|
externalId |
必须 |
String |
外部id,组织机构的唯一id |
start |
非必须 |
Number |
分页开始位置,默认0 |
limit |
非必须 |
Number |
分页限制条数,默认20 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
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 |
组织机构名称 |
|
├─parentExternalId |
string |
父组织机构外部id |
|
├─ type |
string |
类型 |
|
├─enabled |
string |
账户是否可用 |
|
├─description |
string |
描述 |
|
├─nodeType |
string |
组织机构类型 |
ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”) |
├─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": ""
}
}
5.2.1.5. 获取组织机构在根组织机构下的详情¶
Path:/api/bff/v1.2/developer/scim/organization/ou_tree/detail
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名 |
是否必须 |
类型 |
备注 |
---|---|---|---|
externalId |
必须 |
String |
外部id,组织机构的唯一id |
ouTreeId |
必须 |
String |
根组织机构的外部id(externalId)。 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├organizationName |
string |
组织机构名称 |
|
├externalId |
string |
组织机构的外部id,主键 |
|
├parentExternalId |
string |
父组织机构外部id |
|
├type |
string |
类型 |
|
├enabled |
boolean |
是否可用 |
|
├description |
string |
描述 |
|
├extendFields |
object |
扩展字段 |
|
├nodeType |
string |
组织机构类型 |
ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”) |
├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"
}
]
}
}
5.2.1.6. 通过外部id批量获取机构列表¶
Path:/api/bff/v1.2/developer/scim/organization/list_by_externalids
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名 |
是否必须 |
类型 |
备注 |
---|---|---|---|
externalIds |
非必须 |
Array |
组织单位的外部id列表(externalIds),查询上限为20条。 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├externalId |
string |
组织机构的外部id,主键 |
|
├organizationName |
string |
组织机构名称 |
|
├parentExternalId |
string |
父组织机构外部id |
|
├type |
string |
类型 |
|
├enabled |
string |
是否可用 |
|
├description |
string |
描述 |
|
├nodeType |
string |
组织机构类型 |
ENTERPRISE_ROOT(“公司根节点”,“Enterprise root”) |
├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
}
]
}
5.2.2. 账户¶
5.2.2.1. 获取账户信息¶
Path:/api/bff/v1.2/developer/scim/account/detail
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名 |
是否必须 |
类型 |
备注 |
---|---|---|---|
externalId |
必须 |
String |
外部id,账户的唯一id |
archived |
非必须 |
boolean |
是否离职,true:查询离职账户,false:查询普通账户,默认false。可选 |
applicationUuid |
非必须 |
String |
应用uuid信息,若传递,则返回IDaaS主账户在该应用下的子账户信息,可选 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├externalId |
string |
用户的外部id |
|
├username |
string |
用户名 |
|
├displayName |
string |
显示名 |
|
├phoneNumber |
string |
手机号 |
|
string |
邮箱 |
||
├locked |
string |
账号是否锁定,true为锁定,false为未锁定 |
|
├archived |
boolean |
是否离职,false:普通账户,true:离职账户 |
|
├enabled |
string |
账号是否可用,true为启用,false禁用 |
|
├belongs |
string |
描述账户所属组织机构列表 |
|
├extendFields |
object |
扩展字段 |
|
├applicationUsers |
object[] |
应用子账户列表 |
|
├─ username |
string |
子账户名 |
|
├─ xxx… |
string |
子账户扩展属性’字段值’ |
注意,“xxx” 不是固定值,“xxx”代表子账户扩展属性定义的数据字典’字段值’,是动态的,请在应用群组下-> 具体群组-> 数据字典查看,”…” 代表有多个 |
├userBelongs |
string [] |
所属ou的外部id |
为组织外部id的集合,必填 |
├─externalId |
String |
具体的组织外部id |
|
├─mainOu |
boolean |
是否主组织 |
true:是,false:不是 |
├─extendFields |
object |
自定义”人员-组织属性”数据字典 |
填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填 |
├─displayOrder |
int |
账户在所属组织机构下的排序号 |
错误码
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": ""
},
"userBelongs": [
{
"externalId": "8094330624995480237",
"displayOrder":0,
"extendFields": {},
"mainOu": true
}
],
"applicationUsers": []
}
}
5.2.2.2. 获取账户列表(旧)¶
若传入的查询参数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。可选 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认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 |
|
└─systemAccountLists |
object |
返回的账户列表 |
|
├─externalId |
string |
用户的外部id,主键 |
|
├─username |
string |
用户名 |
|
├─displayName |
string |
显示名 |
|
├─phoneNumber |
string |
手机号 |
|
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,
"systemAccountLists": [
{
"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": ""
}
}
5.2.2.3. 获取账户列表(新)¶
若传入的查询参数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 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
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 |
手机号 |
|
string |
邮箱 |
||
├─locked |
string |
账号是否锁定,true为锁定,false为未锁定 |
|
├─archived |
boolean |
是否离职,false:普通账户,true:离职账户 |
|
├─enabled |
string |
账号是否可用,true为启用,false禁用 |
|
├─belongs |
string |
描述账户所属组织机构列表 |
|
├─extendFields |
object |
扩展字段 |
|
├userBelongs |
string [] |
所属ou的外部id |
为组织外部id的集合,必填 |
├─externalId |
String |
具体的组织外部id |
|
├─mainOu |
boolean |
是否主组织 |
true:是,false:不是 |
├─extendFields |
object |
自定义”人员-组织属性”数据字典 |
填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填 |
├─displayOrder |
int |
账户在所属组织机构下的排序号 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
EntityNotFound |
例如:组织机构123456不存在 |
未查找到externalId对应的OU |
403 |
Forbidden |
例如:没有权限操作该父OU |
没有权限操作 |
请求地址示例: /api/bff/v1.2/developer/scim/account/list?ouExternalId=3410295325503010222&access_token=4616b26c-5a90-4b96-a789-73082615978e
响应示例 :
{
"success": true,
"code": "200",
"message": null,
"requestId": "1676371660617$149dc1b4-a1c5-ad3d-7882-7540c7a0af81",
"data": {
"accounts": [
{
"externalId": "6287885825738008167",
"username": "***in",
"displayName": "***理员",
"phoneNumber": null,
"phoneRegion": "86",
"email": null,
"locked": false,
"enabled": true,
"archived": false,
"description": null,
"extendFields": {},
"effectiveTime": null,
"expireTime": null,
"createTime": "2022-08-15 15:25:41",
"updateTime": "2023-02-09 10:31:59",
"avatarUuid": null,
"userBelongs": [
{
"externalId": "3410295325503010222",
"displayOrder": 0,
"extendFields": {},
"mainOu": true
}
],
"applicationUsers": []
}
],
"total": 1,
"refOrgExternalId": null
}
}
5.2.2.4. 获取账户在根组织机构下的详情¶
Path: /api/bff/v1.2/developer/scim/account/ou_tree/detail
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名 |
是否必须 |
类型 |
备注 |
---|---|---|---|
externalId |
必须 |
String |
外部id,账户的唯一id |
ouTreeId |
必须 |
String |
根组织单位的外部id(externalId)。 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├externalId |
string |
用户的外部id,主键 |
|
├username |
string |
用户名 |
|
├displayName |
string |
显示名 |
|
├phoneNumber |
string |
手机号 |
|
string |
邮箱 |
||
├locked |
string |
账号是否锁定,true为锁定,false为未锁定 |
|
├enabled |
string |
账号是否可用,true为启用,false禁用 |
|
├userBelongs |
string [] |
所属ou的外部id |
为组织外部id的集合,必填 |
├─externalId |
String |
具体的组织外部id |
|
├─mainOu |
boolean |
是否主组织 |
true:是,false:不是 |
├─extendFields |
object |
自定义”人员-组织属性”数据字典 |
填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填 |
├─displayOrder |
int |
账户在所属组织机构下的排序号 |
|
├extendFields |
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": "1676371845284$ef0d823b-6c50-024a-47ee-4aeaba79623d",
"data": {
"externalId": "6287885825738008167",
"username": "***in",
"displayName": "***理员",
"phoneNumber": null,
"phoneRegion": "86",
"email": null,
"locked": false,
"enabled": true,
"archived": false,
"description": null,
"extendFields": {},
"effectiveTime": null,
"expireTime": null,
"createTime": "2022-08-15 15:25:41",
"updateTime": "2023-02-09 10:31:59",
"avatarUuid": null,
"userBelongs": [
{
"externalId": "main",
"displayOrder": 0,
"extendFields": {},
"mainOu": false,
}
],
"applicationUsers": [],
"mainTree": true,
"inRefTree": false,
"refTreeInfo": []
}
}
5.2.2.5. 通过外部id等条件批量获取用户信息列表¶
Path: /api/bff/v1.2/developer/scim/account/load_by_externalIds
Method: GET/POST
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名 |
是否必须 |
类型 |
备注 |
---|---|---|---|
externalIds |
非必须 |
Array |
账户的外部id集合(externalIds),查询上限为50条。 |
非必须 |
String |
邮箱(不支持模糊查询)。 |
|
phone |
非必须 |
String |
手机号(不支持模糊查询)。 |
displayName |
非必须 |
String |
显示名(支持使用前缀模糊查询)。 |
hasIneffective |
非必须 |
boolean |
是否查询未生效数据,默认false |
start |
非必须 |
Number |
分页开始位置,默认0 |
limit |
非必须 |
Number |
分页限制条数,默认20 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
└─accounts |
object |
返回的账户列表 |
|
├─externalId |
string |
用户的外部id,主键 |
|
├─username |
string |
用户名 |
|
├─displayName |
string |
显示名 |
|
├─phoneNumber |
string |
手机号 |
|
string |
邮箱 |
||
├─locked |
string |
账号是否锁定,true为锁定,false为未锁定 |
|
├─archived |
boolean |
是否离职,false:普通账户,true:离职账户 |
|
├─enabled |
string |
账号是否可用,true为启用,false禁用 |
|
├─belongs |
string |
描述账户所属组织机构列表 |
|
├─extendFields |
object |
扩展字段 |
|
├userBelongs |
string [] |
所属ou的外部id |
为组织外部id的集合,必填 |
├─externalId |
String |
具体的组织外部id |
|
├─mainOu |
boolean |
是否主组织 |
true:是,false:不是 |
├─extendFields |
object |
自定义”人员-组织属性”数据字典 |
填写则代表更新该项信息。更新时,如果数据字典是必填选项,则该属性必填 |
├─displayOrder |
int |
账户在所属组织机构下的排序号 |
错误码
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=7278996792421980908,6786131135298859160&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": "1693473726490$52ec38eb-1105-115b-9842-60638fc666cf",
"data": {
"accounts": [
{
"externalId": "7278996792421980908",
"username": "test***",
"displayName": "***",
"phoneNumber": null,
"phoneRegion": "86",
"email": null,
"locked": false,
"enabled": true,
"archived": false,
"description": "",
"extendFields": {},
"effectiveTime": null,
"expireTime": "2116-12-31 23:59:59",
"createTime": "2023-08-24 18:03:46",
"updateTime": "2023-08-24 18:03:46",
"avatarUuid": null,
"belongs": [],
"organzationsOrderList": [
{
"externalId": "4564325328869962519",
"displayOrder": 0
}
],
"userBelongs": [
{
"belong": "4564325328869962519",
"externalId": "4564325328869962519",
"displayOrder": 0,
"extendFields": {},
"mainOu": true,
"belongOuUuid": null
}
],
"applicationUsers": []
},
{
"externalId": "6786131135298859160",
"username": "test***",
"displayName": "***",
"phoneNumber": null,
"phoneRegion": "86",
"email": null,
"locked": false,
"enabled": true,
"archived": false,
"description": "",
"extendFields": {},
"effectiveTime": null,
"expireTime": "2116-12-31 23:59:59",
"createTime": "2023-03-01 14:10:11",
"updateTime": "2023-08-24 10:41:10",
"avatarUuid": null,
"belongs": [],
"organzationsOrderList": [
{
"externalId": "4564325328869962519",
"displayOrder": 0
}
],
"userBelongs": [ {
"belong": "4564325328869962519",
"externalId": "4564325328869962519",
"displayOrder": 0,
"extendFields": {},
"mainOu": true,
"belongOuUuid": null
}
],
"applicationUsers": []
}
],
"total": 2,
"refOrgExternalId": null
}
}
5.2.3. 组¶
5.2.3.1. 获取组织机构下的组列表¶
Path:/api/bff/v1.2/developer/scim/group/list
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
ouExternalId |
string |
必须 |
所属组织机构(OU)的外部ID |
|
start |
Number |
非必须 |
分页开始位置,默认0 |
|
limit |
Number |
非必须 |
分页限制条数,默认20 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├─total |
int |
总数 |
|
├─list |
object[] |
||
├──externalId |
String |
账户组id,主键 |
|
├──displayName |
String |
组显示名称 |
|
├──description |
String |
描述信息 |
|
├──extendFields |
object |
自定义扩展的字段 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
InvalidParameter |
例如:组名称不能为空 |
请求参数错误 |
400 |
EntityNotFound |
例如:OU不存在 |
组隶属的OU不存在 |
403 |
Forbidden |
例如:没有权限操作该组 |
没有权限操作该组 |
请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/group/list?ouExternalId=5613281506756426797&limit=2&start=0
响应示例 :
{
"success": true,
"code": "200",
"message": null,
"requestId": "1671696298074$2c60e4e5-ec1a-5237-c84c-0943f6e2c557",
"data": {
"total": 4,
"list": [
{
"externalId": "3908431160027359986",
"displayName": "组1",
"description": "",
"extendFields": {}
},
{
"externalId": "5613281506756426797",
"displayName": "成都组",
"description": "",
"extendFields": {
"212": "12"
}
}
]
}
}
5.2.3.2. 获取组成员¶
Path:/api/bff/v1.2/developer/scim/group/group_members
Method: GET
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
externalId |
string |
必须 |
外部id,组的唯一id |
|
start |
Number |
非必须 |
分页开始位置,默认0 |
|
limit |
Number |
非必须 |
分页限制条数,默认20 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├─total |
int |
总数 |
|
├─list |
object[] |
||
├──accountExternalId |
String |
账户外部ID |
|
├──username |
String |
账户名 |
|
├──displayName |
String |
用户的显示名称 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
InvalidParameter |
例如:外部id(externalId)无效 |
请求参数错误 |
400 |
EntityNotFound |
例如:组不存在 |
组隶属的OU不存在 |
403 |
Forbidden |
例如:没有权限操作该组 |
没有权限操作该组 |
请求地址示例: {{idaas_host}}/api/bff/v1.2/developer/scim/group/group_members?externalId=5613281506756426797&limit=2&start=0
响应示例 :
{
"success": true,
"code": "200",
"message": null,
"requestId": "1670922993003$fc25eb21-0a9a-3805-fbf4-bb54ef61938f",
"data": {
"total": 11,
"list": [
{
"accountExternalId": "2142057301007169643",
"username": "zhangdh1111",
"displayName": "zhangdh1111"
},
{
"accountExternalId": "111111111111195",
"username": "developer295",
"displayName": "开发人员395"
}
]
}
}