单点登陆 SSO

article/2025/9/3 17:38:25

参考文章

同域下的单点登录

(sso.a.com、app1.a.com、app2.a.com)
统一通过sso.a.com 登录,但有以下两个问题:
1、Cookie是不能跨域的,我们Cookie的domain属性是sso.a.com,在给app1.a.com和app2.a.com发送请求是带不上的。
2、sso、app1和app2是不同的应用,它们的session存在自己的应用内,是不共享的。
解决:
在这里插入图片描述
1、sso登录以后,可以将Cookie的域设置为顶域,即.a.com,这样所有子域的系统都可以访问到顶域的Cookie。我们在设置Cookie时,只能设置顶域和自己的域,不能设置其他的域。比如:我们不能在自己的系统中给baidu.com的域设置Cookie。
2、这里就要把3个系统的Session共享,如图所示。共享Session的解决方案有很多,例如:Spring-Session。

不同域下的单点登录

在这里插入图片描述
CAS 为单点登录标准流程,具体如下:

  1. 用户访问app系统,app系统是需要登录的,但用户现在没有登录。
  2. 跳转到CAS server,即SSO登录系统,以后图中的CAS Server我们统一叫做SSO系统。 SSO系统也没有登录,弹出用户登录页。
  3. 用户填写用户名、密码,SSO系统进行认证后,将登录状态写入SSO的session,浏览器(Browser)中写入SSO域下的Cookie。
  4. SSO系统登录完成后会生成一个ST(Service Ticket),然后跳转到app系统,同时将ST作为参数传递给app系统。
  5. app系统拿到ST后,从后台向SSO发送请求,验证ST是否有效。
  6. 验证通过后,app系统将登录状态写入session并设置app域下的Cookie。

至此,跨域单点登录就完成了。以后我们再访问app系统时,app就是登录的。接下来,我们再看看访问app2系统时的流程。

  1. 用户访问app2系统,app2系统没有登录,跳转到SSO。
  2. 由于SSO已经登录了,不需要重新登录认证。
  3. SSO生成ST,浏览器跳转到app2系统,并将ST作为参数传递给app2。
  4. app2拿到ST,后台访问SSO,验证ST是否有效。
  5. 验证成功后,app2将登录状态写入session,并在app2域下写入Cookie。

这样,app2系统不需要走登录流程,就已经是登录了。SSO,app和app2在不同的域,它们之间的session不共享也是没问题的。


http://chatgpt.dhexx.cn/article/VF4naJot.shtml

相关文章

五、微服务版单点登陆系统(SSO)

微服务版单点登陆系统(SSO)实践 文章目录 微服务版单点登陆系统(SSO)实践一、单点登陆系统简介1. 背景分析2. 单点登陆系统概述3. 单点登陆系统解决方案设计 二、单点登陆系统初步设计1. 服务设计2. 工程结构设计 三、系统基础服务工程设计及实现1. 业务描述2. 表结构设计3. 工…

单点登陆(SSO)

一、背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。但随着企业的发展,用到的系统随之增多,运营人员在操作不同的…

08单点登陆+Oauth2

