SP(第三方应用)推数据至IDaaS

IDaaS提供一些数据同步的接口API(所有的API都是遵循SCIM协议),SP通过调用这些API,可以将数据同步到IDaaS。SP在调用IDaaS接口时,必须传递access_token。以下,我们将常用的API按照 组织机构,账户,组进行分类。

前提条件

  1. 获取IDaaS-Base-URL

    文档中的“IDaaS-Base-URL”需要替换为当前访问地址的主域,文中接口地址前也都需要替换主域地址。主域为IDaaS控制台中的用户访问的Portal的sso地址。

  2. 获取client-id和client-secret

    获取access_token时需要使用client-id和client-secret,我们可以在管理员控制台获取到。

    在管理员控制台添加一个应用,在应用的详情中可以启动API,API的两个值对应client-id和client-secret。

接口列表

  • 获取access_token

以下是关于组织机构操作的API,包括:

  • 推送组织机构

  • 修改或移动组织机构

  • 删除组织机构

  • 查询组织机构

  • 获取组织机构列表

  • 获取根节点组织机构信息

  • 获取组织机构的直属子级

以下是关于账户操作的API,包括:

  • 推送账户

  • 修改或移动账户

  • 删除账户

  • 获取账户信息

  • 查询账户列表

以下是关于组操作的API,包括:

  • 推送账户组

  • 更新账户组

  • 删除账户组

其他:

  • 获取应用已经授权的组织机构及账户列表

具体接口

获取access_token

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

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

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

access_token获取方式:向下面的URL进行POST请求,请求将返回json包含access_token

{IDaaS-Base-URL}/oauth/token?client_id={client-id}&client_secret={client-secret}&scope=read&grant_type=client_credentials

说明

client_id和client_secret即为创建应用中的API Key和API Secret

推送组织机构

在SP中添加一个组织机构,调用此接口,将新添加的组织机构的信息同步到IDaaS。

说明

同步时,请按照层级关系进行同步,先同步父级再同步子级

Request URI: /api/bff/v1.2/developer/scim/organization/createPOSTREST

Content-Type: application/json

Request Body:

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

请求参数说明:

参数名

参数值

类型

备注

organizationName

{organizationName}

String

组织机构名称。必填

externalId

{externalId}

String

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

parentExternalId

{parentExternalId}

String

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

type

{type}

String

自建组织单位: SELF_OU

自建部门: DEPARTMENT

外部同步组织机构: EXTERNAL_OU

默认为DEPARTMENT.选填

rootNode

{rootNode}

boolean

如果填true,将更新IDP中原本的根节点。选填

enabled

{enabled}

boolean

机构的状态。true:启用,false:禁用,默认为true。选填

sortNumber

{sortNumber}

int

用于展示排序。选填

description

{description}

String

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

extendFields

{extendFields}

Map<String,String>

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

Response Body:

{
"success": true,
"code": "200",
"message": null,
"requestId": "974CA7CA-1C98-4557-AC90-9425B2ED4719",
"data": {
    "externalId": "123456",
        "id": "123456"
        }
}

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

externalId

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

id

IDaaS平台机构的Uuid

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:父级机构123456不存在

请求参数错误

400

InvalidParameter.ExternalId.Exist

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

外部id重复

400

InvalidParameter.Name.Exist

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

组织机构的名称已存在

403

Forbidden

没有权限操作该父OU

没有权限操作

修改或移动组织机构

在SP中修改一个组织机构,调用此接口,将修改的组织机构的信息同步到IDaaS。

Request URI: /api/bff/v1.2/developer/scim/organization/updatePUTREST

Content-Type: application/json

Request Body:

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

请求参数说明:

参数名

参数值

类型

备注

externalId

{externalId}

String

组织机构的唯一id,该id是SP同步过来的,在IDaaS中称为外部id。必填

organizationName

{organizationName}

String

组织机构名称。选填

parentExternalId

{parentExternalId}

String

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

type

{type}

String

自建组织单位: SELF_OU

自建部门: DEPARTMENT

外部同步组织机构: EXTERNAL_OU

默认为DEPARTMENT.选填

enabled

{enabled}

boolean

机构的状态。true:启用,false:禁用。选填,填写则代表更新该项信息。

sortNumber

{sortNumber}

int

用于展示排序。选填,填写则代表更新该项信息。

