sso 登录,网页跳转的实现方式

简介: 原文 http://www.cnblogs.com/jake1/archive/2013/04/28/sso_page.html 在昨天的博客中http://www.cnblogs.com/jake1/archive/2013/04/28/sso_scheme.

原文 http://www.cnblogs.com/jake1/archive/2013/04/28/sso_page.html

在昨天的博客中http://www.cnblogs.com/jake1/archive/2013/04/28/sso_scheme.html,我们介绍了几种单点登录的方案.不过那些方案我都没有实现过,只是在自己的一些客户公司里见过,下面我就要亲自介绍,我亲身设计和参与的sso方案.

  首先,我们看看设计图吧.

注:1)红色部分为加密传送的内容;

    2)绿色部分为门户系统实现的流程;

    3)灰色部分为外部应用系统原有已经实现的流程;

    4)蓝色部分为外部应用系统需要增加或修改的流程;

 

针对上面的图:流程看如下解释.

 

  • 场景一.用户从门户单点登录进入外部应用系统(参看流程图Step1、Step2

Step1

1)   用户在浏览器输入门户的地址进入门户系统;

2)   用户输入门户系统的用户名和密码;

3)   认证中心向AD发起登录认证;

4)   AD认证失败返回门户系统的登录页面,系统记录日志并提示错误信息;AD认证成功,门户系统登录成功转到步骤6);

5)   用户重新输入门户系统的用户名和密码,返回步骤3)重新登录;

6)        门户系统登录成功跳转到登录来源页,如果没有登录来源页跳转到门户系统首页;

Step2

1)   用户在门户系统的页面,点击外部应用系统的链接,进行单点登录流程;

2)   门户系统先判断门户登录凭证是否失效;

3)   门户系统登录凭证失效返回Step1的 门户系统登录流程;

4)   门户系统登录凭证没有失效,判断单点登录的系统是否是集成AD;

5)   集成AD登录的系统直接获取当前用户名和密码;

6)   没有集成AD登录的系统,通过用户映射关系获取外部应用系统的用户名和密码;

7)   如果不存在对应的外部应用系统的用户映射关系(没有做初始化外部应用系统的用户映射关系情况),弹出单点登录映射信息填写页,用户填写外部应用系统的用户名和密码;

8)   如果存在对应的外部应用系统的用户映射关系,获取外部应用系统的用户名和密码;

9)   对用户填写的外部应用系统的用户名和密码,门户需要记录;

10) 把外部应用系统的用户名和密码加密(对称加密)(分别按门户系统与外部接入系统约定方式进行加密解密);

11) 把加密后的用户名和密码以参数形式传递给外部应有系统(外部应用系统需要实现接受用户名和密码的接口);

12) 外部应用系统先运行原有的登录认证流程,发现在原有认证流程无法使系统登录的时候,从参数读取用户凭证,也不存在调用门户系统登录请求接口;

13) 能获取用户凭证,对用户凭证进行解密(分别按门户系统与外部接入系统约定方式进行加密解密);

14) 使用用户凭证进行外部应用系统的登录认证;

15) 认证成功转到外部应用系统页面,并调用门户记录日志

16) 认证失败调用门户系统登录请求接口

17) 调用门户登录请求会重新执行步骤2);

  • 场景二.用户在浏览器直接进入外部应用系统(参看流程图Step3

Step3

1)   用户在浏览器直接输入外部应用系统的地址;

2)   外部应用系统实现的流程和Step2的步骤12)一致,先实现外部应有系统的登录认证流程,若没有不能登录系统,读取参数,都读取不到用户凭证向门户系统发出登录请求(参看接口3.6.2),若能读取对用户凭证解密,进行外部应用系统的认证登录;

3)   认证成功转到外部应用系统页面,并调用门户记录日志

4)   认证失败调用门户系统登录请求接口

   这方案的优点是可以实现双向登录,而且针对所有web站点都可以实现单点登录..缺点是实现比较复杂,而且需要更改其他系统.

   至于代部分码我将会在接下来的博客中介绍.敬请各位关注.

目录
相关文章
|
存储 运维 Linux
【MinIO异常】Storage reached its minimum free drive threshold 的解决方案
【MinIO异常】Storage reached its minimum free drive threshold 的解决方案
1329 0
|
人工智能 自然语言处理 数据库
云上玩转Qwen3系列之二:PAI-LangStudio搭建联网搜索和RAG增强问答应用
本文详细介绍了如何使用 PAI-LangStudio 和 Qwen3 构建基于 RAG 和联网搜索 的 AI 智能问答应用。该应用通过将 RAG、web search 等技术和阿里最新的推理模型 Qwen3 编排在一个应用流中,为大模型提供了额外的联网搜索和特定领域知识库检索的能力,提升了智能回答的效果,减少了幻觉。开发者可以基于该模板进行灵活扩展和二次开发,以满足特定场景的需求。
|
机器学习/深度学习 大数据 数据管理
一图尽览:AllData数据中台商业版与开源版功能对比
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
数据库
SqlServer如何给表添加新的字段以及字段注释
SqlServer如何给表添加新的字段以及字段注释
776 1
|
Python
Jetson 错误(一):Illegal instruction (core dumped)解决
在NVIDIA Jetson平台上运行Python时遇到"Illegal instruction (core dumped)"错误的解决方法,包括设置环境变量和确保软件包版本兼容性。
1559 0
|
安全 前端开发 JavaScript
|
数据采集 数据可视化 数据挖掘
Python DataFrame 中的异常值检测与处理
【5月更文挑战第19天】在数据分析中,异常值检测与处理至关重要,因为它可能显著影响结果。常用检测方法包括统计指标(如均值和标准差)及箱线图。当发现异常值时,可选择删除、修正或标记。删除直接但可能导致数据量减少;修正如用中位数替换;标记则便于后续分析。实际应用中,需根据数据特性和分析目标选择合适方法,并可能结合多种方式判断。异常值处理能提升数据质量和分析可靠性。
979 2
|
应用服务中间件 Linux
在linux下查看websphere版本
这些步骤将帮助你查看WebSphere的版本信息。确保进入正确的安装目录,并查找包含版本号的文件。具体的文件名和位置可能因不同的WebSphere版本而有所不同。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
394 0
|
前端开发 JavaScript Java
Springboot框架整合jsp开发【干货满满】
该文介绍了如何在Spring Boot中集成JSP,需包含`spring-boot-starter-web`、`tomcat-embed-jasper`和`jstl`三个依赖。配置Spring Boot寻找JSP的位置,设置`spring.mvc.view.prefix`为`/WEB-INF/jsp/`,`spring.mvc.view.suffix`为`.jsp`。JSP文件应放在`src/main/webapp/WEB-INF/jsp/`下。
1274 0
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习中卷积神经网络(CNN)的讲解及图像处理实战(超详细 附源码)
PyTorch深度学习中卷积神经网络(CNN)的讲解及图像处理实战(超详细 附源码)
669 0