这是一个流程(ofbiz的实现)
看一下一个实例:
Step 1. 一个user打开浏览器,发出对A Server的abc应用某个request。
abc判断到这个user对于本身来说是一个新session,是没有登陆过的,重定向到sso的登陆入口。
Step 2. user在sso登陆入口输入用户名,密码。
sso webapp进行用户名,密码验证,生成一个独一无二的ssoId,save对应的UserLogin,利用前面获得redirect参数构造一个这样的链接: “http://AServer/abc/control/autoLogin?ssoId=generatedSsoId”,进行重定向。
Step 3. 自动登陆AServer的abc应用
autoLogin是我们实现的一个request-map,其作用是利用ssoId去统一存储UserLogin SSO DB获得对应的UserLogin,做一个自动登陆。登陆完以后,还是和原来的OFBiz一样的处理机制,会读取session里前面save的内容,重定向到第一步发出的请求。
这个时候看起来还和原来的登陆方式没有什么区别,但是如果这个user继续操作:
Step 4. 发出对B Server的efg应用某个request。
efg判断到这个user对于本身来说是一个新的session,是没有登陆过的,重定向到sso的登陆入口。
Step 5. sso web app判断
sso web app会得知这个user前面已经在SSO登陆过,所有不用再次要求user登陆,利用ssoId, redirect参数构造一个这样的链接: “http://BServer/efg/control/autoLogin?ssoId=generatedSsoId”,进行重定向。
Step 6. 自动登陆BServer的efg应用
网络通行证
最新推荐文章于 2025-09-03 08:20:38 发布