【实践篇】基于CAS的单点登录实践之路 | 您所在的位置:网站首页 › 京东万家系统客服 › 【实践篇】基于CAS的单点登录实践之路 |
在此说明一下,因为登录系统的用户体系在不同的系统中,所以我在设计SSO统一登录认证的时候,把SSO系统与业务系统结构出来。而用户体系有两套,一套叫做采方用户体系,一套叫做供方用户体系。所以才会有如图所示的SSO Server服务,他本身不负责用户管理,但会通过统一标准接口的方式实现控制反转,实现对用户服务的调用。 2. 单点登录时序图 时序图如下: 如图所示,时序图标识的是两个系统通过SSO服务,实现了单点登录。 3. 单点登录核心接口说明 3.1 sso认证跳转接口 调用说明: 由应用侧发起调用认证中心的接口。 URL地址: https:// sso.com?appId=***&tenantType=1&redirectUri=*** 请求方式:302重定向 参数说明: appId: 对接SSO认证中心的应用唯一标识,由SSO认证中心通过线下的方式颁发给各个应用系统。 tenantType: 标记是供方登录还是采方登录。采方为1,供方为2. RedirectUri: 应用回调地址。 3.2 重定向获取临时令牌code接口 调用说明: 有认证中心发起,应用侧需实现的接口。认证中心通过302重定向,将code传给应用侧,应用侧自行发起通过临时令牌code换取accessTokenInfo。 URL地址: https://应用域名?code=*** 请求方式:GET 参数说明: Code: 临时令牌,有效时间5min 3.3 获取accessTokenInfo接口 调用说明 由应用侧发起调用认证中心的接口。通过该接口可以获取accessTokenInfo信息,然后系统自行生成本系统session信息。 URL地址: https://sso.com/api/token/create?grantType=authorization_code&appId=yuncai&code=*** 请求方式:GET 参数说明: appId: 对接SSO认证中心的应用唯一标识,由SSO认证中心通过线下的方式颁发给各个应用系统。 code: 临时令牌,需加密 加密规则如下: 返回参数: { “accessToken”: “****”, //token令牌 “expiresIn”: 7200, //过期时间 “user”: { “username”: “zhangsan”, “fullName”: “张三”, “userId”: “1212”, “phone”: “13100000000”, “email”: [email protected], “tenantId”: “S2131123”, “tenantType”: 1 } } 3.4 刷新Token接口 调用说明: 由应用侧发起调用认证中心的接口。当token快到失效期时,通过该接口可以刷新accessTokenInfo信息,然后系统自行生成本系统session信息。 URL地址: https://sso.com/api/token/refresh?appId=yuncai&accessToken=*** 请求方式:GET 参数说明: appId: 对接SSO认证中心的应用唯一标识,由SSO认证中心通过线下的方式颁发给各个应用系统。 accessToken: 需要刷新的token值。 4. 单点登出逻辑 有单点登录,也会有单点登出,这样才会形成业务闭环,对于单点登出逻辑,基本类似登录的逆操作,时序图如下: 5. 单点登出核心接口说明 5.1 登出sso认证中心跳转接口 调用说明: 由应用侧发起调用认证中心的接口。 URL地址: https://sso.com/logout?redirectUri=*** 请求方式:GET 参数说明 RedirectUri: 应用回调地址。 5.2 应用系统退出接口 调用说明 有认证中心发起,应用侧需实现的接口。通过该接口触发个应用系统清除缓存和session相关信息,实现系统登出。 URL地址: https://应用系统域名/ssoLogout 请求方式:GET header: logoutRequest:=accessToken 总结对于CAS这种单点登录的架构,他是非常依赖于cookie的安全性的。所以CAS的安全性也在一定程度上取决于cookie的安全性,所有增强cookie安全性的措施,对于增强CAS都是有效的。 最后提一句,一定要使用HTTPS协议哦。返回搜狐,查看更多 |
CopyRight 2018-2019 实验室设备网 版权所有 |