用户目录API-IDP4(UD)¶
最后更新:2024-09-09
本文档主要介绍IDP4本身UD自带的SCIM相关操作接口,主要用于SP推数据至IDaas
1. 集成方式¶
采用调用IDP4本身API的方式同步数据到IDaaS
2. API集成步骤¶
2.1. 创建应用(如果有则不需要创建)¶
该步骤主要目的帮助开发者在IDaaS平台上如何创建一个应用,以及获取AK,SK,用于识别是哪个应用向IDaaS平台同步数据。这里建议不要混用其他应用。
2.2. 设置数据范围和API接口范围¶
在上图中红框标记部分设置该应用允许访问的组织和账户数据范围和接口范围
2.3. 获取access_token¶
该步骤主要帮助开发者获取调用机构或人员API时所需的token,该token是对API接口做到保护作用,必须使用正确的AK与SK才能获取到token。
2.4. 调用接口¶
该步骤主要帮助开发者开发对应的机构或人员API接口,通过下面的文档介绍调用。
3. API文档¶
3.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"
}
3.2. 调用API¶
3.2.1. 组织机构¶
3.2.1.1. 推送组织机构¶
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"
},
"manager": [
{
"value": "7962078547983645191"
},
{
"value": "7515197174099641957"
}
]
}
返回示例 :
{
"success": true,
"code": "200",
"message": null,
"requestId": "1620441890839$1be504af-ddc2-c5e3-ef2e-35c9682890af",
"data": {
"externalId": "12345609877332",
"id": "48dac1a9e83bc7fb3436283cd9fd00e1dOxlgdGxN15"
}
}
3.2.1.2. 修改组织机构¶
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"
}
}
3.2.1.3. 删除组织机构¶
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"
}
3.2.2. 账户¶
3.2.2.1. 推送账户¶
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:不是, 都填写true/都填写false/都不填写,则默认第一个为主组织,填写多个true,则默认第一个填写true的为主组织 |
├─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"
}
}
3.2.2.2. 修改账户¶
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:不是, 都填写true/都填写false/都不填写,则默认第一个为主组织,填写多个true,则默认第一个填写true的为主组织 |
├─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"
}
}
3.2.2.3. 删除账户¶
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"
}
3.2.2.4. 离职账户¶
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
}
3.2.2.5. 返聘账户¶
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"
}
}
3.2.2.6. 上传账户头像¶
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"
}
}
3.2.3. 组¶
3.2.3.1. 推送组¶
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个字符 |
addMembers |
object[] |
非必须 |
组成员信息 |
|
├─ accountExternalId |
string |
非必须 |
组成员外部id |
|
├─ username |
string |
非必须 |
组成员用户名 |
|
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"
}
}
3.2.3.2. 修改组¶
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
}
3.2.3.3. 删除组¶
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
}
3.2.3.4. 添加组成员¶
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": []
}
}
3.2.3.5. 移除组成员¶
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": []
}
}