description

{description}

String

用于说明当前OU,不超过500个字符。选填,填写则代表更新该项信息。

extendFields

{extendFields}

Map<String,String>

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

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "C98418A3-63B5-49CA-9C85-A820A65D3247",
        "data": {
            "externalId": "123456",
            "id": "123456"
        }
}

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

externalId

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

id

IDaaS平台机构的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

没有权限操作

删除组织机构

在SP中删除一个组织机构,调用此接口,在IDaaS中也删除这个组织机构

Request URI: /api/bff/v1.2/developer/scim/organization/deleteDELETEREST

Content-Type: application/json

请求示例:

/api/bff/v1.2/developer/scim/organization/delete?externalId=1694618271068407094

请求参数说明:

参数名

参数值

备注

externalId

{externalId}

IDaaS系统中组织机构的外部id。

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "30A38CA4-D640-4CBA-B85F-A0234D0181F1"
}

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

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

请求参数错误

400

EntityNotFound

组织机构不存在

未查找到要更新的OU

400

OperationDenied.OUContainsChildren

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

机构下存在子级机构或账户,不允许删除

403

Forbidden

没有权限操作该OU

没有权限操作

查询组织机构

查询单个组织机构

Request URI: /api/bff/v1.2/developer/scim/organization/detailGETREST

请求示例:

/api/bff/v1.2/developer/scim/organization/detail?externalId=1694618271068407094

请求参数说明:

参数名

参数值

备注

externalId

{externalId}

IDaaS系统中组织机构的外部id。

Response Body:

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

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

externalId

组织机构的外部id

organizationName

组织机构名称

parentExternalId

父组织机构外部id

type

类型

enabled

组织机构的状态

description

描述

extendFields

扩展字段

sortNumber

机构的排序号

rootNode

标识该机构是否为根节点

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

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

请求参数错误

400

EntityNotFound

组织机构不存在

未查找到要更新的OU

403

Forbidden

没有权限操作该父OU

没有权限操作

获取组织机构列表

SP通过调用此接口,可以查看所有的OU或者某OU及其所有子OU的组织机构列表。

Request URI: /api/bff/v1.2/developer/scim/organization/listGET

请求示例:

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

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

请求参数说明:

参数名

参数值

类型

备注

externalId

{externalId}

String

IDaaS系统中组织机构的外部id。选填

说明

如果不传值则返回该公司的所有组织机构。如果id不为空:则返回对应OU下的组织机构的信息

Response Body:

{
            "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"
                        }
                    }
                    ]
            }
        }

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

organizations

返回的组织机构信息

├ externalId

组织机构的外部id

├ organizationName

组织机构名称

├ parentExternalId

父组织机构外部id

├ type

类型

├ rootNode

标识该机构是否为根节点

├ sortNumber

机构的排序号

├ enabled

组织机构的状态

├ description

描述

└ extendFields

扩展字段

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

EntityNotFound

例如:组织机构123456不存在

未查找到externalId对应的OU

403

Forbidden

没有权限操作该父OU

没有权限操作

获取根节点组织机构信息

获取当前租户的根节点组织机构信息

Request URI: /api/bff/v1.2/developer/scim/organization/rootGETREST

请求示例:

/api/bff/v1.2/developer/scim/organization/root

Response Body:

{
        "success": true,
        "code": "200",
        "message": null,
        "requestId": "C757F8D6-E96A-4399-823C-E55AED4D59C3",
        "data": {
            "organizationName": "泰斯特技术有限公司",
            "externalId": "6721629573848908864",
            "parentExternalId": null,
            "type": "SELF_OU",
            "rootNode": true,
            "sortNumber": 0,
            "enabled": true,
            "description": "",
            "extendFields": {}
        }
}

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

externalId

组织机构的外部id

organizationName

组织机构名称

parentExternalId

父组织机构外部id

type

类型

enabled

组织机构的状态

description

描述

extendFields

扩展字段

sortNumber

机构的排序号

rootNode

标识该机构是否为根节点

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

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

请求参数错误

400

EntityNotFound

cannot get rootOU

未查找根OU

403

Forbidden

没有权限操作该父OU

没有权限操作

获取组织机构的直属子级

SP通过调用此接口,可以查看指定OU的所有直属子OU。

Request URI: /api/bff/v1.2/developer/scim/organization/childrenGET

