身份认证SSO集成

vika维格云-单点登录与账号同步接口规范文档

1 、简要概述

该文档将阐述通过维格云OAuth认证协议,接入自身的IAS(身份认证系统),根据IAS系统定义的标准JSON数据格式接口规范与IAS系统做数据交互。该文档定义了机构、账号、权限、组等对象增、删、查、改的抽象方法,下游应用系统根据集成范围做对应的业务实现。

下文将以账号和组织机构对象做示例讲解,其它对象处理方式与账号一致,不再赘述。

2 、术语与缩写解释

缩写、术语

解释

IAS

身份管理系统,主要负责人员,应用系统账号数据管理

同步接口资源清单

参数

示例

环境变量

client_id

client_id 由IAS系统提供,配置变量

ONEACCESS_CLIENT_ID

client_secret

client_secret 由IAS系统提供

ONEACCESS_CLIENT_SECRET

测试帐号/密码

由IAS系统提供

IAS 地址

由IAS系统提供,

https://ias.example.com

ONEACCESS_IAM_HOST

维格云

单点登录地址

/api/v1/social/oneaccess/login

单点登录回调地址

/api/v1/social/oneaccess/oauth2/callback

/api/v1/social/oneaccess/oauth2/callback

帐号/组织同步信息

bimRemoteUser: spcxxxx (同步空间站spaceId)

bimRemotePwd:uskxxxxx (同步空间站主管理员 api-token )

配置后,组织架构和账号将同步推送到此spaceId的空间站,务必认真填写!

帐号/组织同步加密密钥

帐号和组织接口身份验证加密钥

vkz75k

ONEACCESS_ENCRYPT_KEY

应用地址

https://vk.example.com

跨空间站选择组织架构

CUSTOM_SYNC_CONTACTS_LINKID

web-server下的参数,值为分享表ID,例子:CUSTOM_SYNC_CONTACTS_LINKID: shraxxxxxxxx

在组织架构同步的指定主空间站,创建一张表 - 开启分享后 - 获得一个 分享ID shr开头

3 、通过OAuth认证协议实现单点登录

3.1 OAuth介绍

OAuth是一个关于授权的开放的网络协议,在第三方应用与服务提供商之间设置一个授权层。第三方应用不能直接登录服务提供商,只能登录授权层,以此将用户与客户端区分开来。第三方应用登录授权层所用的令牌,与用户的密码不同。用户可以在登录授权的时候,指定授权层令牌的权限范围和有效期。第三方应用登录授权层以后,服务提供商根据令牌的权限范围和有效期,向第三方应用开放用户资源。

3.2 OAuth认证流程

流程介绍:上图主要是第三方子系统和认证中心集成过程,第一步获取AuthonrizeCode对应接口规范里面的授权接口,显示登陆页面,用户输入用户名、密码,验证完身份之后,生成AuthonrizeCode,子系统根据AuthonrizeCode获取AccessToken对应接口规范里面的获取Token,子系统根据返回的AccessToken可以获取认证的用户信息对应接口规范里面的获取认证用户。

3.3 OAuth集成流程

集成分工

IAS平台

l 提供应用系统基本信息;

l 开发Oauth 认证接口 (见3.4.13.4.23.4.33.4.4)

l 联调测试

应用系统

l 提供应用系统基本信息;

l 提供单点登录接口 (3.4.53.4.6);

l 联调测试

3.4 OAuth接口规范

以下OAuth接口地址的{host}和{port}替换成下命的域名和端口

IAS示例地址(以自身单点登录系统为准,仅供参考):https://bim.example.com/idp

维格专有云示例地址(以实际专有云地址为准):https://vk.example.com

3.4.1 授权接口

接口说明:应用系统调用认证接口获取code(不能用postman测,可以在浏览器测)

接口名

authorize

URL Path

https://{host}:{port}/idp/oauth2/authorize

请求类型

GET

请求示例

https://{host}:{port}/idp/oauth2/authorize?redirect_uri=http://{host}:{port}/api/v1/social/oneaccess/oauth2/callback&state=xxxx&client_id=xxxxx&response_type=code

处理逻辑

判断参数验证client_id是否有效校验redirect_uri,BAM-CONSOLE中可填写多URL(以”;”分隔),判断参数中的URL是否以BAM-CONSOLE中填写的URL开头(此功能可选择是否启用)显示认证授权页面。验证身份后页面跳转至redirect_uri并附有参数授权码

