|
@@ -0,0 +1,1099 @@
|
|
|
+
|
|
|
+
|
|
|
+ 金地(集团)股份有限公司
|
|
|
+ 统一身份云平台项目
|
|
|
+
|
|
|
+ 认证与同步接口文档
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ V1.4
|
|
|
+修订记录
|
|
|
+版本号
|
|
|
+产品版本号
|
|
|
+修改人
|
|
|
+修改日期
|
|
|
+审核人
|
|
|
+修改点
|
|
|
+V1.0
|
|
|
+
|
|
|
+李荣新
|
|
|
+2021-04-02
|
|
|
+
|
|
|
+创建文档
|
|
|
+V1.1
|
|
|
+
|
|
|
+李荣新
|
|
|
+2021-04-21
|
|
|
+
|
|
|
+1.修改移动端应用集成方案
|
|
|
+2.推送数据同步方案增加接口说明
|
|
|
+V1.3
|
|
|
+
|
|
|
+李荣新
|
|
|
+2021-05-26
|
|
|
+
|
|
|
+1.补充请求授权地址的使用说明
|
|
|
+2.补充oauth的获取用户信息接口的返回信息说明
|
|
|
+V1.4
|
|
|
+
|
|
|
+李荣新
|
|
|
+2021-06-07
|
|
|
+
|
|
|
+1.4.1.3.5改为下拉接口对象属性说明
|
|
|
+
|
|
|
+
|
|
|
+ 目 录
|
|
|
+1 引言 3
|
|
|
+1.1. 编写目的 3
|
|
|
+1.2. 读者对象 3
|
|
|
+1.3. 术语定义 3
|
|
|
+2 接口调用说明 3
|
|
|
+2.1. 认证服务接口地址 3
|
|
|
+2.2. 数据服务接口地址 3
|
|
|
+2.3. 移动端接口地址 4
|
|
|
+3 认证接口说明 4
|
|
|
+3.1. Oauth认证接口 4
|
|
|
+3.1.1. 认证流程 4
|
|
|
+3.1.2. 接口介绍 5
|
|
|
+3.1.3. OAuth错误码参考 12
|
|
|
+3.2. Restful认证接口 12
|
|
|
+3.2.1. 应用认证流程 13
|
|
|
+3.2.2. REST认证接口 14
|
|
|
+3.2.3. 接口调用注意事项 22
|
|
|
+4 属性说明 75
|
|
|
+4.1. 用户属性说明 75
|
|
|
+4.2. 组织机构属性说明 76
|
|
|
+引言
|
|
|
+编写目的
|
|
|
+本文档编写目的在于明确统一身份云平台接口API文档说明,以供参考。
|
|
|
+读者对象
|
|
|
+软件开发人员、项目实施人员、系统测试人员和项目管理人员。
|
|
|
+术语定义
|
|
|
+ 名 称
|
|
|
+ 定 义
|
|
|
+用户
|
|
|
+用户即在统一身份云平台中的用户身份标识。
|
|
|
+账号
|
|
|
+账号即在各个应用系统中的用户身份标识。
|
|
|
+组织架构
|
|
|
+用户的基本属性之一,标识用户的隶属关系。
|
|
|
+
|
|
|
+接口调用说明
|
|
|
+调用接口所需信息:
|
|
|
+(注:每个业务系统passid和token信息都不同,由统一身份云平台设置)
|
|
|
+应用标识PaasId:
|
|
|
+应用密钥/Token:
|
|
|
+认证服务接口地址
|
|
|
+测试环境地址:https://iamtest.gemdale.com:18010
|
|
|
+生产环境地址:https://iam.gemdale.com:18010
|
|
|
+认证服务参数说明:
|
|
|
+(注:每个业务系统以下参数信息都不同,找统一身份云平台单独提供)
|
|
|
+client_id:
|
|
|
+client_secret:
|
|
|
+username:
|
|
|
+password:
|
|
|
+
|
|
|
+数据服务接口地址
|
|
|
+https:// (上下文详见接口说明)
|
|
|
+数据服务参数说明:
|
|
|
+(注:每个业务系统以下参数信息都不同,找统一身份云平台单独提供)
|
|
|
+systemCode:
|
|
|
+integrationKey:
|
|
|
+
|
|
|
+认证接口说明
|
|
|
+Oauth认证接口
|
|
|
+
|
|
|
+认证流程
|
|
|
+
|
|
|
+接口介绍
|
|
|
+请求授权地址(认证登录页)
|
|
|
+应用系统检测自身会话是否登录。如果未登录,则跳转访问该请求授权地址。
|
|
|
+ 如果统一身份云平台会话不存在,访问此地址会跳转至认证登录页面,显示应用配置的认证方式,用户完成登录后跳转到指定的回调地址,带上code。如果请求参数中传入了state,这里会带上原始的state值。
|
|
|
+ 如果统一身份云平台会话已存在,访问此地址则会直接跳转到指定的回调地址,带上code。如果请求参数中传入了state,这里会带上原始的state值。
|
|
|
+
|
|
|
+接口名
|
|
|
+authorize
|
|
|
+URL Path
|
|
|
+认证服务接口地址/idp/oauth2/authorize
|
|
|
+请求类型
|
|
|
+GET
|
|
|
+请求示例
|
|
|
+认证服务接口地址/idp/oauth2/authorize?
|
|
|
+redirect_uri=https://www.baidu.com&state=xxxx&client_id=xxxxx&response_type=code
|
|
|
+参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+描述
|
|
|
+
|
|
|
+client_id
|
|
|
+应用标识
|
|
|
+应用标识ID ,由统一身份云平台提供
|
|
|
+
|
|
|
+redirect_uri
|
|
|
+跳转地址
|
|
|
+认证成功后的跳转地址(url编码)
|
|
|
+
|
|
|
+response_type
|
|
|
+响应类型
|
|
|
+code(固定值)
|
|
|
+
|
|
|
+state
|
|
|
+任意值
|
|
|
+用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。开发者可以用这个参数验证请求有效性,也可以记录用户请求授权页前的位置。这个参数可用于防止跨站请求伪造(CSRF)攻击
|
|
|
+处理逻辑
|
|
|
+ 判断参数
|
|
|
+ 验证client_id是否有效
|
|
|
+ 校验redirect_uri,BAM-CONSOLE中可填写多URL(以";"分隔),判断参数中的URL是否以BAM-CONSOLE中填写的URL开头(此功能可选择是否启用)
|
|
|
+ 显示认证授权页面。
|
|
|
+ 验证身份后页面跳转至redirect_uri并附有参数授权码
|
|
|
+
|
|
|
+返回值
|
|
|
+类型:String。
|
|
|
+以上文中的回调地址为百度为例,授权完成后会跳转至https://www.baidu.com/?code=ae1838f40638e218bc90a92df3091793&state=123456。携带参数code和state。
|
|
|
+参数不完整及错误时:会在idp错误页面进行显示。
|
|
|
+client_id缺失时:Invalid_request, Missing parameters: client_id
|
|
|
+redirect_uri缺失时:Invalid_request, Missing parameters: redirect_uri
|
|
|
+grant_type缺失时:Invalid_request, Missing parameters:response_type
|
|
|
+client_id无效时:Unauthorized_client, Client id not accept
|
|
|
+redirect_uri无效时:Unauthorized_redirect_uri,Redirect_uri not accept
|
|
|
+grant_type无效时:Unsupported_response_type,Response_type id not accept
|
|
|
+描述
|
|
|
+
|
|
|
+
|
|
|
+认证成功后示例:
|
|
|
+
|
|
|
+
|
|
|
+获取授权接口
|
|
|
+接口名
|
|
|
+getToken
|
|
|
+URL Path
|
|
|
+认证服务接口地址/idp/oauth2/getToken
|
|
|
+请求类型
|
|
|
+POST
|
|
|
+请求参数示例
|
|
|
+认证服务接口地址/idp/oauth2/getToken?client_id=xxxxxx&
|
|
|
+grant_type=authorization_code&code=xxxxxx&client_secret=xxxxxx
|
|
|
+参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+描述
|
|
|
+
|
|
|
+client_id
|
|
|
+应用标识
|
|
|
+客户端应用注册ID
|
|
|
+
|
|
|
+client_secret
|
|
|
+密钥
|
|
|
+客户端应用注册密钥
|
|
|
+
|
|
|
+code
|
|
|
+授权码
|
|
|
+调用authorize接口获得的授权码code
|
|
|
+
|
|
|
+grant_type
|
|
|
+认证方式
|
|
|
+请求类型,默认authorization_code
|
|
|
+处理逻辑
|
|
|
+ 验证参数有效性
|
|
|
+ 验证授权码有效性及范围
|
|
|
+ 根据以上判断、验证及认证结果返回JSON数据
|
|
|
+返回值
|
|
|
+类型:JSON
|
|
|
+正确返回时:
|
|
|
+{
|
|
|
+ "access_token":"skiew234i3i4o6uy77b4k3b3v2j1vv53j"
|
|
|
+ "expires_in":"1500",
|
|
|
+ "refresh_token":"iewoer233422i34o2i34uio55iojhg6g"
|
|
|
+ "uid":"admin"
|
|
|
+}
|
|
|
+
|
|
|
+参数不完整及错误时:
|
|
|
+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非法
|
|
|
+}
|
|
|
+{
|
|
|
+ "errcode": "1012",
|
|
|
+ "msg": "参数client_secret非法"
|
|
|
+}
|
|
|
+描述
|
|
|
+OAuth获取授权Token接口可以获得access_token、expires_in、refresh_token、uid。access_token用于获取用户信息,expires_in是access_token有效时长,时长在console应用注册时配置。refresh_token可在access_token到期后进行刷新续期,uid为登录用户uid.
|
|
|
+接口调用工具示例
|
|
|
+
|
|
|
+
|
|
|
+刷新授权接口(可选)
|
|
|
+接口名
|
|
|
+refreshToken
|
|
|
+URL Path
|
|
|
+认证服务接口地址/idp/oauth2/refreshToken
|
|
|
+请求类型
|
|
|
+POST
|
|
|
+支持格式
|
|
|
+JSON
|
|
|
+请求示例
|
|
|
+认证服务接口地址/idp/oauth2/refreshToken
|
|
|
+
|
|
|
+Params:
|
|
|
+ client_id:oauth2,
|
|
|
+ client_secret:75f7434d652f4da2a2ee6d32b217d04d,
|
|
|
+ refresh_token:3d2feea0ca9d1d9aa956523f7b35ff27,
|
|
|
+ grant_type:refresh_token
|
|
|
+参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+描述
|
|
|
+
|
|
|
+client_id
|
|
|
+应用标识
|
|
|
+客户端应用注册ID
|
|
|
+
|
|
|
+client_secret
|
|
|
+密钥
|
|
|
+客户端应用注册密钥
|
|
|
+
|
|
|
+refresh_token
|
|
|
+
|
|
|
+刷新token授权码
|
|
|
+
|
|
|
+grant_type
|
|
|
+认证方式
|
|
|
+请求类型,默认refresh_token
|
|
|
+处理逻辑
|
|
|
+ 判断参数
|
|
|
+ 验证参数有效性
|
|
|
+ 根据以上判断、验证及认证结果返回JSON数据
|
|
|
+返回值
|
|
|
+类型:String,即:以JSON格式返回角色数据集
|
|
|
+参数不完整及错误时:
|
|
|
+client_id缺失时
|
|
|
+ {
|
|
|
+ "errcode": "1001",
|
|
|
+ "msg": "缺少参数client_id"
|
|
|
+ }
|
|
|
+refresh_token缺失时:
|
|
|
+ {
|
|
|
+ "errcode": "1024"
|
|
|
+ "msg": "缺少参数refresh_token,值不能为空"
|
|
|
+ }
|
|
|
+grant_type缺失时:
|
|
|
+ {
|
|
|
+ "errcode": "1010",
|
|
|
+ "msg": "缺少参数grant_type "
|
|
|
+ }
|
|
|
+client_secret缺失时:
|
|
|
+ {
|
|
|
+ "errcode": "1008",
|
|
|
+ "msg": "缺少参数client_secret"
|
|
|
+ }
|
|
|
+client_id无效时:
|
|
|
+ {
|
|
|
+ "errcode": "1005",
|
|
|
+ "msg": "参数client_id非法"
|
|
|
+}
|
|
|
+refresh_token无效时
|
|
|
+ {
|
|
|
+ "errcode": "1025"
|
|
|
+ "msg": "参数refresh_token不正确或过期"
|
|
|
+}
|
|
|
+grant_type无效时:
|
|
|
+ {
|
|
|
+ "errcode": "1013",
|
|
|
+ "msg": "参数grant_type非法"
|
|
|
+}
|
|
|
+正确返回时:
|
|
|
+{
|
|
|
+ "access_token":"skiew234i3i4o6uy77b4k3b3v2j1vv53j"
|
|
|
+ "expires_in":"1500",
|
|
|
+ "refresh_token":"iewoer233422i34o2i34uio55iojhg6g"
|
|
|
+}
|
|
|
+
|
|
|
+返回参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+描述
|
|
|
+
|
|
|
+errcode
|
|
|
+错误代码
|
|
|
+
|
|
|
+
|
|
|
+msg
|
|
|
+提示信息
|
|
|
+
|
|
|
+
|
|
|
+access_token
|
|
|
+获取的授权码token值
|
|
|
+
|
|
|
+
|
|
|
+refresh_token
|
|
|
+刷新授权码token
|
|
|
+根据刷新token可以生成新的token
|
|
|
+
|
|
|
+expires_in
|
|
|
+授权码有效时间(秒)
|
|
|
+
|
|
|
+描述
|
|
|
+根据刷新token生成新的token;若token有效期为3分钟,可以3分钟刷新,保证token有效性
|
|
|
+接口调用工具示例
|
|
|
+
|
|
|
+获取用户信息接口
|
|
|
+接口名
|
|
|
+getUserInfo
|
|
|
+URL Path
|
|
|
+认证服务接口地址/idp/oauth2/getUserInfo
|
|
|
+请求类型
|
|
|
+GET
|
|
|
+请求示例
|
|
|
+认证服务接口地址/idp/oauth2/getUserInfo?access_token=46e4d79fc6384105e157465032c9684e&client_id=20170830061623854-E5A8-B2FABDC35
|
|
|
+请求参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+描述
|
|
|
+
|
|
|
+client_id
|
|
|
+应用标识
|
|
|
+String
|
|
|
+
|
|
|
+access_token
|
|
|
+授权码token值
|
|
|
+String,认证接口中返回的授权码
|
|
|
+处理逻辑
|
|
|
+ 判断参数
|
|
|
+ 验证参数有效性
|
|
|
+ 根据以上判断、验证及认证结果返回JSON数据
|
|
|
+返回值
|
|
|
+类型:String,即:以JSON格式返回角色数据集
|
|
|
+参数不完整及错误时:
|
|
|
+client_id缺失时
|
|
|
+{
|
|
|
+ "errcode": "1001",
|
|
|
+ "msg": "缺少参数client_id"
|
|
|
+}
|
|
|
+access_token缺失时:
|
|
|
+{
|
|
|
+ "errcode": "2001"
|
|
|
+ "msg": "缺少参数access_token "
|
|
|
+}
|
|
|
+client_id无效时:
|
|
|
+{
|
|
|
+ "errcode": "1005",
|
|
|
+ "msg": "参数client_id非法"
|
|
|
+}
|
|
|
+access _token无效时
|
|
|
+{
|
|
|
+ "errcode": "2002"
|
|
|
+ "msg": "参数access _token不正确或过期"
|
|
|
+}
|
|
|
+
|
|
|
+正确返回时:
|
|
|
+{
|
|
|
+ "spRoleList":["ceshi00002"],
|
|
|
+"displayName":"ceshi00002"
|
|
|
+ }
|
|
|
+
|
|
|
+返回参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+描述
|
|
|
+
|
|
|
+errcode
|
|
|
+错误代码
|
|
|
+
|
|
|
+
|
|
|
+msg
|
|
|
+提示信息
|
|
|
+
|
|
|
+
|
|
|
+spRoleList
|
|
|
+账号名
|
|
|
+
|
|
|
+
|
|
|
+displayName
|
|
|
+姓名
|
|
|
+
|
|
|
+描述
|
|
|
+获取用户信息接口
|
|
|
+接口调用工具示例
|
|
|
+
|
|
|
+认证注销地址
|
|
|
+接口名
|
|
|
+GLO
|
|
|
+URL Path
|
|
|
+认证服务接口地址/idp/profile/OAUTH2/Redirect/GLO
|
|
|
+请求类型
|
|
|
+GET
|
|
|
+参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+描述
|
|
|
+
|
|
|
+redirctToUrl
|
|
|
+回调url
|
|
|
+应用的登录地址
|
|
|
+注:url必须为一个完整有效的地址
|
|
|
+
|
|
|
+redirectToLogin
|
|
|
+true
|
|
|
+是否直接跳转至应用redirctToUrl,true为跳转至redirctToUrl,false为停留在idp退出展示页面
|
|
|
+
|
|
|
+entityId
|
|
|
+应用ID
|
|
|
+
|
|
|
+处理逻辑
|
|
|
+ 注销用户会话
|
|
|
+ 会话注销后调整至redirctToUrl参数的地址
|
|
|
+返回值
|
|
|
+参数不完整及错误时:
|
|
|
+url缺失时
|
|
|
+ {
|
|
|
+ "errcode": "3002",
|
|
|
+ "msg": "缺少参数url"
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+OAuth错误码参考
|
|
|
+ 序号
|
|
|
+ 错误代码
|
|
|
+错误说明
|
|
|
+ 1
|
|
|
+ 1001
|
|
|
+缺少参数client_id
|
|
|
+ 2
|
|
|
+ 1009
|
|
|
+缺少参数code
|
|
|
+ 3
|
|
|
+ 1010
|
|
|
+缺少参数grant_type
|
|
|
+ 4
|
|
|
+ 1008
|
|
|
+缺少参数client_secret
|
|
|
+ 5
|
|
|
+ 1005
|
|
|
+参数code非法
|
|
|
+ 6
|
|
|
+ 1024
|
|
|
+refresh_token值不能为空
|
|
|
+ 7
|
|
|
+ 1025
|
|
|
+参数refresh_token不正确或者过期
|
|
|
+ 8
|
|
|
+ 2001
|
|
|
+缺少参数access_token
|
|
|
+ 9
|
|
|
+ 2002
|
|
|
+参数access_token不正确或者过期
|
|
|
+
|
|
|
+
|
|
|
+Restful认证接口
|
|
|
+ 统一认证服务的REST提供了认证接口、验证Token有效性接口和获取用户信息接口;同时为了实现SSO,提供了2个认证辅助接口,用于认证中心的票据获取和设置。应用可以根据这5个接口,编写应用的访问控制逻辑,实现SSO和访问控制。
|
|
|
+
|
|
|
+
|
|
|
+应用认证流程
|
|
|
+用户在应用系统登录界面输入账号、密码后,应用系统调用认证中心 REST认证接口对用户凭证进行验证,验证成功后,应用系统调用认证中心URL地址写单点登录票据,同时进入应用系统。
|
|
|
+ 用户登录应用系统认证流程如下:
|
|
|
+
|
|
|
+ REST接口应用认证逻辑
|
|
|
+ 用户在应用登录界面输入登录凭证
|
|
|
+ 应用系统调用【认证接口】验证用户凭证,并获取用户认证(单点)票据。若验证失败,则显示应用登录界面,并展现友好提示信息;
|
|
|
+ 若用户凭证验证成功,则调用【设置票据接口】设置IDP票据;
|
|
|
+如果验证单点登录票据成功,则调用【获取用户信息接口】接口获取用户信息,若用户信息获取失败,则应用系统重定向到应用登录页面,要求用户进行登录认证;否则,显示应用页面;
|
|
|
+
|
|
|
+
|
|
|
+REST认证接口
|
|
|
+认证接口
|
|
|
+ 接口说明:
|
|
|
+接口名
|
|
|
+authenticate
|
|
|
+参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+ 描述
|
|
|
+
|
|
|
+appId
|
|
|
+应用标识
|
|
|
+应用在认证中心中注册的标识
|
|
|
+
|
|
|
+userName
|
|
|
+用户名
|
|
|
+用户登录名
|
|
|
+
|
|
|
+password
|
|
|
+密码
|
|
|
+当采用用户名+密码认证时,传入密码
|
|
|
+当采用用户名+短信认证时,此参数被忽略(需要加密,可见以下加密文档)
|
|
|
+
|
|
|
+checkcode
|
|
|
+短信验证码
|
|
|
+当采用用户名+密码认证时,此参数被忽略
|
|
|
+当采用用户名+短信认证时,传入短信验证码。短信验证码需要先通过"发送短信验证码"接口发到用户手机上。
|
|
|
+
|
|
|
+authnMethod
|
|
|
+认证方式
|
|
|
+当采用用户名+密码认证时,传入UsernamePassword或不传
|
|
|
+当采用用户名+短信验证码认证时,传入UsernameSM
|
|
|
+
|
|
|
+remoteIp
|
|
|
+客户端IP
|
|
|
+
|
|
|
+处理逻辑
|
|
|
+判断参数
|
|
|
+验证appId是否有效
|
|
|
+调用IDP认证接口
|
|
|
+Password 加密方法
|
|
|
+根据以上判断、验证及认证结果返回JSON数据
|
|
|
+返回值
|
|
|
+ 类型:String,即:以JSON格式返回角色数据集
|
|
|
+ 参数不完整及错误时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.rest.Authenticate",
|
|
|
+ "content": "Parameters_missing"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ 短信校验码不正确时:
|
|
|
+ {"message":{"name":"login.form.error.smsCheckCode.invalidNumber","content":"001","count":"9"}}
|
|
|
+
|
|
|
+ authnMethod不正确时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.rest.Authenticate",
|
|
|
+ "content": "invalid_auth_method"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ appId验证不通过时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.rest.Authenticate",
|
|
|
+ "content": "invalid_appId"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ 用户密码认证通过时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "tokenId": "MTkyLjE2OC4xMjguMQ==|NzI4Nzg5OWNiNDM0ZWRjMTMwMWM0Y2NjNDIzNzk3NjQ4MzRkNmVhODk4Y2MxMWZiMTY3MjZhOTM2ZmFmZGVhNA==|Qgai5XhdPTYWf9GbWfynyIySczY="
|
|
|
+ },
|
|
|
+ "message": null
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ 用户密码认证不通过时(多种异常):
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "login.form.error.userpass.invalidNumber",
|
|
|
+ "content": "9"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ 或message.content中包含" need_change_password"、" password_expired"、" unknow_error"等情况。
|
|
|
+URL Path
|
|
|
+ 认证服务接口地址/idp/restful/IDPAuthenticate
|
|
|
+请求类型
|
|
|
+ GET、POST
|
|
|
+描述
|
|
|
+ 认证中心端用户登录认证REST接口
|
|
|
+验证票据接口
|
|
|
+ 接口说明:
|
|
|
+接口名
|
|
|
+isTokenValid
|
|
|
+ 参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+ 描述
|
|
|
+
|
|
|
+appId
|
|
|
+应用标识
|
|
|
+ SP在IDP中注册的标识
|
|
|
+
|
|
|
+tokenId
|
|
|
+用户票据
|
|
|
+
|
|
|
+
|
|
|
+remoteIp
|
|
|
+客户端IP
|
|
|
+
|
|
|
+处理逻辑
|
|
|
+ 判断参数
|
|
|
+ 验证appId是否有效
|
|
|
+ 验证tokenId是否有效
|
|
|
+ 根据以上判断、验证结果返回JSON数据
|
|
|
+返回值
|
|
|
+ 类型:String,即:以JSON格式返回角色数据集
|
|
|
+ 参数不完整及错误时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.rest.IsTokenValid",
|
|
|
+ "content": "Parameters_missing"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ appId验证不通过时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.IsTokenValid ",
|
|
|
+ "content": "invalid_appId"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ tokenId格式不正确时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.IsTokenValid ",
|
|
|
+ "content": "wrong_tokenId_format"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ token有效时返回:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "isValid": true
|
|
|
+ },
|
|
|
+ "message": null
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ token无效时返回:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "isValid": false
|
|
|
+ },
|
|
|
+ "message": null
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ 异常情况message.content中可能包含异常错误信息
|
|
|
+URL Path
|
|
|
+ 认证服务接口地址/idp/restful/isIDPTokenValid
|
|
|
+请求类型
|
|
|
+ GET、POST
|
|
|
+描述
|
|
|
+ 认证中心端用户SSO票据验证REST接口
|
|
|
+
|
|
|
+获取用户信息接口
|
|
|
+ 接口说明:
|
|
|
+接口名
|
|
|
+ GetUserAttributes
|
|
|
+参数
|
|
|
+参数名
|
|
|
+中文说明
|
|
|
+ 描述
|
|
|
+
|
|
|
+appId
|
|
|
+应用标识
|
|
|
+ 应用在认证中心中注册的标识
|
|
|
+
|
|
|
+tokenId
|
|
|
+用户票据
|
|
|
+
|
|
|
+
|
|
|
+remoteIp
|
|
|
+客户端IP
|
|
|
+
|
|
|
+
|
|
|
+attributeNames
|
|
|
+属性名
|
|
|
+ 逗号分割字符串: "spOrgCodePath,sn,givenName,uid"
|
|
|
+ 该参数没有时使用IDP默认的用户属性
|
|
|
+处理逻辑
|
|
|
+ 判断参数
|
|
|
+ 验证appId是否有效
|
|
|
+ 验证tokenId是否有效
|
|
|
+ 获取用户信息
|
|
|
+ 根据以上判断及结果返回JSON数据
|
|
|
+返回值
|
|
|
+ 类型:String,即:以JSON格式返回角色数据集
|
|
|
+ 参数正常且有attributeNames参数时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "tokenId": "MTkyLjE2OC4xMjguMQ==|ODZlNTY2MzY5MWU4ZTkxYmZmNzEwMjVlNmFhNDdiMWMzYzZkMmQ3MjVmMTY3NzA5YTQxNDY0Y2ZhMjNhODgwZQ==|1m0nP3K952xf2r+xkj8bXpvXdw8=",
|
|
|
+ "attributes": {
|
|
|
+ "uid": [
|
|
|
+ "dingkx"
|
|
|
+ ],
|
|
|
+ "sn": [
|
|
|
+ "丁"
|
|
|
+ ],
|
|
|
+ "givenName": [
|
|
|
+ "新星"
|
|
|
+ ],
|
|
|
+ "spOrgCodePath": [
|
|
|
+ "/10010000/10010001/30200000/30200018/30204583/"
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "message": null
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ 参数正常且没有attributeNames参数时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "tokenId": "MTkyLjE2OC4xMjguMQ==|MmI5OWRkMzJiZWI2MjEyZDk4ZDAzNTM1Y2EzMThhNjQ4YjIxZjU3ODBkODFmOTJiZTNmMGM5MTVkZjVkZGNlMg==|LAfSIly0VQGg8e2DuRyvjyEk3pM=",
|
|
|
+ "attributes": {
|
|
|
+ "spPositionNumber": [
|
|
|
+ "00702837"
|
|
|
+ ],
|
|
|
+ "uid": [
|
|
|
+ "dingkx"
|
|
|
+ ],
|
|
|
+ "spUpdateDate": [
|
|
|
+ "201311180952Z"
|
|
|
+ ],
|
|
|
+ "spOrgNumber": [
|
|
|
+ "5030/0051"
|
|
|
+ ],
|
|
|
+ "sn": [
|
|
|
+ "丁"
|
|
|
+ ],
|
|
|
+ "ou": [
|
|
|
+ "工程建设(集团)有限责任公司第一工程处第二项目部"
|
|
|
+ ],
|
|
|
+ "spPositionStatus": [
|
|
|
+ "0"
|
|
|
+ ],
|
|
|
+ "spPositionName": [
|
|
|
+ "主任师"
|
|
|
+ ],
|
|
|
+ "spRoleList": [
|
|
|
+ "dingkx-4@应用系统名称应用系统名称应用系统名称应用系统名称应用系统10",
|
|
|
+ "dingkx-10@应用测试-apptest",
|
|
|
+ ......
|
|
|
+ "hesh.yssh@燕山中信关键业务管理系统",
|
|
|
+ "dingkx@TAM Service",
|
|
|
+ ......
|
|
|
+ "dingkx@应用系统名称应用系统名称应用系统名称应用系统名称应用系统13",
|
|
|
+ ],
|
|
|
+ "givenName": [
|
|
|
+ "新星"
|
|
|
+ ],
|
|
|
+ "spOrgNamePath": [
|
|
|
+ "/HR中信工程建设(集团)有限责任公司第一工程处第二项目部/"
|
|
|
+ ],
|
|
|
+ "spEmployeeLevel": [
|
|
|
+ "2"
|
|
|
+ ],
|
|
|
+ "spOrgCodePath": [
|
|
|
+ "/10010000/10010001/30200000/30200018/30204583/"
|
|
|
+ ],
|
|
|
+ "spCountry": [
|
|
|
+ "CN"
|
|
|
+ ],
|
|
|
+ "departmentNumber": [
|
|
|
+ "30204583"
|
|
|
+ ],
|
|
|
+ "cn": [
|
|
|
+ "丁可新"
|
|
|
+ ],
|
|
|
+ "spIdentityType": [
|
|
|
+ "01"
|
|
|
+ ],
|
|
|
+ "spGender": [
|
|
|
+ "1"
|
|
|
+ ],
|
|
|
+ "displayName": [
|
|
|
+ "丁可新"
|
|
|
+ ],
|
|
|
+ "spPinYinShortName": [
|
|
|
+ "dkx"
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "message": null
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ 参数不完整及错误时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.GetUserAttributes",
|
|
|
+ "content": "Parameters_missing"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ tokenId格式不正确时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.GetUserAttributes",
|
|
|
+ "content": "wrong_tokenId_format"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ token无效时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.GetUserAttributes",
|
|
|
+ "content": "invalid_token"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+ appId不正确时:
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "data": null,
|
|
|
+ "message": {
|
|
|
+ "name": "com.bamboocloud.am.GetUserAttributes",
|
|
|
+ "content": "invalid_appId"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ 异常情况message.content中可能包含异常错误信息
|
|
|
+URL Path
|
|
|
+认证服务接口地址/idp/restful/getIDPUserAttributes
|
|
|
+请求类型
|
|
|
+ GET、POST
|
|
|
+描述
|
|
|
+ 认证中心端用户信息获取REST接口
|
|
|
+
|
|
|
+接口调用注意事项
|
|
|
+urlEncode编码
|
|
|
+ 由于HTTP URL自身限制,无论REST接口还是认证辅助接口,传入的参数值如果包含例如"%"、"&"、" "、"="等特殊字符或中文时,需要先作urlEncode编码。推荐所有参数值先都作urlEncode编码再调用接口传入。
|
|
|
+HTTPS安全协议
|
|
|
+REST接口以及认证辅助接口说明、例子默认都采用HTTP协议,为增加安全性,实际部署时支持HTTPS协议。当采用HTTPS协议时,需要在应用服务器上信任DNS、IDP的服务器证书。
|
|
|
+
|
|
|
+错误码和错误信息说明
|
|
|
+
|
|
|
+错误名称
|
|
|
+错误代码
|
|
|
+count
|
|
|
+错误说明
|
|
|
+com.bamboocloud.am.rest.Authenticate
|
|
|
+Parameters_missing
|
|
|
+0
|
|
|
+参数为空或缺失时
|
|
|
+com.bamboocloud.am.rest.Authenticate
|
|
|
+invalid_appId
|
|
|
+0
|
|
|
+appid错误
|
|
|
+com.bamboocloud.am.rest.Authenticate
|
|
|
+invalid_auth_method
|
|
|
+0
|
|
|
+authmethod错误
|
|
|
+ogin.form.error.unsupported_appId
|
|
|
+009
|
|
|
+0
|
|
|
+使用用户名密码认证,但未配置该认证方式(多种异常)
|
|
|
+login.form.error.password.expired
|
|
|
+002
|
|
|
+
|
|
|
+用户密码已过期
|
|
|
+login.form.error.password.modifyPassword
|
|
|
+005
|
|
|
+0
|
|
|
+管理员强制修改密码
|
|
|
+login.form.error.username.locked
|
|
|
+004
|
|
|
+0
|
|
|
+用户被锁定
|
|
|
+login.form.error.username.isDisabled
|
|
|
+003
|
|
|
+0
|
|
|
+用户被禁用
|
|
|
+login.form.error.smsCheckCode.invalidNumber
|
|
|
+001
|
|
|
+4(依次递减直至锁定)
|
|
|
+验证码错误,用户名错误,被删除的用户(用户名短信)
|
|
|
+login.form.error.userpass.invalidNumber
|
|
|
+001
|
|
|
+4(依次递减直至锁定)
|
|
|
+userName,password错误,被删除的用户(用户名密码)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+属性说明
|
|
|
+用户属性说明
|
|
|
+说明:以下属性通过认证接口、数据接口均可获得,也可按照业务需要配置所需属性
|
|
|
+ 属性名称
|
|
|
+ 属性ID
|
|
|
+ 类型
|
|
|
+ ID
|
|
|
+ id
|
|
|
+ STRING
|
|
|
+ 员工类型
|
|
|
+ typeId
|
|
|
+ STRING
|
|
|
+ 所属主机构
|
|
|
+ organizationId
|
|
|
+ STRING
|
|
|
+ 机构列表
|
|
|
+ orgList
|
|
|
+ STRING
|
|
|
+ 主要岗位
|
|
|
+ keyPost
|
|
|
+ STRING
|
|
|
+ 所属职务组
|
|
|
+ postList
|
|
|
+ STRING
|
|
|
+ 用户名
|
|
|
+ username
|
|
|
+ STRING
|
|
|
+ 姓名
|
|
|
+ fullname
|
|
|
+ STRING
|
|
|
+ 邮箱
|
|
|
+ email
|
|
|
+ STRING
|
|
|
+ 手机号
|
|
|
+ mobile
|
|
|
+ STRING
|
|
|
+ 员工号
|
|
|
+ employeeNo
|
|
|
+ STRING
|
|
|
+ 入职日期
|
|
|
+ startDate
|
|
|
+ DATE
|
|
|
+ 离职日期
|
|
|
+ endDate
|
|
|
+ DATE
|
|
|
+ 禁用
|
|
|
+ isDisabled
|
|
|
+ BOOLEAN
|
|
|
+ 删除
|
|
|
+ isDeleted
|
|
|
+ BOOLEAN
|
|
|
+ 更新日期
|
|
|
+ updateAt
|
|
|
+ TIMESTAMP
|
|
|
+ 证件类型
|
|
|
+ IDType
|
|
|
+ STRING
|
|
|
+ 证件号码
|
|
|
+ IDNo
|
|
|
+ STRING
|
|
|
+ 性别
|
|
|
+ user_sex
|
|
|
+ STRING
|
|
|
+ 座机号码
|
|
|
+ telephone
|
|
|
+ STRING
|
|
|
+ 公司地址
|
|
|
+ address
|
|
|
+ STRING
|
|
|
+ 是否技能岗
|
|
|
+ isTechnology
|
|
|
+ BOOLEAN
|
|
|
+ 兼岗补充标识
|
|
|
+ postSupplement
|
|
|
+ STRING
|
|
|
+ 序号
|
|
|
+ sequence
|
|
|
+ STRING
|
|
|
+ GUID
|
|
|
+ guid
|
|
|
+ STRING
|
|
|
+
|
|
|
+
|
|
|
+组织机构属性说明
|
|
|
+说明:以下属性通过数据接口可获得,也可按照业务需要配置所需属性
|
|
|
+ 属性名称
|
|
|
+ 属性ID
|
|
|
+ 类型
|
|
|
+ ID
|
|
|
+ id
|
|
|
+ STRING
|
|
|
+ 机构树
|
|
|
+ treeId
|
|
|
+ STRING
|
|
|
+ 父机构
|
|
|
+ parentId
|
|
|
+ STRING
|
|
|
+ 名称
|
|
|
+ name
|
|
|
+ STRING
|
|
|
+ 类型
|
|
|
+ type
|
|
|
+ STRING
|
|
|
+ 代码
|
|
|
+ code
|
|
|
+ STRING
|
|
|
+ 全名
|
|
|
+ fullname
|
|
|
+ STRING
|
|
|
+ 描述
|
|
|
+ description
|
|
|
+ STRING
|
|
|
+ 序号
|
|
|
+ sequence
|
|
|
+ INTEGER
|
|
|
+ 禁用
|
|
|
+ isDisabled
|
|
|
+ BOOLEAN
|
|
|
+ 删除
|
|
|
+ isDeleted
|
|
|
+ BOOLEAN
|
|
|
+ 更新时间
|
|
|
+ updateAt
|
|
|
+ TIMESTAMP
|
|
|
+ GUID
|
|
|
+ guid
|
|
|
+ STRING
|
|
|
+ 供应状态
|
|
|
+ provisionStatus
|
|
|
+ STRING
|
|
|
+
|