广东省网上办事大厅统一身份认证平台
业务系统接入规范
V1.0.1
广东省网上办事大厅
二O一四年十月
目录
一、 前言......................................................................................................................................... 4
二、 目标......................................................................................................................................... 4
三、 对接方案 ................................................................................................................................. 5
3.1. 单点登录 .......................................................................................................................... 5
3.1.1. 系统结构 ............................................................................................................... 5
3.1.2. 集成模式 ............................................................................................................... 6
3.1.3. 任务分工 ............................................................................................................... 7
3.2. OAuth2认证 ................................................................................................................... 7
3.2.1. 系统结构 ............................................................................................................... 7
3.2.2. 集成模式 ............................................................................................................... 8
3.2.3. 任务分工 ............................................................................................................... 9
四、 应用程序改造说明 ................................................................................................................. 9
4.1. 单点登录集成 .................................................................................................................. 9
4.2. OAuth2认证集成 ......................................................................................................... 10
4.3. 用户库改造说明 ............................................................................................................ 11
五、 改造环节及示例代码说明 ................................................................................................... 12
5.1. 单点登录改造说明 ........................................................................................................ 12
5.1.1. 详细流程 ............................................................................................................. 12
5.1.2. 组件调用说明 ..................................................................................................... 14
5.1.3. 示例代码说明 ..................................................................................................... 14
5.2. OAuth2认证改造说明 ................................................................................................. 15
5.2.1. 详细流程 ............................................................................................................. 15
5.2.2. 登录页面改造说明 ............................................................................................. 16
5.2.3. 组件调用说明 ..................................................................................................... 16
六、 接口及参数说明 ................................................................................................................... 17
6.1. 单点登录接口说明 ........................................................................................................ 17
6.1.1. 设置认证服务URL ............................................................................................ 17
6.1.2. 获取用户信息 ..................................................................................................... 17
6.2. OAuth2认证接口说明 ................................................................................................. 19
6.2.1. 获取授权码 ......................................................................................................... 19
6.2.2. 获取token ......................................................................................................... 20
6.2.3. 获取用户信息 ..................................................................................................... 21
一、 前言
按照《关于做好全省网上办事大厅建设相关筹备工作的通知》(粤办函
〔2012〕369号)等相关文件及省政府推进全省网上办事大厅建设的工作部署
的总体要求,构建全省统一身份认证平台,主要目的是服务于全省网上办事业务
信息化发展,为省直部门业务系统、各地市分厅等各类业务系统提供“用户名/
密码”普通账户和CA 账户认证服务,并提供跨域单点登录服务,逐步实现“一
个账号,全省通用”,建成全省标准统一、安全可靠、互联互通、应用方便的统
一身份认证应用支撑体系,全面提升省网办大厅的用户体验及安全保障能力。
本规范文件按照广东省网上办事大厅工作的总体要求,指导各类业务系统建
设单位开展统一认证对接工作,说明相关对接流程和步骤,提供相应服务接口及
应用实例,完成各业务系统与省统一身份认证平台对接工作。
二、 目标
各类业务系统接入省统一身份认证平台,主要目标如下:
(1)统一认证:各类业务系统通过省统一身份认证平台获取符合OAuth2
认证协议的用户账户认证服务,支持省统一身份认证平台用户能够登录进入各类
业务系统,实现“一个账号,全省通用”。
(2)单点登录:各类业务系统按照省统一身份认证平台接入规范进行sso
接口集成改造,接入到省统一身份认证平台中,通过省统一身份认证平台实现各
类业务系统的单点登录服务,实现“一点登录,多点漫游”。
(3)CA认证:省统一身份认证平台将接入省数字证书交叉认证平台、各
市级数字证书交叉认证系统等数字证书交叉认证平台,并为业务系统提供CA账
户认证服务,满足全省CA用户的统一身份认证服务。
三、 对接方案
根据广东省网上办事大厅统一认证建设目标,根据各类业务系统不同的对
接工作内容,其相应的接入集成方式分别如下:
3.1. 单点登录
避免重复建设,提高使用效率,遵循“统一认证”架构,各类业务系统接
入省统一身份认证平台后,通过SSO服务,使用户进入省网上办事大厅、各省
直部门业务系统、地市分厅系统等业务系统办理业务时只需要一次登录认证。
在用户进行单点登录之前的身份认证方式可以有多种选择,省统一身份认
证平台提供多种第三方信任源进行认证,包括各省直业务部门账户系统、市级身
份认证平台、以及其它第三方信任源。
3.1.1. 系统结构
系统建设逻辑结构如下图所示:
用户通过省统一身份认证平台进行登录认证,认证通过后单点登录访问业务
系统,提供统一安全登录服务,从而避免用户多次重复登录各个不同系统,实现
电子政务便民的工作目标。
3.1.2. 集成模式
省统一身份认证平台提供统一身份管理和认证功能,并建立与各业务系统用
户关联关系,避免最终用户在多个系统中重复登录,从而有效提高用户操作的方
便性,达到“统一认证、统一登录”的目标。
在省统一身份认证平台统一用户访问入口的情况下,业务系统单点登录集
成改造工作主要包括:
1、在业务系统中部署单点登录组件,配置相应数字证书;
2、在业务系统中集成单点登录接口,实现对通过省统一身份认证平台统
一认证后所签发的单点登录用户信息的认证及解析;
3、在业务系统数据库中增加关联字段,用于建立与省统一身份认证平台
用户的关联关系;
3.1.3. 任务分工
省统一身份认证平台系统集成商:
1. 提供单点登录组件及其相应的集成操作文档;
2. 协助业务系统开发商调用省统一身份认证平台统一认证服务,配合
联调测试,实现安全认证登录;
业务系统开发商:
1. 业务系统开发商需要调用省统一身份认证平台的单点登录组件,修
改数据库,实现单点登录服务。
3.2. OAuth2认证
3.2.1. 系统结构
用户直接访问业务系统,之后选择以省统一身份认证平台作为第三方信任源
登录,认证后返回至该系统,系统结构图如下:
如上图所示,用户在业务系统登录页面,选择省统一身份认证平台作为第
三方信任源登录,业务系统登录页面、后台程序需要进行改造,实现接受省统一
身份认证平台作为第三方信任源的OAuth2认证,实现用户认证信息共享。
3.2.2. 集成模式
采用业务系统登录页面选择省统一身份认证平台或第三方信任源认证方式
来进行用户认证,其实施步骤如下:
1. 在业务系统登录页面加入省统一身份认证平台认证链接,调用省统一
身份认证平台OAuth2认证接口,实现用户身份认证;
2. 省统一身份认证平台提供OAuth2认证接口,供业务系统调用,实
现用户身份认证信息的安全传输;
3. 省统一身份认证平台和其它第三方信任源之间实现OAuth2认证,
调用第三方信任源的OAuth2认证接口,实现第三方信任源的用户
共享。
3.2.3. 任务分工
省统一身份认证平台系统集成商:
1. 提供OAuth2认证接口及其相应的集成操作文档;
2. 协助业务系统开发商调用OAuth2认证接口认证服务,实现OAuth2
认证;
3. 调用其它第三方信任源Oauth2认证接口,实现省统一身份认证平
台与其它第三方信任源间的OAuth2认证。
业务系统开发商:
1. 需要调用统一身份认证平台OAuth2认证接口认证服务,实现
OAuth2认证;
2. 增加用户数据库字段,标明认证来源、认证标识号等参数。
3.3. CA认证
由省数字证书交叉认证平台、市级交叉认证平台提供多家CA数字证书认证
服务,并作为第三方信任源接入到省统一身份认证平台,由省统一身份认证平台
统一为各业务系统提供多CA认证服务,其具体实现方案可参考上一章节的
OAuth2.0认证。
四、 应用程序改造说明
4.1. 单点登录集成
用户在省统一身份认证平台完成登录认证之后,可以直接进入业务系统办理
相应的业务事项,实现“一点登录,多点漫游”的目标。
具体流程如下图所示:
1、 确定业务系统单点登录入口页面;
2、 业务系统应用服务器上部署安全组件和票据解析组件;
3、 在系统中增加票据接收页面;
4、 修改票据接收页面,在票据解析成功后跳转到系统的主页;
5、 解析成功后取用户唯一标识UID字段,同存储在数据库中的用户身份信
息进行比对;如首次登录,可建立关联关系。
4.2. OAuth2认证集成
用户通过省直部门、地市分厅系统页面,选择以省统一身份认证平台进行认
证,具体流程如下图:
1、 在业务系统登录页面增加省统一身份认证平台入口;
2、 在应用服务器上部署OAuth2认证组件;
3、 在业务系统中调用用户信息获取接口;
4、 接受信息成功后,跳转到业务系统页面;
6、 从用户信息中取用户唯一标识UID字段,同存储在数据库中的用户身份
信息进行比对;如没有,则创建新用户,如已经存在,则直接登录进入
系统。
4.3. 用户库改造说明
业务系统实现对接功能,除调用单点登录及OAuth2认证组件实现认证改
造外,还需要实现省统一身份认证平台用户信息与业务系统现有用户信息之间的
关联,相应用户数据库的表结构需要相应调整,如下图:
为建立关联关系,需要增加用户数据库的字段,主要包括:
1、用户认证来源:该项内容用于描述用户信息的来源,通过该项内容可以
判断用户信息是从哪个数据源获取;长度为100个字节;
2、用户认证方式;该项内容用于描述用户当前凭证类型为证书还是用户名
口令,从而在用户登录时,采用正确的认证方式;长度为40个字节;
3、是否实名:该项内容用于描述用户是否通过了实名认证,通过该项内容
可以给用户展现不同的业务数据内容。长度为20个字节;
4、用户信息唯一标识UID:该项内容用于描述用户信息的唯一标识号,每
一个标识号代表一个独立的用户。长度为32个字节。
五、 改造环节及示例代码说明
5.1. 单点登录改造说明
5.1.1. 详细流程
流程描述如下:
1、 用户访问省统一身份认证平台,并输入身份认证凭证;
2、 省统一身份认证平台对用户身份进行登录凭证验证;
3、 由省统一身份认证平台对用户进行身份认证后,返回用户token;
4、 用户选择需要业务系统;
5、 省统一身份认证平台将用户token、随机数及签名形成单点登录票据,
并发送给业务系统;
6、 业务系统接收省统一身份认证平台单点登录票据,并对票据进行解析,
获取随机数和Token,并对随机数进行签名处理;
7、 业务系统将相应的随机数签名值和Token提交给省统一身份认证平台;
8、 省统一身份认证平台验证用户token及随机数,获取用户UID;
9、 省统一身份认证平台将用户信息(含UID等)返回给接入业务系统;
10、 根据用户UID,业务系统判断用户是否有权限登录,验证通过后,
用户成功登录进入业务系统。
5.1.2. 组件调用说明
需要在业务系统中引入,根据相应的API接口说
明,调用jar包相应方法实现用户信息的获取。
5.1.3. 示例代码说明
业务系统验证token后,用token得到userIdCode,用于用户权限判断,
代码示意如下:
clientResponse =
("identity").path("attributes").queryParam("subjectid",
(tokenId, "utf-8")).queryParam("attributenames",
"useridcode").header("Content-Type",
"application/json;charset=UTF-8").get();
if (tus() != 200) { //判断返回结果,200为成功
ribute("error", "获取userIdCode失败!");
uestDispatcher("../").forward(request,
response); return; }
String resultTemp = ity();
String[] result = ("rn");
HashMap String>(); for (int i = 0; i < ; i++) { if (result[i] != null && result[i].contains("") || result[i].contains(""))) { if (result[i].contains("")) {(result[i].substring("=".length()), result[i + 1].substring("=".length()));}}} ribute("userIdCode", ("useridcode")); 5.2. OAuth2认证改造说明 5.2.1. 详细流程 用户首次直接访问业务系统,使用省统一身份认证平台账户作为第三方信任源 进行登录认证流程如下: 流程描述如下: 1. 用户访问接入业务系统办理相关服务事项; 2. 业务系统提示用户选择账户认证方式,用户账户认证方式包括业务系统 本地用户登录、第三方信任源(市级认证平台、省直部门账号系统等)用户登录; 3. 用户选择省统一身份认证平台账号登录; 4. 省统一身份认证平台提供用户登录界面,并对用户进行身份认证; 5. 省统一身份认证平台将用户身份认证结果返回给业务系统; 6. 业务系统接收用户登录状态,并判断用户是否为首次访问业务系统,若 用户为首次访问,则需要用户进行应用授权; 7. 业务系统请求用户进行认证账号绑定; 8. 用户进行授权确认,允许业务系统使用省统一身份认证平台账号; 9. 省统一身份认证平台向业务系统同步用户的基本信息资料; 10. 用户登录成功,业务系统创建用户本地账户,并根据业务需求,可要求 用户补充相关材料; 11. 用户补充相关材料后,即可登录进入业务系统,并办理相关服务事项。 5.2.2. 登录页面改造说明 业务系统需修改登录页面,增加“省统一省份认证平台认证”按钮,后台配 置省统一身份认证平台OAuth2认证接口。 5.2.3. 组件调用说明 需要在业务系统中引入相应的jar包至项目工程内,根据相应的API接口说 明,调用jar包相应方法实现用户授权及用户信息的获取。 六、 接口及参数说明 6.1. 单点登录接口说明 用户通过url获得省网办大厅用户的tokenid及随机数,调用验证随机数接 口对随机数进行验证,并获取用户uid及用户的所有信息。 单点登录接口主要提供如下功能:验证随机数及tokenid的有效性、获取用户 相关信息。 6.1.1. 设置认证服务URL 服务名称 Map setServerUrl(String ServerUrl) 服务说明 设置服务器URL,调用一次即可 参数名称 参数说明 参数列表 ServerUrl 服务器URL Map 返回值 Key:status(错误码) Key:message(错误信息)} 返回值说明: 备注 0--成功 101--服务器URL不能为空! 105--服务器URL未知错误,检查服务器URL! 6.1.2. 获取用户信息 服务名称 Map getAllUserAttributes(String tokenId, String random) 服务说明 获取所有用户属性 参数列表 参数名称 参数说明 tokenId 登录后会话的Token random 使用generateRandom函数返回的随机数 Map Key:status(错误码) Key:message(错误信息) Key:idcardnumber(证件号码) Key:useridcode(用户身份唯一标识码) Key:cn(用户姓名) Key:uid(用户的登录标识,值为用户登录名或证书唯一标识) Key:mail(邮件地址) Key:telephonenumber(电话号码) Key:credenceclass(用户本次登录时使用的凭证类型, Credence_001表示使用证书登录,Credence_002表示使用密码 返回值 登录) Key:inetuserstatus(用户状态。Active表示状态正常,InActive 表示状态非法(停用或注销)) Key:extproperties(扩展属性。扩展属性内部以map的方式保存 值,如果是多值,用逗号分隔。举例如下:如果扩展属性的英文名 是testExt,则通过(“extproperties”).get(“testExt”) 获取) Key:passwordmodifieddate(密码修改日期) Key:usermodpwdflag(用户修改密码标志。0表示默认密码需 要修改;1表示已经修改默认密码) createtime(创建时间) 错误码: 0--成功 101--随机数已失效! 102--验证Token失败! 103--获取用户信息失败! 104--系统内部错误! 备注 106--参数编码错误 107--服务连接错误! 108--用户认证失败! 109--用户状态异常! 110--请求地址不存在! 使用此接口前需至少调用一次setServerUrl接口设置服务端URL 6.2. OAuth2认证接口说明 6.2.1. 获取授权码 接口功能 获得授权码 url server url/oauth2/authorize client_id :应用向am 预先申请的client_id scope :app向am请求的属性,可以根据具体情况增加或者减 少,中间用空格分割(URL编码后是加号)。 参数 redirect_uri :认证完成并且用户对app授权后返回的地址,此 地址可以得到grant_code授权码。 response_type固定为code 返回值 grant_code :授权码。 获取方式,例如ameter("code") GET http请求方式 6.2.2. 获取token 接口功能 通过授权码获得访问token url server url/oauth2/access_token client_id :应用向am 预先申请的client_id client_secret :应用向am 预先申请的密钥 code :授权码 参数 scope :app向am请求的属性,可以根据具体情况增加或者减 少,中间用空格分割(URL编码后是加号)。 redirect_uri :认证完成并且用户对app授权后返回的地址,此 地址可以得到grant_code授权码。 grant_type固定为authorization_code access_token :授权码。 expires_in :有效期,单位是秒 token_type:获得的Token类型,Bearer 例如: {"expires_in":59,"token_type":"Bearer","access_token":"17 120008-13ff-40fa-b573-7fcd3e638f25"} 返回值 http请求方式 GET 6.2.3. 获取用户信息 接口功能 通过访问token获得用户信息 url server url/oauth2/tokeninfo 参数 access_token :应用向am 预先申请的client_id access_token :访问token expires_in :有效期,单位是秒 token_type:获得的Token类型,Bearer 其他都是用户信息,例如"mail":"**************" 例如: 返回值 {"uid":"demo123","mail":"**************","scope":["ui d","mail","cn","telephoneumber","userIdCode","uamsD epts","uniqueId"],"cn":"demo123","realm":"/","telephone umber":"1388888888","userIdCode":"123","token_type": "Bearer","expires_in":59,"access_token":"882b5b8c-30b2- 467c-90c7-fb0492545aab","uniqueId":"demo1234"} 格式 JSO http请求方式 GET
本文发布于:2023-05-25 02:25:15,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/falv/fa/87/109056.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |