此同步方式,需要SP提供接口API。IDaaS通过调用这些API将数据同步到SP。其中需要注意的就是这个接口需要业务系统根据我们提供的字段名称和错误返回码来进行开发,此接口的开发需要提供Basic协议或者Oauth协议来保护接口。现在,我们将常用的按照组织机构,账户,组来进行分类.

IDaaS请求SP所有的地址都基于在IT管理员应用处的SCIM配置的地址基础上,以不同的请求方式(POST,PUT,DELETE)请求该地址。

接口列表

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

  • IDaaS给SP添加组织机构
  • IDaaS给SP修改或移动组织机构
  • IDaaS给SP删除组织机构

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

  • IDaaS给SP添加账户
  • IDaaS给SP修改或移动账户
  • IDaaS给SP删除账户

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

  • IDaaS给SP添加账户组
  • IDaaS给SP删除账户组

具体接口

前言

下面的是账户同步的第二种方式,即IDaaS推送到业务系统(SP)中,目前IDaaS仅提供一个给SP添加账户功能,其中需要注意的就是这个接口需要业务系统根据我们提供的字段名称和错误返回码来进行开发。
说明 IDaaS请求SP所有的地址都基于在IT管理员应用处的SCIM配置的地址基础上,以不同的请求方式请求该地址。

IDaaS给SP添加组织机构

IDaaS给SP添加组织机构IDaaS通过API给业务系统添加一个组织机构。此接口可以与“SP推至IDaaS的推送组织机构接口”共用一个实体类。

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

Content-Type: application/json

业务系统需要根据我们提供的字段标准来开发接口,如下所示:

参数说明:

参数名 参数值 备注
organization {organization} 组织机构的名称
parentUuid {parentUuid} 所属父级组织机构的uuid或外部ID
rootNode {rootNode} 是否是根节点
organizationUuid {organizationUuid} 本组织机构的uuid或外部ID
manager {manager} 组织机构的管理者,value是管理者账户的外部ID,displayName是用户名,管理者可为空
regionId {regionId} 组织机构所属的区域id,type为SELF_OU(自建组织机构)时有可能会有值,可为空,type为DEPARTMENT("自建部门")不会出现值
type {manager} SELF_OU(自建组织机构)或DEPARTMENT("自建部门")
levelNumber {levelNumber} 部门排序号
extendField {extendField} 扩展字典,attributes为系统定义扩展字段

IDaaS推送的Request Body示例:

{  ”childrenOuUuid”: [],  ”description”: “”,  ”extendField”: {    ”attributes”: {      ”ParentID”: “ee”,      ”dutyuserid”: “”,      ”OrganizationLevel”: “eeee”,      ”ouDisplayName”: “”,      ”ouCode”: “123”,      ”cRY”: “hIght”,      ”organizationLine”: “eee”    },    ”description”: “”,    ”expireTime”: “”  },  ”manager”: [],  ”organization”: “op”,  ”organizationUuid”: “1090561725224650754”,  ”parentUuid”: “4859503664755017696”,  ”regionId”: “”,  ”rootNode”: false,  ”type”: “SELF_OU”,  ”levelNumber”:“1001”}

SP需要返回 Response Body示例:

{ "errorNumber": 0, "errors": [] }

参数说明:

字段名 错误码 备注
errorNumber,int类型 0 SP返回错误码0,即视为成功
errors,错误信息,String集合类型 400 参数异常

IDaaS给SP修改或移动组织机构

IDaaS通过API给业务系统修改一个组织机构。此接口可以与“SP推至IDaaS的修改或移动组织机构接口”共用一个实体类。

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

Content-Type: application/json

业务系统需要根据我们提供的字段标准来开发接口,如下所示:

参数说明:

参数名 参数值 备注
organization {organization} 组织机构的名称
parentUuid {parentUuid} 所属父级组织机构的uuid或外部ID
organizationUuid {organizationUuid} 本组织机构的uuid或外部ID
manager {manager} 组织机构的管理者,value是管理者账户的外部ID,displayName是用户名,管理者可为空
regionId {regionId} 组织机构所属的区域id,type为SELF_OU(自建组织机构)时有可能会有值,可为空,type为DEPARTMENT("自建部门")不会出现值
type {manager} SELF_OU(自建组织机构)或DEPARTMENT("自建部门")
levelNumber {levelNumber} 部门排序号
extendField {extendField} 扩展字段,attributes为系统定义扩展字段

IDaaS推送的Request Body示例:

