SSO单点登录
2021-08-03 18:44:57 48 举报
登录查看完整内容
基于CAS的sso单点登录原理
作者其他创作
大纲/内容
A服务无用户登录信息
用户登录请求
设置sso-client的cookies:CTC打开目标访问页http://client.sso.com/home
打开sso-client空白跳转页:跳转地址:http://client.sso.com/redirect?call=http://client.sso.com/home
http://server.sso.com/toke/exchange?serviceTicket=${ST}
用户登录认证通过:生成全局认证SSOTOKEN和A服务的票据交换SCTOKEN
SSO-server服务
浏览器
返回TOKEN
携带A服务cookies:TOKEN发起访问请求
返回A服务响应结果页
http://server.sso.com/checkLogin?call=http://client.sso.com/home
302跳转到A服务:设置认证中心cookies:SSOTOKEN携带跳转A服务地址和票据交换SCTOKEN
清除SSO-clientb集群token:CTC
http://clientb.sso.com/user/1
显示A服务页面
解析生成sso-client的cookies地址:http://client.sso.com/setCookies?serviceTicket=${ST}&call=http://client.sso.com/home
校验并删除ST生成CTC建立CTC与STC的映射关系
返回A服务TOKEN
302跳转B服务携带票据交换SCTOKEN
应用服务B
通过SCTOKEN交换生成B服务TOKEN
访问A系统
http://server.sso.com/login?call=http://client.sso.com/home
询问认证中心登录状态携带A服务跳转地址
http://client.sso.com/logout
http://client.sso.com/home
访问B服务页面
B服务无用户登录信息
http://clientb.sso.com/setCookies?serviceTicket=${ST}&call=http://clientb.sso.com/user/1
cookies:CTC存在且有效
携带SCTOKEN请求跳转到A服务
通过SCTOKEN交换生成A服务TOKEN
继续访问A服务页面
设置sso-server的cookies:STC打开sso-server空白跳转页跳转地址:http://client.sso.com/home携带ST
遍历清除SSO-client集群的token:CTC
显示用户登录页
SSO-client服务
打开sso-clientb空白跳转页:跳转地址:http://client.sso.com/redirect?call=http://client.sso.com/user/1
拼装校验用户认证中心是否登录的请求
302跳转到认证中心登录状态询问页携带B服务跳转地址
设置sso-client的cookies:CTC打开目标访问页http://clientb.sso.com/user/1
询问认证中心登录状态携带B服务跳转地址和SSOTOKEN
302跳转认证中心登录页携带A服务的跳转地址
清除SSO-client集群token:CTC
SSO-clientB服务
http://server.sso.com/checkLogin?call=http://clientb.sso.com/user/1cookies:STC
拼装跳转到sso-clientb的的请求
302跳转到认证中心登录状态询问页携带A服务跳转地址
认证中心
显示B服务页面
发起访问B服务请求
校验server.sso.com下存在STC生成clientb专用的ST
录入用户登录信息
请求跳转B服务携带票据交换SCTOKEN
http://client.sso.com/setCookies?serviceTicket=${ST}&call=http://client.sso.com/home
http://server.sso.com/loginPage?call=http://client.sso.com/home
打开sso-server空白跳转页:跳转地址:http://server.sso.com/redirect?needLogin=true&call=http://client.sso.com/home
发送A服务访问请求
用户认证中心未登录
cookies:CTC不存在或已失效
拼装跳转到sso-server登录页的请求地址
应用服务A
填写用户登录信息/提交登录表单
SSO-clienB服务
清除SSO-server集群token:STC
http://server.sso.com/logout
用户
返回CTC
校验server.ssp.com下不存在cookies:STC
清除SCTOKEN保存A服务TOKEN和SSOTOKEN的映射
http://clientb.sso.com/clientToken?clientToken=${CTC}
打开http://server.sso.com/loginPage页
打开目标访问页http://client.sso.com/user/1
打开sso-server空白跳转页:跳转地址:http://server.sso.com/redirect?service Ticket=${ST}&call=http://clientb.sso.com/user/1
登录认证通过生成STC生成与跳转业务系统对应的ST建立STC与ST的映射关系
A服务有用户登录信息
返回A服务响应结果页设置A服务cookies:TOKEN
返回B服务响应结果页设置B服务cookies:TOKEN
SSO-clien服务
清除SCTOKEN保存B服务TOKEN和SSOTOKEN的映射
http://client.sso.com/user/1cookies:CTC
认证中心已登陆生成B服务的票据交换SCTOKEN
0 条评论
回复 删除
下一页