详情:如看不懂跳转此地 1.1单点登录系统 每个站点都实现了专用登录模块。各站点的登录状态相互不认可,各站点需要逐一手工登录 这样的系统,我们又称之为多点登陆系统。应用起来相对繁琐(每次访问资源服务都需要重新登录认证和授…

微服务版单点登陆系统(SSO)

单体架构中的用户的状态的存储是如何实现的? 单点登陆系统概述 单点登录,英文是 Single Sign On(缩写为 SSO)。即多个站点共用一台认证授权服务器,用户在其中任何一个站点登录后,可以免登录访问其他所有站点。而且&a…

SpringBoot跨系统单点登陆的实现

什么是单点登陆 单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,…

单点登陆的实现

王昱 yuwang881gmail.com 博客地址 http://yuwang881.blog.sohu.com 摘要 :单点登录( SSO )的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点…

CAS 单点登陆

一、Tomcat配置SSL 1. 生成 server key 以命令方式换到目录%TOMCAT_HOME%,在command命令行输入如下命令: keytool -genkey -alias tomcat_key -keyalg RSA -storepass changeit -keystore server.keystore -validity 3600 用户名输入域名,如localhos…

单点登陆的测试

今天做了个单点登陆 。 但是怎么测试呢? 下面请看详解: 源码中是这样的: /*** 单点登录改造* * param request* param response* return* throws IOException* throws HttpException* throws IOException*/RequestMapping(value "/rcbS…

LINUX单点登陆

1.在grub引导界面(如下图)按e进入编辑模式 2.按↓键,找到以linux16开头的行,在最后加上 rd.break(如下图,注意前面有一个空格) 3.按Ctrlx进入救援模式 4.重新挂载/sysroot为可读写模式,并切换根目录为/sysroot # mount -o remou…

java实现单点登陆(SSO)

java实现单点登陆(SSO) 网络域名必须完全一致,才代表同一站点。 域名映射 :访问后面的 会跳转到前面 单点登陆概念: 多系统,单一位置登录,实现多系统同时登陆。常出现在互联网和企业级平台中。…

OAuth2:单点登陆客户端

基于EnableOAuth2Sso实现 前面我们将验证服务器已经搭建完成了,现在我们就来实现一下单点登陆吧,SpringCloud为我们提供了客户端的直接实现,我们只需要添加一个注解和少量配置即可将我们的服务作为一个单点登陆应用,使用的是第四种…

单点登陆概述

概述 什么是单点登陆 单点登陆(single sign on),简称SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登陆一次就可以访问所以相互信任的应用系统。 单点登陆的实现方案 一般…

怎么做登陆(单点登陆)功能?

登陆是系统最基础的功能之一。这么长时间了,一直在写业务,这个基础功能反而没怎么好好研究,都忘差不多了。今天没事儿就来撸一下。 以目前在接触的一个系统为例,来分析一下登陆该怎么做。 简单上个图(有水印。因为穷所…

SSO单点登陆

1 SSO简介 1.1 什么是SSO 单点登录(SingleSignOn,SSO),在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。单点登录常用的协议包括 CAS、OAuth、OpenID Connect、SAML。 例如:百度旗下有很多的产品&#xff…

sso单点登陆实现

多系统实现单点登录方案:SSO 单点登录 一、什么是单点登录SSO(Single Sign-On) SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验…

单点登陆和无状态登陆

很多人都听说过单点登陆。今天我们来说说什么是单点登陆和无状态登陆。 传统的项目都是使用session来验证登陆,但是在分布式项目中使用session是不行的。因为每个服务都是一个独立的项目,那么我们将服务拆分,肯定会有一个登陆的模块。如果将用…

windows文件句柄修改

找到如下注册表分支: HKEY_LOCAL_MACHINE – SOFTWARE – – Microsoft – – – Windows NT – – – – CurrentVersion – – – – – Windows 在右侧窗格中可以看到名为“GDIProcessHandleQuota”与“USERProcessHandleQuota”的注册表项; GDIProcessHandleQuo…

Linux 查看文件句柄信息

查看系统的最大文件句柄数和文件句柄的使用者PID ulimit -n查看当前系统的最大句柄数显示如下 ulimit命令详解 ulimit -HSn x设置当前系统的文件句柄数为x 以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄…

Windows查看文件句柄

2019独角兽企业重金招聘Python工程师标准>>> 图形界面方式 打开任务管理器 2. 性能tab,点击链接打开资源监视器; 3. 现在cpu tab,关联的句柄后面的输入框可以输入你要搜索的文件路径,可模糊匹配; 命令方式 Windows系统本身并不内置命令查看句…

linux文件句柄数

1、问题阐述: too many open files:顾名思义即打开过多文件数。 不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常…