返回值

参数正确登录成功时,会跳转到回调地址:
以上文中的回调地址为例,完成后会跳转至http://{host}:{port}/api/v1/social/oneaccess/oauth2/callback?code=ae1838f40638e218bc90a92df3091793&state=xxxxx,携带参数code和state。

异常说明

参数不完整及错误时:
client_id缺失时{ "errcode": "1001","msg": "缺少参数client_id"}
code缺失时:{ "errcode": "1009","msg": "缺少参数code"}
grant_type缺失时:{ "errcode": "1010","msg": "缺少参数grant_type}
client_secret缺失时:{ "errcode": "1008","msg": "缺少参数client_secret"}
client_id无效时:{ "errcode": "1005","msg": "参数client_id非法"}
code无效时:{ "errcode": "1014"msg": "参数code非法}

描述

此接口是浏览器redirect跳转方式调用。如果用户已完成过登录,访问此地址则会直接跳转到指定的回调地址,带上code。如果请求参数中传入了state,这里会带上原始的state值。如果用户未登录,访问此地址会跳转至登录页面,显示应用配置的认证方式,用户完成登录后跳转到指定的回调地址,带上code。如果请求参数中传入了state,这里会带上原始的state值。

参数名

中文说明

描述

client_id

应用标识

客户端应用注册ID(IAS身份认证平台提供)

redirect_uri

跳转地址

跳转地址(uri编码)

response_type

响应类型

code

state

任意值

用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。开发者可以用这个参数验证请求有效性,也可以记录用户请求授权页前的位置。这个参数可用于防止跨站请求伪造(CSRF)攻击

3.4.2 获取Token

接口名

getToken

URL Path

https://{host}:{port}/idp/oauth2/getToken

请求类型

POST

请求参数示例

https://{host}:{port}/idp/oauth2/getToken?client_id=xxxxxx&grant_type=authorization_code&code=xxxxxx&client_secret=xxxxxx

处理逻辑

验证参数有效性验证授权码有效性及范围根据以上判断、验证及认证结果返回JSON数据

异常说明

获取到token后用户禁用时"spRoleList":[],"spNameList":[]
这种情况统一认证都登陆不上,一般用于离职,无需特殊判断也可以;

该用户APP1账号禁用时{"spRoleList":[],"spNameList":["APP2"]}
这种情况登陆得了统一认证,但是应用的账号列表是空,应用应在页面上提示“应用账号不存在或已禁用”;

获取到token后APP1账号禁用时{"spRoleList":["linwc"],"spNameList":["APP2"]}
即账号列表不是实时更新,有权访问应用列表是实时更新

若spRoleList里的账户在应用的数据库中查询不到时,应用应在页面上提示“应用账号未同步,请联系应用管理员手工同步或夜间自动同步”
或“应用账号未同步,请等待夜间自动同步”等提示信息
或自动触发手工同步后登陆。

参数不完整及错误时:
client_id缺失时
{
"errcode": "1001",
"msg": "缺少参数client_id"
}
access_token缺失时:
{
"errcode": "2001"
"msg": "缺少参数access_token"
}
uid缺失时:
{
"errcode": "2006"
"msg": "缺少参数uid "
}
client_id无效时:
{
"errcode": "1005",
"msg": "参数client_id非法"
}
access _token无效时
{
"errcode": "2002"
"msg": "参数access _token不正确或过期"
}
uid无效时
{
"errcode": "3001"
"msg": "查询用户信息为空"
}

返回值

类型:JSON
正确返回时:
{
"access_token":"skiew234i3i4o6uy77b4k3b3v2j1vv53j",
"expires_in":"1500",
"refresh_token":"iewoer233422i34o2i34uio55iojhg6g",
"uid":"20190104143740849-DF0C-690E07E54"
}

描述

OAuth获取授权Token接口可以获得access_token、expires_in、refresh_token、uid。 access_token用于获取用户信息,expires_in是access_token有效时长,时长在console应用注册时配置。 refresh_token可在access_token到期后进行刷新续期,uid为用户id。

参数名

中文说明

描述

client_id

应用标识

客户端应用注册ID(IAS身份认证平台提供)

client_secret

密钥

客户端应用注册密钥(IAS身份认证平台提供)

code

授权码

调用authorize接口获得的授权码code

grant_type

认证方式

请求类型,默认authorization_code

3.4.3 刷新Token(可选)

接口名

refreshToken

URL Path

https://{host}:{port}/idp/oauth2/refreshToken

请求类型

POST

请求参数示例

https://{host}:{port}/idp/oauth2/refreshToken?client_id=xxxxxxx&grant_type=refresh_token&client_secret=xxxxxxx&refresh_token=xxxxxxxxxx

处理逻辑

验证参数有效性刷新续期业务逻辑操作根据以上判断、验证及认证结果返回JSON数据

返回值

类型:JSON正确返回时:{ "access_token": "07111c4e2d536759326f281a8f363937", "refresh_token": "e8e2bef0da609fd13b086415e77e3638", "uid": "20171123092851812-3272-F82D3EAC0", "expires_in": 43200}

​​

参数名

中文说明

描述

client_id

应用标识

客户端应用注册ID(IAS身份认证平台提供)

redirect_uri

跳转地址

跳转地址(uri编码)

response_type

响应类型

code

state

任意值

用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。开发者可以用这个参数验证请求有效性,也可以记录用户请求授权页前的位置。这个参数可用于防止跨站请求伪造(CSRF)攻击

3.4.4 获取认证用户

接口名

getUserInfo

URL Path

http://{host}:{port}/idp/oauth2/getUserInfo

请求类型

GET

请求示例

https://{host}:{port}/idp/oauth2/getUserInfo?access_token=46e4d79fc6384105e157465032c9684e&client_id=20170830061623854-E5A8-B2FABDC35

处理逻辑

验证参数有效性根据应用配置的属性权限列表,查询用户信息返回根据以上判断、验证及认证结果返回JSON数据

返回值

类型:JSON正确返回时:{"uid":"20190104143740849-DF0C-690E07E54","avatarUrl":"https://s1.vika.cn/space/2021/03/10/61a8aae11da2439ebb4df35b9075587d","spRoleList":[],"loginName":"user1","nickName":"user1的昵称/名字"}

描述

loginName对应登录的用户名spRoleList对应集成的应用系统账号(应用账号与用户名不一致或多账号时使用), uid 是与创建用户时的oneId 值一致

​​

参数名

中文说明

描述

access_token

授权码

临时token授权码,由IAM 系统重定向里返生

client_id

应用标识

客户端应用注册ID(IAS身份平台提供)

3.4.5 维格单点登录入口地址

接口名

login

URL Path

http://{host}:{port}/api/v1/social/oneaccess/login

请求类型

GET

请求示例

http://{host}:{port}/api/v1/social/oneaccess/login?reference=redirect_uri

处理逻辑

拼接 IAM 地址和ClientID, 并生成临时state 码
跳转到IAS认证系统

返回值

https://bim.example.com/idp/oauth2/authorize?redirect_uri=http://vk.example.com/api/v1/social/oneaccess/oauth2/callback&state=bPnCwSVi&client_id=xxxx&response_type=code

描述

302 重定向到IAS单点登录地址

​​

参数

参数名

中文说明

描述

reference

页面reference

reference地址,登录成功后重定向跳转

3.4.6 维格单点登录回调地址

接口名

login

URL Path

http://{host}:{port}/api/v1/socical
/oneaccess/oauth2/callback&state=xxxx&client_id=xxxxx&response_type=code&code=abc

请求类型

GET

请求示例

http://{host}:{port}/api/v1/socical/oneaccess/oauth2/callback&state=bPnCwSVi&client_id=xxx&response_type=code

处理逻辑

验证参数有效性
验证授权码有效性及范围
登录并跳转到应用默认页面

返回值

https://bim.example.com/idp/oauth2/authorize?redirect_uri=http://vk.example.com/api/v1/social/oneaccess/oauth2/callback&state=bPnCwSVi&client_id=xxxx&response_type=code&code=66666

描述

302 重定向到IAS单点登录地址

​​

参数名

中文说明

描述

state

任意值

用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。开发者可以用这个参数验证请求有效性,也可以记录用户请求授权页前的位置。这个参数可用于防止跨站请求伪造(CSRF)攻击

client_id

应用标识

客户端应用注册ID,由IAS提供

code

授权码

调用authorize接口获得的授权码code

response_type

响应类型

code

4 、账号与组织机构数据同步集成规范

集成分工

IAS平台

  • 注册应用、提供应用注册后的信息;

  • 开发对接人员组织管理接口;

  • 联调测试。

应用系统

  • 提供应用系统基本信息;

  • 提供人员组织管理接口,见数据供应接口;

  • 联调测试。

IAS平台与下游集成应用系统,数据交互分为”推送”

4.1 数据供应

IAS平台请求下游集成应用系统的API接口服务,请求调用接口定义的接口方法。

下游集成应用在UserCreateService、UserUpdateService、UserDeleteService方法体内实现对本应用系统账号数据的增、改、删操作。

下游集成应用在OrgCreateService、OrgUpdateService、OrgDeleteService方法体内实现对本应用系统组织机构数据的增、改、删操作。

接口名

描述

接口地址

账号管理接口

UserCreateService

账号创建

http://{host}:{port}/api/v1/social/oneaccess/UserCreateService

UserUpdateService

账号修改

http://{host}:{port}/api/v1/social/oneaccess/UserUpdateService

UserDeleteService

账号删除

http://{host}:{port}/api/v1/social/oneaccess/UserDeleteService

QueryUserByIdService

查询账号的详细信息

http://{host}:{port}/api/v1/social/oneaccess/QueryUserByIdService

组织机构管理

OrgCreateService

组织机构创建

http://{host}:{port}/api/v1/social/oneaccess/OrgCreateService

OrgUpdateService

组织机构修改

http://{host}:{port}/api/v1/social/oneaccess/OrgUpdateService

OrgDeleteService

组织机构删除

http://{host}:{port}/api/v1/social/oneaccess/OrgDeleteService

QueryOrgByIdService

查询组织机构的详细信息

http://{host}:{port}/api/v1/social/oneaccess/QueryOrgByIdService

​​

4.2 接口列表

Ø 接口接收请求方式为http post方式。

Ø 接口地址后端的方法名需要按照上面表格定义实现。

Ø 对于在与身份认证系统集成前,已经有账号并希望纳入身份管理的应用系统,必须要实现接口4.4.1,4.4.2,4.4.3和4.4.4接口。

Ø 对于有组织机构管理和同步需求的应用系统,需要实现4.5.1,4.5.2,4.5.3和4.5.4的接口。

4.3 身份验证

在调用接口时,为了防止非法调用,需要在每次请求中添加授权信息(如账号名、密码)。第三方应用服务端为IAS系统分配接口调用的授权账号和密码。

IAS每次调用接口时,提供授权账号和密码,报文字段详见接口实现指导。

第三方应用服务端收到请求,校验授权账号和密码,校验通过则执行请求,校验不通过则返回错误提示。

4.3.1 数据示例

请求示例如下:选择raw和text(如下图所示)

4.3.2 数据同步输入使用AES加密

通过数据同步接口与下游集成系统数据交互时,需对所有数据进行加解密处理,使用AES加密算法。

示例代码:

restful-server-demo.zip

4.4 接口功能列表

4.4.1 SchemaService接口

SchemaService的功能是获取第三方目标系统中“账号”等对象全部属性信息,包括属性名称、类型、是否必填字段、是否多值。

1)请求示例