{  ”childrenOuUuid”: [],  ”description”: “”,  ”extendField”: {    ”attributes”: {      ”ParentID”: “ee”,      ”dutyuserid”: “”,      ”OrganizationLevel”: “eeee”,      ”ouDisplayName”: “”,      ”ouCode”: “123”,      ”cRY”: “hIght”,      ”organizationLine”: “eee”    },    ”description”: “”,    ”expireTime”: “”  },  ”manager”: [],  ”organization”: “op”,  ”organizationUuid”: “1090561725224650754”,  ”parentUuid”: “4859503664755017696”,  ”regionId”: “”,  ”rootNode”: false,  ”type”: “SELF_OU”,  ”levelNumber”:“1001”}

SP需要返回 Response Body示例:

{ "errorNumber": 0, "errors": [] }

参数说明:

字段名 错误码 备注
errorNumber 0 SP返回错误码0,即视为成功
errors,错误信息,String集合类型 400 参数异常

IDaaS给SP删除组织机构

IDaaS通过API给业务系统删除一个组织机构。

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

Content-Type: application/json

业务系统需要根据我们提供的字段标准来开发接口,如下所示:

参数说明:

参数名 参数值 备注
id {id} IDaaS中本组织机构的外部ID,对应应用系统的唯一标识

IDaaS推送的Request Body示例:

/api/application/scim/organization?organizationUuid=4544581305390943066

SP需要返回 Response Body示例:

{ "errorNumber": 0, "errors": [] }

参数说明:

字段名 错误码 备注
errorNumber 0 SP返回错误码0,即视为成功
400 参数异常
errors,错误信息,String集合类型 557 同步删除组织或组时,存在关联的不能删除

IDaaS给SP添加账户

IDaaS通过API给业务系统添加一个新的账户。此接口可以与“SP推至IDaaS的推送账户接口”共用一个实体类。

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

Content-Type: application/json

业务系统需要根据我们提供的字段标准来开发接口,如下所示:

参数说明:

参数名 参数值 备注
userName {userName} 云IDaaS平台主账户唯一
id {id} 用户ID,与外部ID值一样
displayName {displayName} 用户的显示名称,唯一
emails {emails} 邮箱
phoneNumbers {phoneNumbers} 手机号, 只能一个且唯一
externalId {externalId} 外部ID,唯一,不为空
belongs {belongs} 为账户指定组织单位
locked boolean 是否禁用账户,ture禁用账户,false启用账户。禁用账户后将不能登录应用系统
extendField {extendField} 扩展字段,attributes为系统定义扩展字段

IDaaS推送的Request Body示例:

{   “belongs”: [     {       “belongOuUuid”: “5088568925399532181”,       “ouDirectory”: “ /瀚华金融”,       “rootNode”: true     }   ],   “displayName”: “dedee”,   “emails”: [     {       “primary”: “true”,       “type”: “work”,       “value”:“de@idsmanager.com”     }   ],   “extendField”: {     “attributes”: {       “workCode”: “123456”,       “sex”: “woman”},     “description”: “”,     “expireTime”: “”   },   “externalId”: “1684952915216035459”,   “id”: “1684952915216035459”,   “password”: “”,   “phoneNumbers”: [     {       “type”: “work”,       “value”: “”     }   ],   “userName”: “dedee”}

SP需要返回 Response Body示例:

{ “errorNumber”: 0, “errors”: [] }

参数说明:

字段名 错误码 备注
errorNumber 430 用户已经存在
errors,错误信息,String集合类型 400 参数异常

IDaaS给SP修改或移动账户

IDaaS通过API给业务系统修改一个账户。此接口可以与“SP推至IDaaS的修改或移动账户接口”共用一个实体类。

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

Content-Type: application/json

业务系统需要根据我们提供的字段标准来开发接口,如下所示:

参数说明:

参数名 参数值 备注
userName {userName} 云IDaaS平台主账户唯一
password {password} 账户密码
id {id} 修改后的外部id
displayName {displayName} 修改后的用户显示名称,唯一
emails {emails} 邮箱
phoneNumbers {phoneNumbers} 修改后的手机号, 只能一个且唯一
externalId {externalId} 修改后的外部ID,唯一
belongs {belongs} 为账户指定组织单位
extendField {extendField} 扩展字段,attributes为系统定义扩展字段

IDaaS推送的Request Body示例:

