IDaaS提供一些UD同步的接口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/v/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, 最大50

请求示例:

/api/bff/v/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。

请求示例:

/api/application/group?externalId=1694618271068407094

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 没有权限操作