{
  "bimRequestId": "9e928d12ec8a4c1bb75283b8df71308d",
  "bimRemotePwd": "password",
  "bimRemoteUser": "spcxxxxx"
}

2) 报文字段说明:

Ø bimRequestId :IAS每次调用生成的随机ID,应用系统每次响应返回此ID,String类型。

Ø bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写,String类型。

Ø bimRemotePwd :IAS调用三方应用接口的密码,由应用分配给IAS系统,String类型。

3)响应报文示例 ,organization 和 account返回字段类型固定

{
    "bimRequestId":"07423ca93c544a6c9073150d49578267",
    "organization":[
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"orgId"
        },
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"orgName"
        },
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"parentOrgId"
        } ,
        {
            "multivalued":false,
            "type":"string",
            "required": false,
            "name":"orgCode"
        }
    ],
    "account":[
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"oneId"
        },
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"mobile"
        },
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"email"
        },
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"loginName"
        },
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"fullName"
        },
        {
            "multivalued":false,
            "type":"string",
            "required":true,
            "name":"orgId"
        }
    ]
}

4) 响应报文字段说明:

Ø bimRequestId :IAS每次调用接口发送的请求ID,字段为String类型。

Ø account/organization :此接口定义的对象类型,可选值为account(账号)、organization(组织机构)、group(用户组),如果只做账号管理,organization等其它对象可以不用定义。字段为数组类型。