{   “belongs”: [     {       “belongOuUuid”: “5088568925399532181”,       “ouDirectory”: “ /瀚华金融”,       “rootNode”: true     }   ],   “displayName”: “dedee”,   “emails”: [     {       “primary”: “true”,       “type”: “work”,       “value”:“de@idsmanager.com”     }   ],   “extendField”: {     “attributes”: {       “workCode”: “123456”,       “sex”: “woman”},     “description”: “”,     “expireTime”: “”   },   “externalId”: “1684952915216035459”,   “id”: “1684952915216035459”,   “password”: “”,   “phoneNumbers”: [     {       “type”: “work”,       “value”: “”     }   ],   “userName”: “dedee”}

SP需要返回 Response Body示例:

 { “errorNumber”: 0, “errors”: [] } 

参数说明:

字段名 错误码 备注
errorNumber 0 代表成功
errors,错误信息,String集合类型 400 参数异常

IDaaS给SP删除账户

IDaaS通过API给业务系统删除一个账户。

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

Content-Type: application/json

业务系统需要根据我们提供的字段标准来开发接口,如下所示:

参数说明:

参数名 参数值 备注
id {id} IDaaS中本账户的外部ID,对应应用系统的唯一标识

IDaaS推送的Request Body示例:

/api/application/scim/account?id=4544581305390943066

SP需要返回 Response Body示例:

 { “errorNumber”: 0, “errors”: [] } 

参数说明:

字段名 错误码 备注
errorNumber 0 SP返回错误码0,即视为成功
errors,错误信息,String集合类型 400 参数异常

IDaaS给SP添加账户组

IDaaS通过API给业务系统添加一个账户组。此接口可以与“SP推至IDaaS的推送账户组接口”共用一个实体类。

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

Content-Type: application/json

业务系统需要根据我们提供的字段标准来开发接口,如下所示:

参数说明:

参数名 参数值 备注
id {id} 组的id
displayName {displayName} 组的名称
ouUuid {ouUuid} 所属父级组织机构的uuid或外部ID
display {displayName} 用户的显示名称,唯一
members {members} 组里的成员,value是成员的外部ID,唯一,display是用户名,成员可为空
belongs {belongs} 为账户组指定组织单位
extendField {extendField} 扩展字段,attributes为系统定义扩展字段

IDaaS推送的Request Body示例:

  ”id”:“”,  ”displayName”:“我的新建组”,  ”ouUuid”:“856585455256525655”,  ”belongs”:[    {      ”ouDirectory”:“九州/北京”,      ”belongOuUuid”:“db7ded581e854a8d9782795963122eb1jBu4QSp6hXn”,      ”rootNode”:false    }  ],  ”members”:[    {      ”value”:“163ac7bbd3bc4714affa5c518d53a348Q3BtQC0FAFn”,      ”display”:“abc@idsmanager.com”    }  ] ,  ”extendField”: {    ”description”: “”,    ”expireTime”: “2117-01-01”,    ”attributes”:{      ”ReportManagerID”:“123456”,      ”mana”:“woman”    }  }}

SP需要返回 Response Body示例:

 { “errorNumber”: 0, “errors”: [] } 

参数说明:

字段名 错误码 备注
errorNumber 0 SP返回错误码0,即视为成功
errors,错误信息,String集合类型 400 参数异常

IDaaS给SP删除账户组

IDaaS通过API给业务系统删除一个账户组。

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

Content-Type: application/json

业务系统需要根据我们提供的字段标准来开发接口,如下所示:

参数说明:

参数名 参数值 备注
id {id} IDaaS中本账户组的外部ID,对应应用系统的唯一标识。唯一
IDaaS推送的Request Body示例:
/api/application/scim/group?id=665a46c056bc4445b381d869797cd6dbpHqdqNLe787
SP需要返回 Response Body示例:
 { “errorNumber”: 0, “errors”: [] }

参数说明:

字段名 错误码 备注
errorNumber 0 SP返回错误码0,即视为成功
errors 400 参数异常

常见问题

Q:如果两个子系统中存在相同的账户名,同步到IDaaS平台如果处理,如果我本人在两个系统中的账户名不相同,同步到IDaaS又怎么处理

A:子业务系统同步到IDaaS中,会带一个唯一标识的参数,我们会根据唯一标识来判断是不是同一个账户,如果是则相互关联起来,如果不是则创建一个新的账户。唯一标识一般用邮箱或手机号。

Q:账户同步的两种方式是什么?有什么区别?

A:两种方式:

1)业务系统通过IDaaS提供的基于SCIM协议的接口将账户同步到IDaaS平台;

2)IDaaS平台通过SP提供的接口将在IDaaS中创建的接口同步到SP中;

区别:区别就是谁接收传过来的账户谁提供接口,接口需基于SCIM协议开发,在这里IDaaS已经给了SP需要开锁所用到的接口字段,详情请看上面提供的API接口。