该模式依托服务体系的OAuth认证服务,接入的平台有自身的用户体系和认证服务,平台可以使用自身账号登录,也可以使用服务体系的账号进行登录;用户第一次使用体系账号在平台登录时,在平台形成账号绑定关系,以后登录则无需再次绑定。
目标:Oauth单点登录主要适用于接入到国家服务体系的平台,依赖体系的用户数据进行单点登录。
特点:平台拥有自己的登录界面,但是需要使用体系的用户账号进行登录,可以使用体系提供的Oauth单点登录。
第三方平台接入流程完毕后,需要拿到oauth的登录地址和oauth的LOGO图片进行跳转到登录认证页面。
在第三方平台中加载服务体系logo(logo平台可以自己设定大小和样式)和oauth链接,logo图标如下:
Oauth链接地址:
n 链接:
http://IP:PORT/bmp-oauth?accessTicket=671f91b8486a4d0fa077d931fe517418&redirect_uri=平台回跳url
n 参数说明:
accessTicket:调用体系接口服务获取每次访问Oauth需要产生的临时授权码,使用一次失效,下面会详细介绍接口的使用。
redirect_uri:登录成功后跳转到第三方平台的地址,也是平台接入时候的url地址。
n 服务体系logo图标放置在第三放平台的例子如下:
老师、学生等用户打开第三方平台后,需要通过服务体系的账号登录到第三放平台,点击服务体系logo标记可以跳转到oauth登录页面,如下图:
登录说明:
1.输入体系平台帐号和密码;
2.验证用户信息和配置参数成功重定向到平台的回调地址;
3.回调地址格式:
http://ip:port?usessionid=971a803c-fd86-11e6-a5c1-286ed488c66c&userId=001
回调地址(http://ip:port):是第一步中的回调地址redirect_uri。
usessionid:体系用户成功登录后的会话标识。
userId:用户ID。
应用调用体系接口的第一步,访问令牌是服务商使用接口的凭证,通过访问令牌服务商可以使用自身权限下的各种接口。
http://IP:PORT/apigateway/getAccessToken
Post请求参数:
A. appId:应用id,申请应用时系统会给出APPID和APPKEY;
B. timeStamp:当前时间戳;
C. keyInfo:根据Hmac算法APPID+APPKEY+timeStamp的加密数据。
D. sysCode:系统来源编码,平台接入的区域编码或者机构ID。
具体API请参照《国家公共服务体系对外接口规范》
平台每次访问Oauth需要先获取临时访问码。
调用接口信息如下:
n 请求地址:
http://IP:PORT/oauth/createOauthTicket?accessToken=ACCESS_TOKEN
n 应答报文:
{
"accessTicket": "671f91b8486a4d0fa077d931fe517418",
"retCode": "000000",
"retDesc": "获取accessTicket成功"
}
平台根据Oauth成功登录后回调的参数,调用体系开放接口服务可以获取登录用户的信息。
调用接口信息如下:
n 请求地址:
http://IP:PORT/userSession/getLoginUserInfo?accessToken=ACCESS_TOKEN
n 请求参数:
usessionId:平台从回调地址的参数中获取
n 请求报文:
{
"usessionId": "9d82a9ca-8dfa-4d3f-8834-43887a73c2e2"
}
n 应答报文:
{
"retCode": "000000",
"retDesc": "success",
"data": {
"userId": "0040032E20184955GHJHK9EACA1501F8F",
"name": "周力*",
"gender": "1",
"dafaultIdentity": "1"
}
}