Ø name :定义对象的属性字段名称。字段为String类型。

Ø type :定义对象的属性字段类型,可选值为String、int、double、float、long、byte、boolean。字段为String类型(建议默认为String)。

Ø required : 定义对象的属性字段在创建时是否为必填字段。可选值true或者false。字段为boolean类型。

Ø multivalued :定义对象的属性字段是否为多值。可选值true或者false。字段为boolean类型。

4.4.2 UserCreateService接口

UserCreateService接口是应用系统的账号创建方法

1) 报文示例:

{
    "bimRequestId": "11928d12ec8a4c1bb75283b8df71308d",
    "bimRemoteUser": "spcxxxxx",
    "bimRemotePwd": "password",
    "loginName": "zhangsan",
    "orgId": "0000011",   (可选,无部门时留空)
    "fullName": "张三",
    "oneId": "0e1b6fcc-76ff-4972-b299-6b9e14495fde"(唯一主键,下游必存字段)
}

2) 报文字段说明:

Ø bimRequestId/bimRemotePwd/bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写该字段,说明见SchemaService。

Ø loginName:三方应用系统账号字段属性,唯一ID。

Ø fullName :三方应用系统SchemaService接口中定义的账号字段属性。

Ø orgId: 创建Org 时, 维格则返回的 orgId

