用户目录(UD)¶
最后更新:2022-08-23
本文档主要覆盖一个SP应用如何通过SCIM协议与IDP4进行用户目录进行数据同步。本文档主要针对SP需要拉取IDaaS平台数据(此方法不建议,IDaaS不可控)、SP需要推送组织机构、账户、组数据到IDaaS、IDaaS需要推送组织机构、账户、组数据到SP的三类典型应用场景,方便SP与IDaaS实现数据交互闭环。
当前SP推至IDaaS和IDaaS推至SP场景我们都提供覆盖场景广的连接器Connector实现应用和IDaaS数据打通,需要IDaaS与SP相关同步数据都通过Connector连接器实现。
术语定义¶
参考:IDP中产品术语介绍
场景描述:¶
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接口。
IDaaS推至SP¶
集成方式¶
通过统一连接器Connector实现,如何创建任务见IDP同步数据到SP场景
同步目标¶
选择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,如图:
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为系统定义扩展字段 |
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为系统定义扩展字段 |
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(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 |
参数异常 |
修改账户¶
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 |
参数异常 |
删除账户¶
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 |
参数异常 |
SP推至IDaaS¶
集成方式¶
针对不同SP推送至IDaaS的方式,我们提供不同的接入指引,只需要按需选择相关接入指引即可实现不同SP同步数据到IDaaS的流程,目前我们支持两种方式,一种采用调用API的方式同步数据到IDaaS,也可以通过统一连接器Connector实现,见数据同步方案。
推荐使用Connector 的SCIM 接口进行数据同步,替换掉直接使用IDaaS SCIM接口进行数据同步
API集成步骤¶
1. 创建应用(如果有则不需要创建)¶
该步骤主要目的帮助开发者在IDaaS平台上如何创建一个应用,以及获取AK,SK,用于识别是哪个应用向IDaaS平台同步数据。这里建议不要混用其他应用。
2. 设置数据范围和API接口范围¶
在上图中红框标记部分设置该应用允许访问的数据范围和接口范围
3. 获取access_token¶
该步骤主要帮助开发者获取调用机构或人员API时所需的token,该token是对API接口做到保护作用,必须使用正确的AK与SK才能获取到token。
4. 调用接口¶
该步骤主要帮助开发者开发对应的机构或人员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"
}
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,可作主键 |
如果不填,IDaaS将随机生成一个唯一值,并在结果中返回 |
parentExternalId |
string |
必须 |
所属的父级组织机构的唯一id |
通过在系统”机构及组”中在组织机构属性中查看参数“外部ID”即可 |
type |
string |
非必须 |
组织机构类型 |
自建组织单位:SELF_OU,自建部门:DEPARTMENT,外部同步组织单位:EXTERNAL_OU,默认为DEPARTMENT |
sortNumber |
int |
非必须 |
排序号 |
|
enabled |
boolean |
非必须 |
是否启用 |
true:启用,false:禁用,默认为true。 |
description |
string |
非必须 |
描述信息 |
不超过255个字符。 |
effectiveTime |
datetime |
非必须 |
生效时间 |
格式:2022-09-04 13:00:00 |
extendFields |
object |
非必须 |
扩展字段 |
在IDaaS数据字典中定义,如果自定义扩展字段是必填选项,则该属性必填 |
├─ test1 |
string |
非必须 |
||
manager |
object[] |
非必须 |
主管列表 |
|
├─ value |
string |
非必须 |
主管账户外部ID |
返回数据
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
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": "12345609877332",
"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": "12345609877332",
"id": "48dac1a9e83bc7fb3436283cd9fd00e1dOxlgdGxN15"
}
}
修改组织机构¶
Path:/api/bff/v1.2/developer/scim/organization/update
Method: PUT
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
应用获取到的access_token |
Body
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
externalId |
string |
必须 |
外部id,组织机构的唯一id,可作主键 |
|
organizationName |
string |
非必须 |
机构名称 |
|
parentExternalId |
string |
非必须 |
所属的父级组织机构的唯一id |
通过在系统”机构及组”中在组织机构属性中查看参数“外部ID”即可 |
type |
string |
非必须 |
组织机构类型 |
自建组织单位:SELF_OU,自建部门:DEPARTMENT,外部同步组织单位:EXTERNAL_OU,默认为DEPARTMENT |
sortNumber |
int |
非必须 |
排序号 |
|
enabled |
boolean |
非必须 |
是否启用 |
true:启用,false:禁用,默认为true |
description |
string |
非必须 |
描述信息 |
不超过255个字符 |
effectiveTime |
datetime |
非必须 |
生效时间 |
格式:2022-09-04 13:00:00 |
extendFields |
object |
非必须 |
扩展字段 |
在IDaaS数据字典中定义 |
├─ test1 |
string |
非必须 |
||
manager |
object[] |
非必须 |
主管列表 |
|
├─ value |
string |
非必须 |
主管账户外部ID |
提示:不准备修改的字段可不传。
返回数据
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
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": "12345609877332",
"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": "12345609877332",
"id": "48dac1a9e83bc7fb3436283cd9fd00e1dOxlgdGxN15"
}
}
删除组织机构¶
Path:/api/bff/v1.2/developer/scim/organization/delete
Method: DELETE
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
应用获取到的access_token |
Query
参数名称 |
是否必须 |
示例 |
备注 |
---|---|---|---|
externalId |
是 |
外部id,组织机构的唯一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"
}
账户¶
推送账户¶
Path:/api/bff/v1.2/developer/scim/account/create
Method: POST
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
externalId |
string |
非必须 |
外部id,账户的唯一id,可作主键 |
如果不填,IDaaS将随机生成一个唯一值,并在结果中返回 |
userName |
string |
必须 |
账户名称 |
登录名称 |
displayName |
string |
必须 |
显示名称 |
|
password |
string |
非必须 |
IDaaS平台主账户密码 |
若为空,则将使用系统随机密码。 |
firstLogin |
boolean |
非必须 |
是否首次登录 |
打开密码策略的强制改密的前提下,true 表示触发首次登录强制修改密码 |
string |
非必须 |
邮箱 |
唯一 |
|
phoneNumber |
string |
非必须 |
手机号 |
唯一 |
phoneRegion |
string |
非必须 |
手机号区号 |
|
enabled |
boolean |
非必须 |
是否启用 |
true:启用,false:禁用,默认为true。 |
locked |
boolean |
非必须 |
是否锁定 |
true:已锁定,false:未锁定,默认为false。 |
description |
string |
非必须 |
描述信息 |
不超过255个字符 |
expireTime |
datetime |
非必须 |
过期时间 |
格式:2022-09-04 13:00:00 |
effectiveTime |
datetime |
非必须 |
生效时间 |
格式:2022-09-04 13:00:00 |
avatarUuid |
string |
非必须 |
头像唯一标识 |
通过“上传账户头像”接口上传头像图片后得到 |
userBelongs |
string [] |
必须 |
所属组织机构的集合 |
|
├─externalId |
String |
必须 |
组织机构的唯一id |
|
├─mainOu |
boolean |
必须 |
是否主组织 |
true:是,false:不是 |
├─extendFields |
object |
非必须 |
自定义”人员-组织属性”数据字典 |
在IDaaS数据字典中定义,如果自定义扩展字段是必填选项,则该属性必填 |
├─displayOrder |
long |
非必须 |
排序号 |
从0开始 |
extendFields |
object |
非必须 |
扩展字段 |
在IDaaS数据字典中定义,如果自定义扩展字段是必填选项,则该属性必填 |
├─ test |
string |
非必须 |
|
|
├─ test1 |
string |
非必须 |
||
applicationUuid |
string |
非必须 |
应用uuid |
选填,应用的uuid可在应用列表-具体应用详情里查看,若传递则代表需要推送应用子账户,子账户信息参考applicationUsers |
applicationUsers |
object[] |
非必须 |
应用子账户列表 |
|
├─ username |
string |
必须 |
子账户名 |
|
├─ test |
string |
非必须 |
子账户扩展字段 |
在IDaaS数据字典中定义,如果自定义扩展字段是必填选项,则该属性必填 |
返回数据
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
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": "12345609877332",
"userName": "developer2",
"displayName": "开发人员3",
"password": "Jdev@12345",
"email": "test2@test.com",
"phoneNumber": "",
"description": "",
"phoneRegion": "",
"expireTime": null,
"userBelongs": [
{
"externalId": "123456",
"displayOrder": 3243243,
"mainOu": true,
"extendFields": {
"attr": "123",
"position": "pdsa"
}
}
],
"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": "12345609877332",
"id": "102c03563bc868f5055438828f1b30063g5xe8NBpKk"
}
}
修改账户¶
Path:/api/bff/v1.2/developer/scim/account/update
Method: PUT
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
externalId |
string |
必须 |
外部id,账户的唯一id,可作主键 |
账户外部ID(和账户名称必填一个) |
userName |
string |
必须 |
账户名称 |
账户名称(和外部ID必填一个) |
displayName |
string |
非必须 |
显示名称 |
|
password |
string |
非必须 |
IDaaS平台主账户密码 |
|
string |
非必须 |
邮箱 |
唯一 |
|
phoneNumber |
string |
非必须 |
手机号 |
唯一 |
enabled |
boolean |
非必须 |
是否启用 |
true:启用,false:禁用,默认为true |
locked |
boolean |
非必须 |
是否锁定 |
true:已锁定,false:未锁定,默认为false |
description |
string |
非必须 |
描述信息 |
不超过255个字符 |
expireTime |
string |
非必须 |
过期时间 |
格式:2022-09-04 13:00:00 |
effectiveTime |
datetime |
非必须 |
生效时间 |
格式:2022-09-04 13:00:00 |
avatarUuid |
string |
非必须 |
头像唯一标识 |
通过“上传账户头像”接口上传头像图片后得到 |
userBelongs |
string [] |
必须 |
所属组织机构的集合 |
|
├─externalId |
String |
必须 |
组织机构的唯一id |
|
├─mainOu |
boolean |
必须 |
是否主组织 |
true:是,false:不是 |
├─extendFields |
object |
非必须 |
自定义”人员-组织属性”数据字典 |
在IDaaS数据字典中定义 |
├─displayOrder |
long |
非必须 |
排序号 |
从0开始 |
extendFields |
object |
非必须 |
扩展字段 |
在IDaaS数据字典中定义 |
├─ test |
string |
非必须 |
||
├─ test1 |
string |
非必须 |
||
applicationUuid |
string |
非必须 |
应用uuid |
选填,应用的uuid可在应用列表-具体应用详情里查看,若传递则代表需要推送应用子账户,子账户信息参考applicationUsers |
applicationUsers |
object[] |
非必须 |
应用子账户列表 |
|
├─ username |
string |
必须 |
子账户名 |
|
├─ xxx… |
string |
非必须 |
子账户扩展字段’ |
在IDaaS数据字典中定义 |
提示:不准备修改的字段可不传。
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
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": "12345609877332",
"userName": "developer2",
"displayName": "开发人员4",
"password": "Jdev@12345",
"email": "test2@test.com",
"phoneNumber": "",
"description": "",
"mainOUBelong": "",
"userBelongs": [
{
"belong": "123456",
"displayOrder": 3243243,
"mainOu": true,
"extendFields": {
"attr": "123",
"position": "pdsa"
}
}
],
"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": "12345609877332",
"id": "102c03563bc868f5055438828f1b30063g5xe8NBpKk"
}
}
删除账户¶
Path:/api/bff/v1.2/developer/scim/account/delete
Method: DELETE
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名称 |
是否必须 |
示例 |
备注 |
---|---|---|---|
externalId |
是 |
外部id,账户的唯一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"
}
离职账户¶
Path:/api/bff/v1.2/developer/scim/account/archive
Method: PUT
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Body
参数名称 |
是否必须 |
示例 |
备注 |
---|---|---|---|
externalId |
是 |
外部id,账户的唯一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
}
返聘账户¶
Path:/api/bff/v1.2/developer/scim/account/rehired
Method: PUT
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
externalId |
string |
必须 |
外部id,账户的唯一id,可作主键 |
|
organizationExternalId |
string |
非必须 |
返聘后账户所属组织机构外部id |
不填则返聘至原组织机构下,若原组织机构不存在则返聘至根组织机构下 |
useOldGroup |
boolean |
非必须 |
是否使用原来的组信息 |
默认true,保留原所属组信息 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
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": "12345609877332",
"organizationExternalId": "11648579523462"
}
返回示例 :
{
"success": true,
"code": "200",
"message": null,
"requestId": "1620442079935$84b7e280-7242-6830-f632-14bfe2f7e8d4",
"data": {
"externalId": "12345609877332",
"id": "102c03563bc868f5055438828f1b30063g5xe8NBpKk"
}
}
上传账户头像¶
Path:/api/bff/v1.2/developer/scim/account/avatar/upload
Method: POST
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
默认值 |
备注 |
其他信息 |
---|---|---|---|---|---|
base64File |
string |
必须 |
图片转base64字符串, 文件大小不超过1MB |
||
filename |
string |
必须 |
文件名称,例如:123.jpg |
仅支持JPG、PNG格式 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├─uuid |
string |
头像数据唯一标识 |
错误码
HttpCode(请求状态码) |
code(错误码) |
message(错误信息) |
备注 |
---|---|---|---|
200 |
200 |
null |
请求成功 |
400 |
400 |
例如:仅支持JPG、PNG格式 |
请求参数错误 |
请求地址示例:{{idaas_host}}/api/bff/v1.2/developer/scim/account/avatar/upload
请求示例 :
{
"base64File": "iVBORw0KGgoAAAANSUhEUgAABWs****+Pbf33FEAAAAASUVORK5CYII=",
"filename": "avatar.png"
}
返回示例 :
{
"success": true,
"code": "200",
"message": null,
"requestId": "1671596832872$c3b3a198-5868-ff24-67a4-840e8485bbe6",
"data": {
"uuid": "8e5be602c73462c7d84b1ca5419b9100s1UOQfxQabF"
}
}
组¶
推送组¶
Path:/api/bff/v1.2/developer/scim/group/create
Method: POST
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
externalId |
string |
非必须 |
外部id,组的唯一id,可作主键 |
如果不填,IDaaS将随机生成一个唯一值,并在结果中返回 |
displayName |
string |
必须 |
显示名称 |
|
ouExternalId |
string |
必须 |
所属的父级组织机构的唯一id |
|
description |
string |
非必须 |
描述信息 |
不超过255个字符 |
extendFields |
object |
非必须 |
扩展字段 |
在IDaaS数据字典中定义,如果自定义扩展字段是必填选项,则该属性必填 |
├─ 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"
}
}
修改组¶
Path:/api/bff/v1.2/developer/scim/group/update
Method: PUT
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
备注 |
其他信息 |
---|---|---|---|---|
externalId |
string |
必须 |
外部id,组的唯一id,可作主键 |
|
displayName |
string |
非必须 |
显示名称 |
|
description |
string |
非必须 |
描述信息 |
不超过255个字符 |
addMembers |
object [] |
非必须 |
需要添加的组成员 |
|
├─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 |
非必须 |
扩展字段 |
在IDaaS数据字典中定义 |
├─ 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": "121434322",
"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
}
删除组¶
Path:/api/bff/v1.2/developer/scim/group/delete
Method: DELETE
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Authorization |
Bearer {access_token} |
是 |
Query
参数名称 |
是否必须 |
示例 |
备注 |
---|---|---|---|
externalId |
是 |
外部id,组的唯一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
}
添加组成员¶
Path:/api/bff/v1.2/developer/scim/group/add_group_members
Method: POST
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
默认值 |
备注 |
其他信息 |
---|---|---|---|---|---|
externalId |
string |
必须 |
外部id,组的唯一id,可作主键 |
||
addMembers |
object [] |
必须 |
|
需要添加的组成员 |
一次组成员最多不超过10 |
├─accountExternalId |
String [] |
非必须 |
|
账户外部ID |
如果同时传了accountExternalId和username,以accountExternalId为准 |
├─username |
string |
非必须 |
账户名 |
如果同时传了accountExternalId和username,以accountExternalId为准 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├─ addFailureMemberDtos |
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/add_group_members
请求示例 :
{
"externalId": "5613281506756426797",
"addMembers": [
{
"accountExternalId": "2142057301007169643 "
}
]
}
响应示例 :
{
"success": true,
"code": "200",
"message": null,
"requestId": "1670920450751$ef482589-6cd3-5b2e-f479-a5f280243a22",
"data": {
"addFailureMemberDtos": []
}
}
移除组成员¶
Path:/api/bff/v1.2/developer/scim/group/delete_group_members
Method: POST
Headers
参数名称 |
参数值 |
是否必须 |
示例 |
备注 |
---|---|---|---|---|
Content-Type |
application/json |
是 |
||
Authorization |
Bearer {access_token} |
是 |
Body
名称 |
类型 |
是否必须 |
默认值 |
备注 |
其他信息 |
---|---|---|---|---|---|
externalId |
string |
必须 |
外部id,组的唯一id,可作主键 |
||
deleteMembers |
object [] |
必须 |
|
需要移除的组成员 |
一次组成员最多不超过10 |
├─accountExternalId |
String [] |
非必须 |
|
账户外部ID |
如果同时传了accountExternalId和username,以accountExternalId为准 |
├─username |
string |
非必须 |
账户名 |
如果同时传了accountExternalId和username,以accountExternalId为准 |
返回数据
名称 |
类型 |
备注 |
其他信息 |
---|---|---|---|
success |
boolean |
是否成功 |
|
code |
string |
成功为200 |
|
message |
null |
错误信息 |
success为false取值提示给用户 |
requestId |
string |
无须关注 |
|
data |
object |
||
├─ deleteFailureMemberDtos |
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/delete_group_members
请求示例 :
{
"externalId": "5613281506756426797",
"deleteMembers": [
{
"accountExternalId": "2142057301007169643 "
}
]
}
响应示例 :
{
"success": true,
"code": "200",
"message": null,
"requestId": "1670920450751$ef482589-6cd3-5b2e-f479-a5f280243a22",
"data": {
"deleteFailureMemberDtos": []
}
}
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 |
必须 |
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"
}
}
}
获取组织机构列表¶
若传入的查询参数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": ""
}
}
获取根节点组织机构信息¶
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": {}
}
}
获取组织机构的直属子级¶
若传入的查询参数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": ""
}
}
获取组织机构在根组织机构下的详情¶
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"
}
]
}
}
通过外部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
}
]
}
账户¶
获取账户信息¶
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": []
}
}
获取账户列表(旧)¶
若传入的查询参数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 |
|
└─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 |
扩展字段 |
|
└─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 |
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
}
}
获取账户在根组织机构下的详情¶
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": []
}
}
通过外部id等条件批量获取用户信息列表¶
Path: /api/bff/v1.2/developer/scim/account/load_by_externalIds
Method: GET
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=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": "1676372014749$512c2aba-b266-604f-914e-fb4c9af5a151",
"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
}
}
组¶
获取组织机构下的组列表¶
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"
}
}
]
}
}
获取组成员¶
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"
}
]
}
}