请求参数说明:

参数名

参数值

类型

备注

externalId

{externalId}

String

IDaaS系统中组织机构的外部id。必填

说明

如果不传值则返回该公司的所有组织机构;如果id不为空:则返回对应OU下的组织机构的信息

请求示例:

/api/bff/v1.2/developer/scim/organization/children?externalId=1

Response Body:

{
"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": {
            }
        }
    ]
}
}

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

organizations

返回的组织机构信息

├ externalId

组织机构的外部id

├ organizationName

组织机构名称

├ parentExternalId

父组织机构外部id

├ type

类型

├ rootNode

标识该机构是否为根节点

├ sortNumber

机构的排序号

├ enabled

组织机构的状态

└ description

描述

└ extendFields

扩展字段

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

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

请求参数错误

400

EntityNotFound

组织机构不存在

未查找到externalId对应的OU

403

Forbidden

没有权限操作该父OU

没有权限操作

推送账户

SP中添加一个账户,调用此接口,将新添加的账户的信息同步到IDaaS中。

Request URI: /api/bff/v1.2/developer/scim/account/createPOSTREST

Content-Type: application/json

Request Body:

{
    "externalId": "123456",
    "userName": "developer2",
    "displayName": "开发人员3",
    "password": "Jdev@12345",
    "email": "test2@test.com",
    "phoneNumber": "",
    "description": "",
    "belongs": [
        "test1","test2"
        ],
    "extendFields": {
        "test":"123456",
        "test1":"woman"
    }
}

请求参数说明:

参数名

参数值

类型

备注

是否必填

userName

{userName}

String

云IDaaS平台主账户

必填

password

{password}

String

云IDaaS平台主账户密码

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

displayName

{displayName}

String

用户的显示名称

必填

externalId

{externalId}

String

账户的唯一id

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

email

{email}

String

邮箱

选填。

phoneNumber

{phoneNumber}

String

手机号, 只能一个且唯一

选填。

belongs

{belongs}

Array

所属ou的外部id的集合

必填,具体看请求参数示例

locked

{locked}

boolean

账户是否锁定,true:锁定账户,false:不锁定账户。锁定账户后将不能登录 IDaaS

选填。填写则代表更新该项信息。

enabled

{enabled}

boolean

用户启用状态,true启用,false禁用。禁用账户将不能登录 IDaaS

非必填,不填默认启用账户

description

{description}

String

描述信息

选填

expireTime

{expireTime}

String

过期时间。格式: yyyy-MM-dd,例如:2020-01-12

选填

extendFields

{extendFields}

Map<String,String>

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

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

Response Body:

失败示例:

{
        "success": false,
        "code": "InvalidParameter",
        "message": "密码不符合密码策略 / 邮箱(email): test@test.com 已经存在 / 所属组织机构(belongs):123456不存在",
        "requestId": "7BA02087-4789-4FA6-A414-45BAC671945E",
        "data": null
}

成功示例:

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

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

externalId

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

id

IDaaS平台账户的Uuid

错误码说明:

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

EntityNotFound

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

未查找到externalId对应的OU

修改或移动账户

SP中修改一个账户,调用此接口,将修改的账户的信息同步到IDaaS中。

Request URI: /api/bff/v1.2/developer/scim/account/update PUTREST

Content-Type:application/json

Request Body:

{
    "externalId": "test-2",
    "userName": "test-2",
    "displayName": "test-3",
     "password": "Jzyt@123456",
     "email": "test2@test2.com",
    "phoneNumber": "18890900900",
     "expireTime": "2117-01-01",
     "description": "123ttt",
     "locked":false,
    "belongs": [
        "test2"
        ],
    "extendFields": {
        "test":"t",
        "test1":"woman123"
    }
}

请求参数说明:

参数名

参数值

类型

备注

是否必填

userName

{userName}

String

云IDaaS平台主账户

选填,userName和externalId选填一个。

password

{password}

String

云IDaaS平台主账户密码

选填。填写则代表更新该项信息。

displayName

{displayName}

String

用户的显示名称

选填。填写则代表更新该项信息。

externalId

{externalId}

String

账户的唯一id

选填,userName和externalId选填一个。

email

{email}

String

邮箱

选填。填写则代表更新该项信息。

phoneNumber

{phoneNumber}

String

手机号, 只能一个且唯一