Ø oneId :此id为用户自然人ID。此ID来自IAS系统。字段为String类型,必传字段。

3) 报文示例:

成功:

{
    "bimRequestId": "11928d12ec8a4c1bb75283b8df71308d",
    "uid": "89746776",(交互主键id,参数名不能变)
    "resultCode": "0",
    "message": "success"
}

失败:

{
    "bimRequestId": "11928d12ec8a4c1bb75283b8df71308d",
    "resultCode": "500",
    "message": "字段不全,账号创建失败"
}

4) 报文字段说明:响应报文字段名需按文档定义,不允许自定义

Ø uid :应用系统账号创建后,形成的全局唯一ID,此ID不能被修改,建议为数据库表主键。此ID返回至IAS系统,此后账号的修改和删除都以此ID为主键。字段为String类型,必传字段。

Ø resultCode :接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。

Ø message :接口调用处理的信息。字段为String类型。

Ø bimRequestId :IAS每次调用接口发送的请求ID,字段为String类型,必传字段。

4.4.3 UserUpdateService接口

UserUpdateService接口是应用系统的账号修改方法,如果有数据更新会对增量数据进行更新(请求报文只传修改的字段和交互主键id,不用传所有字段)。

1) 请求报文示例:

{
    "bimRequestId": "22928d12ec8a4c1bb75283b8df71308d",
    "bimRemoteUser": "spcxxxxx",
    "bimRemotePwd": "password",
    "bimUid": "89746776",(交互主键id,参数名不能变)
    "loginName": "lisi",
    "fullName": "李四",
    "orgId":"0000011",    (可选,无部门时留空)
    "oneId": "0e1b6fcc-76ff-4972-b299-6b9e14495fde"
}

2) 报文字段说明:

Ø bimRequestId/bimRemotePwd/bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写该字段,说明见SchemaService。

Ø bimUid: 三方应用系统账号创建时,返回给IAS应用系统的账号主键uid。必传字段。

Ø loginName/ fullName :需要修改的账号字段属性。

Ø oneId :需要修改的账号自然人ID。

3) 响应报文示例:

{
    "bimRequestId": "22928d12ec8a4c1bb75283b8df71308d",
    "resultCode": "0",
    "message": "success"
}

4) 报文字段说明:响应报文字段名需按文档定义,不允许自定义

Ø resultCode :接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。

Ø message :接口调用处理的信息。字段为String类型。

Ø bimRequestId :IAS每次调用接口发送的请求ID,字段为String类型,必传字段。

4.4.4 UserDeleteService接口

