广东省网上办事大厅统一身份认证平台对接规范V1.0.1
《广东省网上办事大厅统一身份认证平台对接规范V1.0.1》由会员分享,可在线阅读,更多相关《广东省网上办事大厅统一身份认证平台对接规范V1.0.1(23页珍藏版)》请在装配图网上搜索。
1、广东省网上办事大厅统一身份认证平台 业务系统接入规范 V1.0.1 广东省网上办事大厅 二 O 一四年十月 目录 1、 前言 4 2、 目标 4 3、 对接方案 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. 任务分
2、工 9 4、 应用程序改造说明 9 4.1. 单点登录集成 9 4.2. OAuth2 认证集成 10 4.3. 用户库改造说明 11 5、 改造环节及示例代码说明 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 6、 接口及参数说明 17 6.1. 单点登录接口说明
3、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 1、 前 言 按照《关于做好全省网上办事大厅建设相关筹备工作的通知》 (粤办函 〔 2012 〕 369 号)等相关文件及省政府推进全省网上办事大厅建设的工作部署 的总体要求, 构建全省统一身份认证平台, 主要目的是服务于全省网上办事业务 信息化发展,为省直部门业务系统、各地市分厅等各类业务系统提供“用户名 / 密码”
4、普通账户和 CA 账户认证服务, 并提供跨域单点登录服务, 逐步实现 “一 个账号,全省通用” ,建成全省标准统一、安全可靠、互联互通、应用方便的统 一身份认证应用支撑体系,全面提升省网办大厅的用户体验及安全保障能力。 本规范文件按照广东省网上办事大厅工作的总体要求, 指导各类业务系统建 设单位开展统一认证对接工作, 说明相关对接流程和步骤, 提供相应服务接口及 应用实例,完成各业务系统与省统一身份认证平台对接工作。 2、 目 标 各类业务系统接入省统一身份认证平台,主要目标如下: ( 1 )统一认证:各类业务系统通过省统一身份认证平台获取符合 OAuth2 认证协议的用户账
5、户认证服务, 支持省统一身份认证平台用户能够登录进入各类 业务系统,实现“一个账号,全省通用” 。 ( 2 )单点登录:各类业务系统按照省统一身份认证平台接入规范进行 sso 接口集成改造, 接入到省统一身份认证平台中, 通过省统一身份认证平台实现各 类业务系统的单点登录服务,实现“一点登录,多点漫游” 。 ( 3 ) CA 认证:省统一身份认证平台将接入省数字证书交叉认证平台、各 市级数字证书交叉认证系统等数字证书交叉认证平台, 并为业务系统提供 CA 账 户认证服务,满足全省 CA 用户的统一身份认证服务。 3、 对 接方案 根据广东省网上办事大厅统一认证建设目标,根据各
6、类业务系统不同的对 接工作内容,其相应的接入集成方式分别如下: 3.1. 单点登录 避免重复建设,提高使用效率,遵循“统一认证”架构,各类业务系统接 入省统一身份认证平台后,通过 SSO 服务,使用户进入省网上办事大厅、各省 直部门业务系统、地市分厅系统等业务系统办理业务时只需要一次登录认证。 在用户进行单点登录之前的身份认证方式可以有多种选择,省统一身份认 证平台提供多种第三方信任源进行认证, 包括各省直业务部门账户系统、 市级身 份认证平台、以及其它第三方信任源。 3.1.1. 系统结构 系统建设逻辑结构如下图所示: 统一认证 单点登录 省网办大厅 A 省直部门
7、、地市分厅 地市分厅 单点登录 统一身份认证平台 OAuth认证 省级认证平台市级认证平台 第三方信任源 省直部门 用户通过省统一身份认证平台进行登录认证,认证通过后单点登录访问业务 系统,提供统一安全登录服务,从而避免用户多次重复登录各个不同系统, 实现 电子政务便民的工作目标。 3.1.2. 集成模式 省统一身份认证平台提供统一身份管理和认证功能,并建立与各业务系统用 户关联关系,避免最终用户在多个系统中重复登录, 从而有效提高用户操作的方 便性,达到“统一认证、统一登录”的目标。 在省统一身份认证平台统一用户访问入口的情况下,业务系统单点登录集 成改造工作主要
8、包括: 1、在业务系统中部署单点登录组件,配置相应数字证书; 一认证后所签发的单点登录用户信息的认证及解析; 3 、在业务系统数据库中增加关联字段,用于建立与省统一身份认证平台 用户的关联关系; 3.1.3. 任务分工 省统一身份认证平台系统集成商: 1. 提供单点登录组件及其相应的集成操作文档; 2. 协助业务系统开发商调用省统一身份认证平台统一认证服务,配合 联调测试,实现安全认证登录; 业务系统开发商: 3. 业务系统开发商需要调用省统一身份认证平台的单点登录组件,修 改数据库,实现单点登录服务。 3.2. OAuth2 认证 3.2.1. 系统结构 用户直
9、接访问业务系统, 之后选择以省统一身份认证平台作为第三方信任源 登录,认证后返回至该系统,系统结构图如下: 省直部门、地市分厅 地市分厅 省直部门 统一身份认证平台 j OAuth认证一 省级认证平台 市级认证平台 第三方信任源 如上图所示,用户在业务系统登录页面,选择省统一身份认证平台作为第 三方信任源登录,业务系统登录页面、后台程序需要进行改造,实现接受省统一 身份认证平台作为第三方信任源的 OAuth2认证,实现用户认证信息共享。 3.2.2. 集成模式 采用业务系统登录页面选择省统一身份认证平台或第三方信任源认证方式 来进行用户认证,其实施步骤如下: 1
10、 .在业务系统登录页面加入省统一身份认证平台认证链接,调用省统一 身份认证平台OAuth2认证接口,实现用户身份认证; 2 .省统一身份认证平台提供 OAuth2认证接口,供业务系统调用,实 现用户身份认证信息的安全传输; 3.省统一身份认证平台和其它第三方信任源之间实现 OAuth2认证, 调用第三方信任源的 OAuth2 认证接口,实现第三方信任源的用户 3.2.3. 任务分工 省统一身份认证平台系统集成商: 1. 提供 OAuth2 认证接口及其相应的集成操作文档; 2. 协助业务系统开发商调用 OAuth2 认证接口认证服务, 实现 OAuth2 认证; 3. 调用
11、其它第三方信任源 Oauth2 认证接口,实现省统一身份认证平 台与其它第三方信任源间的 OAuth2 认证。 业务系统开发商: 1. 需要调用统一身份认证平台 OAuth2 认证接口认证服务,实现 OAuth2 认证; 2. 增加用户数据库字段,标明认证来源、认证标识号等参数。 3.3. CA 认证 由省数字证书交叉认证平台、市级交叉认证平台提供多家 CA 数字证书认证 服务, 并作为第三方信任源接入到省统一身份认证平台, 由省统一身份认证平台 统一为各业务系统提供多 CA 认证服务,其具体实现方案可参考上一章节的 OAuth2.0 认证。 4、 应 用程序改造说明 4
12、.1. 单点登录集成 用户在省统一身份认证平台完成登录认证之后, 可以直接进入业务系统办理 相应的业务事项,实现“一点登录,多点漫游”的目标。 具体流程如下图所示: 1、确定业务系统单点登录入口页面; 2、业务系统应用服务器上部署安全组件和票据解析组件; 3、在系统中增加票据接收页面; 4、修改票据接收页面,在票据解析成功后跳转到系统的主页; 5、解析成功后取用户唯一标识UID字段,同存储在数据库中的用户身份信 息进行比对;如首次登录,可建立关联关系。 4.2. OAuth2认证集成 用户通过省直部门、地市分厅系统页面,选择以省统一身份认证平台进行认 证,具体流程
13、如下图: 1、在业务系统登录页面增加省统一身份认证平台入口 ; 2、在应用服务器上部署OAuth2认证组件; 3、在业务系统中调用用户信息获取接口; 4、接受信息成功后,跳转到业务系统页面; 6、从用户信息中取用户唯一标识 UID字段,同存储在数据库中的用户身份 信息进行比对;如没有,则创建新用户,如已经存在,则直接登录进入 系统。 5、 3.用户库改造说明 业务系统实现对接功能,除调用单点登录及 OAuth2认证组件实现认证改 造外,还需要实现省统一身份认证平台用户信息与业务系统现有用户信息之间的 关联,相应用户数据库的表结构需要相应调整,如下图: 为建立关
14、联关系,需要增加用户数据库的字段,主要包括: 1、用户认证来源:该项内容用于描述用户信息的来源,通过该项内容可以 判断用户信息是从哪个数据源获取;长度为 100个字节; 2、用户认证方式;该项内容用于描述用户当前凭证类型为证书还是用户名 口令,从而在用户登录时,采用正确的认证方式;长度为 40个字节; 3、是否实名:该项内容用于描述用户是否通过了实名认证,通过该项内容 可以给用户展现不同的业务数据内容。长度为 20个字节; 4、用户信息唯一标识UID:该项内容用于描述用户信息的唯一标识号,每 一个标识号代表一个独立的用户。长度为 32个字节。 五、改造环节及示例代码说明 5
15、.1. 单点登录改造说明 5.1.1. 详细流程 用户内脸^ 省网M大厅 《建一身tfh&ipr合, 1、用户访问省同M大厅 2、猛证用声替H凭证 小 小钟ttfJK警至I前峥“0旧 5、Tnktri •随机渤度名值 流程描述如下: 公JO空nEEttlft塞X值 «、l^dJcHE 幽机 翻筌知金西^, 取得用户信息(UID 等) ■、近I可用户信息 6、MEM 机触,而机 烈鎏色 11、R奇系经登录蛇眼,地皿募丰1页明将内容 H1、1鞋转用 户M利断 用户是皆有 Q 劳至经 1、用户访问省统一身份认证平台,并输入身份认证凭证;
16、 2、省统一身份认证平台对用户身份进行登录凭证验证; 3、由省统一身份认证平台对用户进行身份认证后,返回用户 token ; 4、用户选择需要业务系统; 5、省统一身份认证平台将用户token、随机数及签名形成单点登录票据, 并发送给业务系统; 6、业务系统接收省统一身份认证平台单点登录票据,并对票据进行解析, 获取随机数和Token,并对随机数进行签名处理; 7、业务系统将相应的随机数签名值和 Token提交给省统一身份认证平台; 8、省统一身份认证平台验证用户token及随机数,获取用户UID ; 10、 9、省统一身份认证平台将用户信息(含 UID等)返回给接入业务
17、系统; 根据用户UID,业务系统判断用户是否有权限登录,验证通过后, 用户成功登录进入业务系统。 5.1.2. 组件调用说明 需要在业务系统中引入 BJCA-UAMS-SDK-1.0.jar ,根据相应的API接口说 明,调用jar包相应方法实现用户信息的获取。 5.1.3. 示例代码说明 业务系统验证token后,用token得到userldCode ,用于用户权限判断, 代码示意如下: clientResponse = clientResource.path("identity").path("attributes").queryPa
18、ram("subjectid", URLEncoder.encode(tokenId, "utf-8")).queryParam("attributenames", "useridcode").header("Content-Type", "application/json;charset=UTF-8").get(ClientResponse.class); if (clientResponse.getStatus() != 200) { // 判断返回结果,200
19、为成功 request.setAttribute("error"," 获取 userIdCode 失败!) request.getRequestDispatcher("../success.jsp").forward(request, response); return; } String resultT emp = clientResponse.getEntity(String.class); String口 result = resultTemp.split("\r\n"); HashMap<String
20、, String> resultMap = new HashMap<String, String>(); for (int i = 0; i < result.length; i++) { if (result[i] != null && result[i].contains("userdetails.attribute.name") || result[i].contains("userdetails.attribute.value"))) { if (result[i].contains("
21、userdetails.attribute.name")) {resultMap.put(result[i].substring("userdetails.attribute.name=".length()), result[i + 1].substring("userdetails.attribute.value=".length()));}}} request.setAttribute("userIdCode", resultMap.get("useridcode")); 5.2. OAuth
22、2认证改造说明 5.2.1. 详细流程 用户首次直接访问业务系统,使用省统一身份认证平台账户作为第三方信任源 进行登录认证流程如下: 摩人应用系辅 &.省向力大rr进行身份认正 官网力六万 (稣一月t»认证毕白》 流程描述如下: 1. 用户访问接入业务系统办理相关服务事项; 2. 业务系统提示用户选择账户认证方式, 用户账户认证方式包括业务系统 本地用户登录、第三方信任源(市级认证平台、省直部门账号系统等)用户登录; 3. 用户选择省统一身份认证平台账号登录; 4. 省统一身份认证平台提供用户登录界面,并对用户进行身份认证; 5
23、. 省统一身份认证平台将用户身份认证结果返回给业务系统; 6. 业务系统接收用户登录状态,并判断用户是否为首次访问业务系统,若 用户为首次访问,则需要用户进行应用授权; 7. 业务系统请求用户进行认证账号绑定; 8. 用户进行授权确认,允许业务系统使用省统一身份认证平台账号; 9. 省统一身份认证平台向业务系统同步用户的基本信息资料; 10. 用户登录成功,业务系统创建用户本地账户,并根据业务需求,可要求 用户补充相关材料; 11. 用户补充相关材料后,即可登录进入业务系统,并办理相关服务事项。 5.2.2. 登录页面改造说明 业务系统需修改登录页面,增加“省统一省份认证平
24、台认证”按钮,后台配 置省统一身份认证平台 OAuth2 认证接口。 5.2.3. 组件调用说明 需要在业务系统中引入相应的 jar 包至项目工程内, 根据相应的 API 接口说 明,调用 jar 包相应方法实现用户授权及用户信息的获取。 六、接口及参数说明 6.1. 单点登录接口说明 用户通过url获得省网办大厅用户的tokenid及随机数,调用验证随机数接 口对随机数进行验证,并获取用户 uid及用户的所有信息。 单点登录接口主要提供如下功能:验证随机数及 tokenid的有效性、获取用户 相关信息。 6.1.1. 设置认证服务URL 服务名称 Map setSer
25、verUrl(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) 服务说明 获取所有用户属性 参数列表
26、 参数名称 参数说明 tokenld 登录后会话的Token random 使用generateRandom 函数返回的随机数 返回值 Map Key: status (错误码) Key: message (错误信息) Key: idcardnumber (证件号码) Key: useridcode (用户身份唯,标识码) Key: cn (用户姓名) Key: uid (用户的登录标识,值为用户登录名或证书唯 标识) Key: mail (邮件地址) Key: telephonenumber (电话号码) Key : credenceclass (
27、用户 本次登录时使用 的凭证类型, Credence_001表小使用证书登录,Credence_002表小使用密码 登录) Key: inetuserstatus (用户状态。Active 表示状态正常,InActive 表示状态非法(停用或注销)) Key: extproperties (扩展属性。扩展属性内部以map的方式保存 值,如果是多值,用逗号分隔。举例如下:如果扩展属性的英文名 是testExt ,贝^通过 map.get( " extproperties " ).get( 获取) Key: passwordmodifieddate (密力马修改日期)
28、 Key: usermodpwdflag (用户修改密码标志。 0表小默认密码需 要修改;1表示已经修改默认密码) createtime (创建 时间) “testExt " ) 备注 错误码: 0--成功 101--随机数已失效! 102--验证Token失败! 103--获取用户信息失败! 104--系统内部错误! 106--参数编码错误 107--服务连接错误! 108--用户认证失败! 109--用户状态异常! 110-请求地址/、存在! 使用此接口前需至少调用一次setServerUrl接口设置服务端URL 6.2. OAuth2
29、认证接口说明 6.2.1. 获取授权码 接口功能 获得授权码 url url/oauth2/authorize 参数 client_id : 应用向 am 预先申请的 client_id scope : app向am请求的属性,可以根据具体情况增加或者减 少,中间用空格分割(URL编码后是加号)。 redirect_uri :认证完成并且用户对app授权后返回的地址,此 地址可以得到grant_code 授权码。 response_type 固定为 code 返回值 grant_code : 授权码。 获取方式,例如 request.getParameter(&
30、quot;code") http请求方式 GET 6.2.2.获取 token 接口功能 通过授权码获得访问token url url/oauth2/access_token 参数 client_id : 应用向 am 预先申请的 client_id client_secret : 应用向am 预先申请的密钥 code :授权码 scope : app向am请求的属性,可以根据具体情况增加或者减 少,中间用空格分割(URL编码后是加号)。 redirect_uri :认证完成并且用户对app授权后返回的地址,此 地址可以得到grant_code 授权码。
31、 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.获取用户信息 接口功能
32、 通过访问token获得用户信息 url url/oauth2/tokeninfo 参数 access_token : 应用向 am 预先申请的 client_id 返回值 access_token :访问 token expires_in :后效期,单位是秒 token_type :犹得的 Token 尖型,Bearer 其他都是用户信息,例如"mail":"" 例如: {"uid":"demo123","mail":"","scope"
33、;:["uid","mail","cn","tele phoneNumber","userIdCode","uamsDepts","uniqueId"]," cn":"demo123","realm":"/","telephoneNumber":"1388888 888","userIdCode":"123","token_type":"Bearer","expires_i n”:59,"access_token":"882b5b8c-30b2-467c-90c7-fb0492 545aab","uniqueId":"demo1234”} 格式 JSON http请求方式 GET
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。