选填。填写则代表更新该项信息。

belongs

{belongs}

String

所属OU外部id的集合,必须存在

选填。填写则代表更新该项信息。具体看请求参数示例

locked

{locked}

boolean

账户是否锁定,true:锁定账户,false:不锁定账户。锁定账户后将不能登录 IDaaS

选填。填写则代表更新该项信息。

enabled

{enabled}

boolean

用户启用状态,true启用,false禁用。禁用账户将不能登录 IDaaS

选填,不填默认启用账户

description

{description}

String

描述信息

选填。填写则代表更新该项信息。

expireTime

{expireTime}

String

过期时间。格式: yyyy-MM-dd,例如:2020-01-12

选填。填写则代表更新该项信息。

extendFields

{extendFields}

Map<String,String>

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

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

Response Body:

失败示例:

{
        "success": false,
        "code": "InvalidParameter",
        "message": "密码不符合密码策略 / 邮箱(email): test@test.com 已经存在 / 所属组织机构(belongs):123456不存在",
        "requestId": "7BA02087-4789-4FA6-A414-45BAC671945E",
        "data": null
}

成功示例:

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

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

externalId

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

id

IDaaS平台机构的Uuid

错误码说明:

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.ExternalId.NotExist

通过externalId查询不到账户

未查找到externalId对应的账户

400

EntityNotFound

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

未查找到externalId对应的OU

删除账户

在SP中删除一个账户,通过调用此接口,删除IDaaS中该账户信息。

Request URI: /api/bff/v1.2/developer/scim/account/delete DELETEREST

请求参数说明:

参数名

参数值

备注

externalId

{externalId}

IDaaS系统中账户的外部id。

请求示例:

/api/bff/v1.2/developer/scim/account/delete?externalId=4544581305390943066

Response Body:

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

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

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

请求参数错误

400

EntityNotFound

账户不存在

未查找到要删除的账户

403

OperationDenied

例如:管理员 admin 不能删除

删除操作不被允许

获取账户信息

在SP中通过调用此接口,获取IDaaS中账户信息。

Request URI:/api/bff/v1.2/developer/scim/account/detailGETREST

Content-Type:application/json

请求参数说明:

参数名

参数值

备注

externalId

{externalId}

IDaaS系统中账户的外部id。必填

请求示例:

/api/bff/v1.2/developer/scim/account/detail?externalId=123456&access_token=bcab-ae1.2123456461626-590-496789-73082615978

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "278D7B88-6C26-4C7F-90A7-F126CF52F3E1",
    "data": {
        "externalId": "123456",
        "username": "test-2",
        "displayName": "test-3",
        "phoneNumber": "18890900900",
        "email": "test2@test2.com",
        "enabled": true,
        "locked": false,
        "description": "123ttt",
        "extendFields": {
            "test": "t",
            "test1": "woman123"
        },
        "belongs": [
            "test2"
        ]
    }
}

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

参数值

备注

externalId

{externalId}

IDaaS系统中账户的外部id

username

{username}

用户名

displayName

{displayName}

显示名

phoneNumber

{phoneNumber}

手机号

email

{email}

邮箱

locked

{locked}

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

enabled

{enabled}

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

belongs

{belongs}

账户所属组织机构列表

extendFields

{extendFields}

扩展字段,用于账户保存的自定义字段

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

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

请求参数错误

400

InvalidParameter.ExternalId.NotExist

externalId不存在

未查找到该账户

查询账户列表

在SP中通过调用此接口,获取IDaaS中账户列表信息。

Request URI: /api/bff/v1.2/developer/scim/account/listGETREST

Content-Type:application/json

请求参数说明:

参数名

参数值

备注

ouExternalId

{ouExternalId}

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

createStartDate

{createStartDate}

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

createEndDate

{createEndDate}

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

start

{start}

可选,分页开始位置, 默认0

limit

{limit}

可选,分页数据条件限制, 默认10, 最大100

请求示例:

/api/bff/v1.2/developer/scim/account/list?ouExternalId=test&access_token=bcab-ae1.22461626-590-496789-73082615978

Response Body:

{
    "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"
                ]
            }
        ]
    }
}

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

参数值

备注

externalId

{externalId}

IDaaS系统中账户的外部id

username

{username}

用户名

phoneNumber

{phoneNumber}

手机号

email

{email}

邮箱

locked

{locked}

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

enabled

{enabled}

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

belongs

{belongs}

账户所属组织机构列表

extendFields

{extendFields}

扩展字段,用于账户保存的自定义字段

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:Invalid createStartDate

请求参数错误

推送账户组

在SP中添加一个组,通过调用此接口,将组的信息推送到IDaaS中。

Request URI: /api/bff/v1.2/developer/scim/group/createPOSTREST

Content-Type: application/json

Request Body:

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

请求参数说明:

参数名

参数值

类型

备注

externalId

{externalId}

String

IDaaS系统中账户组的外部id,唯一。选填,不填时,系统会随机生成一个,并在结果中返回

displayName

{displayName}

String

组显示名称。必填

ouExternalId

{ouExternalId}

String

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

description

{description}

String

描述信息,选填

members

{members}

String

组成员,已经存在的账户外部ID和账户名,accountExternalId是账户外部ID,username是账户名

extendFields

{extendFields}

Map

自定义扩展字段,选填

Response Body:

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

success代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

错误码说明:

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

没有权限操作该组

没有权限操作该组

更新账户组

在SP中更新一个组,通过调用此接口,将组的信息推送到IDaaS中。

Request URI: /api/bff/v1.2/developer/scim/group/updatePUTREST

Content-Type: application/json

Request Body:

{
    "externalId": "121",
    "description": "tttt测试",
    "displayName": "测试t121",
    "extendFields": {
        "test":"ttt测试"
    }
}

请求参数说明:

参数名

参数值

类型

备注

externalId

{externalId}

String

IDaaS系统中账户组的外部id,唯一。必填

displayName

{displayName}

String

组显示名称。选填,填写则代表更新该项信息。

description

{description}

String

描述信息,选填。填写则代表更新该项信息。

extendFields

{extendFields}

Map

自定义扩展字段,选填,填写时代表更新。

Response Body:

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

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

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

请求参数错误

400

InvalidParameter.DisplayName.Exist

当前OU下,组名已经存在

显示名已经存在

400

InvalidParameter.ExternalId.NotExist

externalId不存在

externalId不存在

403

Forbidden

没有权限操作该组

没有权限操作该组

删除账户组

在SP中删除一个组,通过调用此接口,将IDaaS中的组删除。

Request URI: /api/bff/v1.2/developer/scim/group/deleteDELETEREST

Content-Type:application/json

请求参数说明:

参数名

参数值

备注

externalId

{externalId}

IDaaS系统中账户组的外部id。

Response Body:

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

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

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

请求参数错误

400

EntityNotFound

例如:查询不到组信息

未查询到组信息

400

OperationDenied.GroupContainsChildren

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

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

403

Forbidden

没有权限操作该组

没有权限操作该组

获取应用已经授权的组织机构及账户列表

根据应用的uuid获取直接授权的组织机构及账户的外部id。

Request URI: /api/bff/v1.2/developer/scim/application/authorized/listGETREST

请求示例:

/api/bff/v1.2/developer/scim/application/authorized/list?applicationUuid=1694618271068407094

请求参数说明:

参数名

参数值

备注

applicationUuid

{applicationUuid}

IDaas中应用的唯一标识

Response Body:

{
"success": true,
"code": "200",
"message": null,
"requestId": "2230CE9E-4674-407C-A006-D29ACD9DADDB",
"data": {
    "ouExternalIds": [
        "1",
        "129387071",
        "4122068885249961546"
    ],
    "accountExternalIds": [
        "4484474128951618300",
        "5812895747601718104"
    ]
}
}}

返回参数说明:

succes代表请求是否成功,code为错误码 ,message为错误信息为接口。

success为true时,代表请求成功,此时code为200,data返回数据。请求失败时,success为false,code为一串语义化的错误码,如:InvalidParameter.ParentOUUuid.NotExist

参数名

说明

ouExternalIds

已授权的组织机构外部id列表

accountExternalIds

已授权的账户外部id列表

错误码说明:

HttpCode(请求状态码)

code(错误码)

message(错误信息)

备注

200

200

null

请求成功

400

InvalidParameter

例如:applicationUuid不能为空

请求参数错误

400

EntityNotFound

例如:无效的applicationUuid

通过applicationUuid未找到对应的应用

403

Forbidden

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

没有权限操作