UserDeleteService接口是应用系统的账号删除方法。

1) 请求报文示例:

{
    "bimRequestId": "33928d12ec8a4c1bb75283b8df71308d",
    "bimRemoteUser": "spcxxxxx",
    "bimRemotePwd": "password",
    "bimUid": "89746776"(交互主键id,参数名不能变)
}

2) 请求报文字段说明:

Ø bimRequestId/bimRemotePwd/bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写该字段,说明见SchemaService。

Ø bimUid: 三方应用系统账号创建时,返回给IAS应用系统的账号主键uid。必传字段。

3) 响应报文示例:

{
    "bimRequestId": "33928d12ec8a4c1bb75283b8df71308d",
    "resultCode": "0",
    "message": "success"
}

4) 响应报文字段说明:响应报文字段名需按文档定义,不允许自定义

Ø resultCode :接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。

Ø message :接口调用处理的信息。字段为String类型。

Ø bimRequestId :IAS每次调用接口发送的请求ID,字段为String类型,必传字段。

4.4.5 OrgCreateService接口

OrgCreateService接口是应用系统的组织机构创建方法。字段可以根据参考示例增减

1) 请求报文示例:

{
        "bimRequestId": "11928d12ec8a4c1bb75283b8df71308d",
        "bimRemoteUser": "spcxxxxx",
        "bimRemotePwd": "password",
        "orgName": "集团信息中心",
        "orgId": "ORG0001",(唯一主键,下游必存字段)
        "parentOrgId": "000001".
}

2) 请求报文字段说明:

Ø bimRequestId/bimRemotePwd/bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写该字段,说明见SchemaService。

Ø OrgId/orgName / parentOrgId:三方应用系统SchemaService接口中定义的组织机构字段属性。parentOrgId上级组织id一般必传,是组织机构树建立的依据。

3) 响应报文示例:

成功:

{
        "bimRequestId": "11928d12ec8a4c1bb75283b8df71308d",
        "uid": "0000011",(交互主键id,参数名不能变)
        "resultCode": "0",
        "message": "success"
}

失败:

{
        "bimRequestId": "11928d12ec8a4c1bb75283b8df71308d",
        "resultCode": "500",
        "message": "字段不全,组织机构创建失败"
}

4) 响应报文字段说明:响应报文字段名需按文档定义,不允许自定义

Ø uid:应用系统组织机构创建后,形成的全局唯一ID,此ID不能被修改,建议为数据库表主键。此ID返回至BIM系统,此后组织机构的修改和删除都以此ID为主键。字段为String类型,必传字段。

Ø resultCode :接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。

Ø message :接口调用处理的信息。字段为String类型。

Ø bimRequestId :IAS每次调用接口发送的请求ID,字段为String类型,必传字段。

4.4.6 OrgUpdateService 接口

OrgUpdateService接口是应用系统的组织机构修改方法,如果有数据更新会对增量数据进行更新(请求报文只传修改的字段和交互主键id,不会传所有字段)。

1) 请求报文示例:

{
        "bimRequestId": "22928d12ec8a4c1bb75283b8df71308d",
        "bimRemoteUser": "spcxxxxx",
        "bimRemotePwd": "password",
        "bimOrgId": "0000011",(交互主键id,参数名不能变)
        "orgName": "集团信息中心-改",
        "parentOrgId": "000002", (IAS侧父节点Id)
}

2) 请求报文字段说明:

Ø bimRequestId/bimRemotePwd/bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写该字段,说明见SchemaService。

Ø bimOrgId : 三方应用系统组织机构创建时,返回给IAS应用系统的组织机构主键orgId。必传字段。

Ø orgName / parentOrgId:需要修改的组织机构字段属性。

3) 响应报文示例:

{
        "bimRequestId": "22928d12ec8a4c1bb75283b8df71308d",
        "resultCode": "0",
        "message": "success"
}

4) 响应报文字段说明:响应报文字段名需按文档定义,不允许自定义

Ø resultCode :接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。

Ø message :接口调用处理的信息。字段为String类型。

Ø bimRequestId : IAS每次调用接口发送的请求ID,字段为String类型,必传字段。

4.4.7 OrgDeleteService 接口

OrgDeleteService接口是应用系统的组织机构删除方法。

1) 请求报文示例:

