网站用户单点登录系统解决方案

网站用户单点登录系统解决方案网站用户单点登录系统解决方案一 背景 在网站建设的过程中 多个应用系统一般是在不同的时期开发完成的 各应用系统由于功能侧重 设计方法和开发技术有所不同 也就形成了各自独立的用户库和用户认证体系 随着网站的发展 会出现这样的用户群体 以其中的一个用户为例 他 她 使用网站的多个应用系统 但在每个应用系统中有独立的账号 没有一个整体上的网站用户账号的概念 进入每一个应用系统前都需要以该应用

网站用户单点登录系统解决方案

一、 背景

网站用户单点登录系统解决方案
图 1.1 网站用户要求单点登录

二、 分析

  在多个拥有各自独立的用户体系的应用系统间实现单点登录,我们要考虑以下的问题:

  • 单点登录系统的实现在各应用系统都采用B/S模式这一前提下进行。
  • 需要在各应用系统间统一用户认证标志,用户登录后可以得到用户令牌,各应用系统认可统一的用户令牌。
  • 用户令牌应当是安全加密的,并且要限定时效期。
  • 由于每个应用系统都有自己的用户库,一个用户可能在不同的应用系统中使用不同的账号,因此每个要使用多个应用系统的用户要设置一个统一的用户账号并以此账号进行单点登录,该账号与该用户在各应用系统中的一个账号形成映射关系。
  • 各应用系统可能属于不同的域,因此要实现跨域的单点登录。
  • 已经上线运行的应用系统需要进行改造来支持单点登录,正在开发的应用系统则可以在开发阶段增加对单点登录的支持,但应用系统之间应该是松耦合。
  • 由于各应用系统往往都已经处于稳定运行期,单点登录系统的实现应该对各应用系统的登录认证体系冲击最小,各应用系统原有的登录流程依然可用。
  • 一些应用服务器平台虽然提供对单点登录的支持,但要求应用系统用户认证的设计符合其规范,这对已经处于运行期的应用系统来说难以实现。

三、 设计

  以下是系统的整体设计结构:

网站用户单点登录系统解决方案

图 3.1 系统结构图

  我们首先设计单点登录管理应用:

  用户在其中注册一个单点登录账号,然后针对每个应用系统绑定一个该应用系统中原有的账号,并维护这些注册和绑定信息。绑定的过程需要单点登录管理应用服务器到应用系统服务器上验证用户提供的该应用系统中原有账号和密码,应用服务器均以相同的Web Service接口提供该功能支持。

3.2 用户单点登录流程

   之后以用户单点登录管理应用和令牌传输识别的标准来实现用户单点登录流程。

1、用户访问应用系统。

网站用户单点登录系统解决方案

图 3.3 用户单点登录流程 – 步骤一

网站用户单点登录系统解决方案
图 3.4 用户单点登录流程 – 步骤二
网站用户单点登录系统解决方案
图 3.5 用户单点登录流程 – 步骤三
网站用户单点登录系统解决方案
图 3.6 用户单点登录流程 – 步骤四
网站用户单点登录系统解决方案
图 3.7 用户单点登录流程 – 步骤五

  

  如果用户在访问应用系统之前已经在单点登录服务器上登录过,第二步到第四布对用户来说就是透明的,用户感觉只是向应用系统发出了访问请求,然后得到了页面反馈。


四、 实现

(略)

五、 总结

  本方案设计的用户单点登录系统做到了:

  • 真正了实现单点登录、全网访问,方便用户的使用过程。
  • 各系统之间耦合度低,应用系统的改造不破坏其固有流程和结构,整个系统的实施过程安全平滑。
  • 统一了单点登录服务器到应用服务器的用户认证信息访问标准,统一了令牌安全加密的传输和识别标准,为将来更多应用系统提供了统一的单点登录框架。
  • 整合了过去分散在各应用系统中虽然有内在关联却难以判别的用户信息资源,为更进一步的用户个性化服务打下了基础
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228752.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午6:17
下一篇 2026年3月16日 下午6:17


相关推荐

  • 数据滤波算法集合「建议收藏」

    数据滤波算法集合「建议收藏」由于要进行数据处理,就利用网络资源总结各种滤波方法以便日后查阅。一、限幅滤波法实现步骤:根据经验法选择最大偏差值E。|value_now-value_before|<=E,value_now有效,否则其无效且将其舍弃,最后令value_now=value_before。实现程序:#defineE10//value取值范围为90~110intv

    2022年5月3日
    108
  • setContentView源码分析[通俗易懂]

    setContentView源码分析[通俗易懂]publicclassActivityTestextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_test);}}↓…

    2022年6月26日
    29
  • Lunix历史及如何学习

    Lunix历史及如何学习1.Lunix是什么1.1Lunix是操作系统还是应用程序Lunix是一套操作系统,它提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭Unix良好的传统来的,所以相当的稳定而功能强大!Lunix具有核心和系统呼叫两层。Torvalds先生在1991年写出Linux核心的时候,其实该核心仅能『驱动386所有的硬件』而已,所…

    2022年10月3日
    4
  • Pycharm控制台输出乱码——已解决

    Pycharm控制台输出乱码——已解决Pycharm 控制台输出乱码点开设置 将编码格式选为 GBK

    2026年3月19日
    3
  • pycharm输出结果乱码

    pycharm输出结果乱码按以上步骤将项目编码改为 GBK 即可解决

    2026年3月18日
    1
  • log4j2 debug_log4j原理

    log4j2 debug_log4j原理长话短说吧。相信大家已经被Log4j2的重大漏洞刷屏了,估计有不少小伙伴此前为了修bug已经累趴下了。很不幸,我的小老弟小二的SpringBoot项目中恰好用的就是Log4j2,版本特喵的还是2.14.1,在这次漏洞波及的版本范围之内。第一时间从网上得知这个漏洞的消息后,小二吓尿了。赶紧跑过来问老王怎么解决。老王先是给小二提供了一些临时性的建议,比如说:JVM参数添加-Dlog4j2.formatMsgNoLookups=truelog4j2.formatMsgNoLooku

    2025年7月2日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号