{
    "bimRequestId": "33928d12ec8a4c1bb75283b8df71308d",
    "bimRemoteUser": "spcxxxxx",
    "bimRemotePwd": "password",
    "bimOrgId": "000011"(交互主键id,参数名不能变)
}

2) 请求报文字段说明:

Ø bimRequestId/bimRemotePwd/bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写该字段,说明见SchemaService。

Ø bimOrgId: 三方应用系统组织机构创建时,IAS应用系统的返回主键orgID。必传字段。

3) 响应报文示例:

{
        "bimRequestId": "22928d12ec8a4c1bb75283b8df71308d",
        "resultCode": "0",
        "message": "success"
}

4) 响应报文字段说明:响应报文字段名需按文档定义,不允许自定义

Ø resultCode :接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。

Ø message :接口调用处理的信息。字段为String类型。

Ø bimRequestId : IAS每次调用接口发送的请求ID,字段为String类型,必传字段。

4.4.8 QueryUserByIdService 接口

根据4.4.2接口查询返回的账号ID,查询账号的详细信息。

1) 请求报文示例:

{
        "bimRequestId": "11928d12ec8a4c1bb75283b8df71308d",
        "bimRemoteUser": "spcxxxxx",
        "bimRemotePwd": "password",
        "bimUid": "89746776", //(交互主键id,必传,找不到值时可传0)
        "oneId": "0e1b6fcc-76ff-4972-b299-6b9e14495fde" //(选填,uid和 oneId 都传时,优先使用oneId)
}

2) 报文字段说明

Ø bimRequestId/bimRemotePwd/bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写该字段,说明见SchemaService。

Ø bimUid: 4.4.5接口查询返回的账号ID。必传字段。

3) 响应报文示例

{
        "account": {
                "orgId": "0000011",
                "loginName": "zhangsan",
                "fullName": "zhangsanFull",
                "uid": "D00001"
        },
        "resultCode": "0",
        "message": "success",
        "bimRequestId": "55528d12ec8a4c1bb75283b8df71308d "
}

4) 报文字段说明:响应报文字段名需按文档定义,不允许自定义

Ø account :应用返回的账号json对象。必传字段。

Ø orgId/loginName/fullName : 三方应用系统SchemaService接口中定义的账号字段属性。

Ø resultCode :接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。

Ø message :接口调用处理的信息。字段为String类型。

Ø bimRequestId :BIM每次调用接口发送的请求ID,字段为String类型,必传字段。

4.4.9 QueryOrgByIdService 接口

根据4.4.5接口查询返回的组织机构ID,查询组织机构的详细信息。

1) 请求报文示例:

{
        "bimRequestId": "11928d12ec8a4c1bb75283b8df71308d",
         "bimRemoteUser": "spcxxxxx",
        "bimRemotePwd": "password",
        "bimOrgId": "0000011", //(交互主键id,参数名不能变)
        "openOrgId": "ORG0001", //(选填,bimOrgId和 openOrgId 都传时,优先使用openOrgId)
}

2) 报文字段说明

Ø bimRequestId/bimRemotePwd/bimRemoteUser :组织架构和账号将同步推送到此spaceId的空间站,务必认真填写该字段,说明见SchemaService。

Ø bimUid: 4.4.5 接口查询返回的组织机构ID。必传字段。

3) 响应报文示例

{
        "account": {
                "orgId": "0000011",
                "loginName": "zhangsan",
                "fullName": "zhangsanFull",
                "uid": "D00001"
        },
        "resultCode": "0",
        "message": "success",
        "bimRequestId": "55528d12ec8a4c1bb75283b8df71308d "
}

4) 报文字段说明:响应报文字段名需按文档定义,不允许自定义

Ø organization:应用返回的账号json对象。必传字段。

Ø orgName / parOrgId / orgId: 三方应用系统SchemaService接口中定义的组织机构字段属性。

Ø resultCode :接口调用处理的结果码,0为正常处理,其它值由应用系统定义。字段为String类型,必传字段。

Ø message :接口调用处理的信息。字段为String类型。

5、返回码

描述

200

执行成功

335

无法获取用户信息

301

帐号创建失败

512

无权限删除帐号

1120

应用未开启组织同步功能

1113

无权限,只有空间站主管理才有权限

1115

getUserInfo 接口获取用户信息失败