单点登录设计原理
/j2eeweiwei/article/details/23813 32单点登录设计原理分类:权限控管Java 2008-05-04 13:12 244人阅读评论(0) 收藏举报本文以某新闻单位多媒体数据库系统为例,提出建立企业用户认证中心,实现基于安全策略的统一用户管理、认证和单点登录,解决用户在同时使用多个应用系统时所遇到的重复登录问题。
随着信息技术和网络技术的迅猛发展,企业内部的应用系统越来越多。
比如在媒体行业,常见的应用系统就有采编系统、排版系统、印刷系统、广告管理系统、财务系统、办公自动化系统、决策支持系统、客户关系管理系统和网站发布系统等。
由于这些系统互相独立,用户在使用每个应用系统之前都必须按照相应的系统身份进行登录,为此用户必须记住每一个系统的用户名和密码,这给用户带来了不少麻烦。
特别是随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。
针对于这种情况,统一用户认证、单点登录等概念应运而生,同时不断地被应用到企业应用系统中。
统一用户管理的基本原理一般来说,每个应用系统都拥有独立的用户信息管理功能,用户信息的格式、命名与存储方式也多种多样。
当用户需要使用多个应用系统时就会带来用户信息同步问题。
用户信息同步会增加系统的复杂性,增加管理的成本。
例如,用户X需要同时使用A系统与B系统,就必须在A系统与B系统中都创建用户X,这样在A、B任一系统中用户X的信息更改后就必须同步至另一系统。
如果用户X需要同时使用10个应用系统,用户信息在任何一个系统中做出更改后就必须同步至其他9个系统。
用户同步时如果系统出现意外,还要保证数据的完整性,因而同步用户的程序可能会非常复杂。
统一存储(UUMS)、分布授权:解决用户同步问题的根本办法是建立统一用户管理系统(UUMS)。
UUMS统一存储所有应用系统的用户信息,应用系统对用户的相关操作全部通过UUMS完成,而授权等操作则由各应用系统完成,即统一存储、分布授权。
UUMS应具备以下基本功能:1.用户信息规范命名、统一存储,用户ID全局惟一。
用户ID犹如身份证,区分和标识了不同的个体。
2.UUMS向各应用系统提供用户属性列表,如姓名、电话、地址、邮件等属性,各应用系统可以选择本系统所需要的部分或全部属性。
3.应用系统对用户基本信息的增加、修改、删除和查询等请求由UUMS处理。
4.应用系统保留用户管理功能,如用户分组、用户授权等功能。
5.UUMS应具有完善的日志功能,详细记录各应用系统对UUMS的操作。
统一用户认证是以UUMS为基础,对所有应用系统提供统一的认证方式和认证策略,以识别用户身份的合法性。
统一用户认证应支持以下几种认证方式:匿名、用户名密码、PK/CA数字、IP地址、时间段、访问次数1. 匿名认证方式: 用户不需要任何认证,可以匿名的方式登录系统。
2. 用户名/密码认证: 这是最基本的认证方式。
3. PKI/CA数字证书认证: 通过数字证书的方式认证用户的身份。
4. IP地址认证: 用户只能从指定的IP地址或者IP地址段访问系统。
5. 时间段认证: 用户只能在某个指定的时间段访问系统。
6. 访问次数认证: 累计用户的访问次数,使用户的访问次数在一定的数值范围之内。
以上认证方式应采用模块化设计,管理员可灵活地进行装载和卸载,同时还可按照用户的要求方便地扩展新的认证模块。
认证策略是指认证方式通过与、或、非等逻辑关系组合后的认证方式。
管理员可以根据认证策略对认证方式进行增、删或组合,以满足各种认证的要求。
比如,某集团用户多人共用一个账户,用户通过用户名密码访问系统,访问必须限制在某个IP地址段上。
该认证策略可表示为: 用户名/密码“与”IP地址认证。
PKI/CA数字证书认证虽不常用,但却很有用,通常应用在安全级别要求较高的环境中。
PKI (Public Key Infrastructure)即公钥基础设施是利用公钥理论和数字证书来确保系统信息安全的一种体系。
在公钥体制中,密钥成对生成,每对密钥由一个公钥和一个私钥组成,公钥公布于众,私钥为所用者私有。
发送者利用接收者的公钥发送信息,称为数字加密,接收者利用自己的私钥解密; 发送者利用自己的私钥发送信息,称为数字签名,接收者利用发送者的公钥解密。
PKI 通过使用数字加密和数字签名技术,保证了数据在传输过程中的机密性(不被非法授权者偷看)、完整性(不能被非法篡改)和有效性(数据不能被签发者否认)。
数字证书有时被称为数字身份证,数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。
身份验证机构的数字签名可以确保证书信息的真实性。
完整的PKI系统应具有权威认证机构CA(Certificate Authority)、证书注册系统RA (Registration Authority)、密钥管理中心KMC(Key Manage Center)、证书发布查询系统和备份恢复系统。
CA是PKI的核心,负责所有数字证书的签发和注销; RA接受用户的证书申请或证书注销、恢复等申请,并对其进行审核; KMC负责加密密钥的产生、存贮、管理、备份以及恢复; 证书发布查询系统通常采用OCSP(Online Certificate Status Protocol,在线证书状态协议)协议提供查询用户证书的服务,用来验证用户签名的合法性; 备份恢复系统负责数字证书、密钥和系统数据的备份与恢复。
单点登录单点登录(SSO,Single Sign-on)是一种方便用户访问多个系统的技术,用户只需在登录时进行一次注册,就可以在多个系统间自由穿梭,不必重复输入用户名和密码来确定身份。
单点登录的实质就是安全上下文(Security Context)或凭证(Credential)在多个应用系统之间的传递或共享。
当用户登录系统时,客户端软件根据用户的凭证(例如用户名和密码)为用户建立一个安全上下文,安全上下文包含用于验证用户的安全信息,系统用这个安全上下文和安全策略来判断用户是否具有访问系统资源的权限。
遗憾的是J2EE规范并没有规定安全上下文的格式,因此不能在不同厂商的J2EE产品之间传递安全上下文。
目前业界已有很多产品支持SSO,如IBM的WebSphere和BEA的WebLogic,但各家SSO 产品的实现方式也不尽相同。
WebSphere通过Cookie记录认证信息,WebLogic则是通过Session共享认证信息。
Cookie是一种客户端机制,它存储的内容主要包括: 名字、值、过期时间、路径和域,路径与域合在一起就构成了Cookie的作用范围,因此用Cookie方式可实现SSO,但域名必须相同;Session是一种服务器端机制,当客户端访问服务器时,服务器为客户端创建一个惟一的SessionID,以使在整个交互过程中始终保持状态,而交互的信息则可由应用自行指定,因此用Session方式实现SSO,不能在多个浏览器之间实现单点登录,但却可以跨域。
实现SSO有无标准可寻?如何使业界产品之间、产品内部之间信息交互更标准、更安全呢?基于此目的,OASIS(结构化信息标准促进组织)提出了SAML解决方案(有关SAML的知识参看链接)。
用户认证中心实际上就是将以上所有功能、所有概念形成一个整体,为企业提供一套完整的用户认证和单点登录解决方案。
一个完整的用户认证中心应具备以下功能:1. 统一用户管理。
实现用户信息的集中管理,并提供标准接口。
2. 统一认证。
用户认证是集中统一的,支持PKI、用户名/密码、B/S和C/S等多种身份认证方式。
3. 单点登录。
支持不同域内多个应用系统间的单点登录。
用户认证中心提供了统一认证的功能,那么用户认证中心如何提供统一授权的功能呢?这就是授权管理中,其中应用最多的就是PMI。
PMI(Privilege Management Infrastructure,授权管理基础设施)的目标是向用户和应用程序提供授权管理服务,提供用户身份到应用授权的映射功能,提供与实际应用处理模式相对应的、与具体应用系统开发和管理无关的授权和访问控制机制,简化具体应用系统的开发与维护。
PMI是属性证书(Attribute Certificate)、属性权威(Attribute Authority)、属性证书库等部件的集合体,用来实现权限和证书的产生、管理、存储、分发和撤销等功能。
PMI以资源管理为核心,对资源的访问控制权统一交由授权机构统一处理,即由资源的所有者来进行访问控制。
同公钥基础设施PKI相比,两者主要区别在于: PKI证明用户是谁,而PMI证明这个用户有什么权限,能干什么,而且PMI可以利用PKI为其提供身份认证。
单点登录通用设计模型图2是统一用户认证和单点登录通用设计模型,它由以下产品组成:1. PKI体系: 包括CA服务器、RA服务器、KMC和OCSP服务器。
2. AA管理服务器: 即认证(Authentication)和授权(Authorization)服务器,它为系统管理员提供用户信息、认证和授权的管理。
3. UUMS模块: 为各应用系统提供UUMS接口。
4. SSO: 包括SSO代理和SSO服务器。
SSO代理部署在各应用系统的服务器端,负责截获客户端的SSO请求,并转发给SSO服务器,如果转发的是OCSP请求,则SSO服务器将其转发给OCSP服务器。
在C/S方式中,SSO代理通常部署在客户端。
5. PMI: 包括PMI代理和PMI服务器。
PMI代理部署在各应用系统的服务器端,负责截获客户端的PMI请求,并转发给PMI服务器。
6. LDAP服务器: 统一存储用户信息、证书和授权信息。
为判断用户是否已经登录系统,SSO服务器需要存储一张用户会话(Session)表,以记录用户登录和登出的时间,SSO服务器通过检索会话表就能够知道用户的登录情况,该表通常存储在数据库中。
AA系统提供了对会话的记录、监控和撤消等管理功能。
为保证稳定与高效,SSO、PMI和OCSP可部署两套或多套应用,同时提供服务。
链接SAMLSAML(Security Assertion Markup Language,安全性断言标记语言)是一种基于XML的框架,主要用于在各安全系统之间交换认证、授权和属性信息,它的主要目标之一就是SSO。
在SAML框架下,无论用户使用哪种信任机制,只要满足SAML的接口、信息交互定义和流程规范,相互之间都可以无缝集成。
SAML规范的完整框架及有关信息交互格式与协议使得现有的各种身份鉴别机制(PKI、Kerberos和口令)、各种授权机制(基于属性证书的PMI、ACL、Kerberos的访问控制)通过使用统一接口实现跨信任域的互操作,便于分布式应用系统的信任和授权的统一管理。
ruoyi+cas 单点登录原理
ruoyi+cas 单点登录原理随着互联网的快速发展和信息化的进程,用户管理和身份验证等安全问题成为了企业和机构面临的重要挑战。
为了解决这一问题,单点登录(Single Sign-On,简称SSO)技术应运而生。
ruoyi+cas 单点登录作为一种主流的SSO解决方案,广泛应用于各种网络应用系统中。
本文将对ruoyi+cas 单点登录的原理进行分析与讲解,帮助读者更加深入地了解该技术。
一、ruoyi+cas 单点登录的概念1. 单点登录的定义单点登录是指用户在一次登录后,即可访问多个相互信任的应用系统,而无需多次输入身份验证信息。
这大大提高了用户的使用体验,同时也简化了企业和机构的管理工作。
2. ruoyi+cas 单点登录的特点ruoyi+cas 单点登录是基于CAS(Central Authentication Service)协议开发的,具有以下特点:- 中心化的用户身份认证- 统一的登录界面- 应用系统与CAS服务器之间进行单点登录认证二、ruoyi+cas 单点登录的工作原理1. 传统登录认证流程在没有单点登录的情况下,用户每次需要访问一个新的应用系统时都需要进行登录认证。
这导致了用户需要记住多个不同的账号和密码,极大影响了用户体验。
2. ruoyi+cas 单点登录的认证流程ruoyi+cas 单点登录将用户的身份认证集中到CAS服务器上,实现了用户在第一次登录后即可访问其他应用系统的功能。
其认证流程如下:- 用户通过浏览器访问某一应用系统,但未登录- 应用系统检测到用户未登录,重定向至CAS服务器进行认证- 用户在CAS服务器上输入账号和密码进行认证- 认证成功后,CAS服务器产生票据并将用户重定向回原应用系统- 应用系统通过票据与CAS服务器进行交互,验证用户身份- 验证成功后,用户被认为已登录并可以正常使用应用系统三、ruoyi+cas 单点登录的实现步骤1. CAS服务器的部署首先需要搭建CAS服务器,这可以采用官方提供的CAS Server,也可以使用ruoyi+cas的改进版CAS Server。
keycloak单点登录原理
Keycloak 单点登录原理解析什么是单点登录?单点登录(Single Sign-On,简称 SSO)是一种身份认证和授权机制,允许用户使用一组凭据(如用户名和密码)登录到多个应用程序或系统中,而不需要在每个应用程序中单独进行身份验证。
在单点登录中,用户只需要登录一次,然后可以无缝地访问其他受信任的应用程序,而无需再次输入凭据。
Keycloak 简介Keycloak 是一个开源的身份和访问管理解决方案,可以为应用程序提供单点登录、身份验证和授权服务。
Keycloak 提供了一组 RESTful API 和前端界面,可以用于管理用户、角色、资源等。
它支持 OpenID Connect、OAuth 2.0 和 SAML 等标准协议,可以与各种应用程序和身份提供商集成。
Keycloak 的单点登录原理基于 OpenID Connect 和 OAuth 2.0 协议,下面将详细介绍其基本原理。
OpenID Connect 原理OpenID Connect(简称 OIDC)是建立在 OAuth 2.0 协议之上的身份认证协议,它扩展了 OAuth 2.0,添加了身份认证的功能。
OIDC 使用 JSON Web Token(JWT)作为身份令牌,以便在不同的应用程序之间传递和验证身份信息。
下面是 OpenID Connect 的基本原理:1.用户访问客户端应用程序,并尝试进行身份验证。
2.客户端应用程序将用户重定向到 Keycloak 的身份验证服务器。
3.用户在 Keycloak 的登录页面上输入用户名和密码。
4.Keycloak 验证用户的凭据,并生成一个身份令牌(ID Token)和访问令牌(Access Token)。
5.Keycloak 将身份令牌和访问令牌返回给客户端应用程序。
6.客户端应用程序使用身份令牌和访问令牌来验证用户的身份和访问权限。
7.客户端应用程序可以通过访问令牌来访问受保护的资源服务器。
单点登录实现原理
单点登录实现原理1单点登录单点登录是指一种技术,可以在多个应用程序中使用单个认证服务器,以实现每个应用程序的唯一身份验证。
单点登录可以有效节省登录各种应用程序所需要花费的时间和精力,同时也可以有效降低安全性问题,从而大大提高系统使用效率。
2单点登录的实现原理单点登录实现的原理十分复杂,但本质上它可以有效简化登录流程,在用户使用登录时在多个网站之间进行登录。
On用户登录时首先完成对用户真实身份的认证(如用户名密码、令牌等),然后向用户发送认证令牌,用户可以在网站中通过此令牌进行认证,无需再次认证。
实现过程:(1)登录系统-用户首先输入正确的用户名和密码,登录到系统;(2)身份认证服务器的验证-用户的凭据被身份认证服务器验证,如果可以绑定,则认证服务器创建用户身份认证令牌;(3)令牌发送-令牌发送给用户;(4)令牌检验-用户尝试访问受保护的应用程序时,令牌被检查并验证;(5)访问后续应用程序-用户验证通过后,就可以访问后续功能所需的其他应用程序,而无需再次进行身份验证,以此来节省用户登录多次带来的时间和精力。
3单点登录的优点单点登录为用户提供了便利,可以有效提高工作效率、节省工作时间,减少用户繁琐的登录流程。
另外,单点登录能够改善用户安全性,因为用户只需要在单个位置登录以获得授权访问,而不必分散地登录到多个应用程序,从而建立多个会话,有助于防止恶意攻击者访问用户的资源。
4总结单点登录是公司组织现代信息化管理的一种有效方式,它既可以提高用户的效率,又能够使用户的信息保护得更好。
它的实现原理是用户首先通过身份认证服务器进行认证,然后发送特殊的令牌到用户的网站,用于验证用户的身份,而不需要再次认证。
在安全方面,单点登录可以有效地防止恶意攻击者获取用户的信息。
单点登录技术方案设计
单点登录技术方案设计单点登录(Single Sign-On,简称SSO)技术是一种可以让用户只需一次登录就能访问多个应用系统的身份验证解决方案。
它可以提高用户体验、减少用户密码管理负担,并简化应用系统的身份验证过程。
下面将从基本原理、技术方案和安全性方面对SSO技术进行设计。
一、基本原理SSO的基本原理是通过在用户浏览器和应用系统之间建立一个中央身份验证服务,用户只需在该服务中进行一次登录,该服务将创建一个安全的令牌,并将其存储在用户浏览器的cookie中。
当用户访问其他应用系统时,该系统会验证该令牌的有效性,并通过验证后让用户无需再次登录。
二、技术方案1. 基于cookie的SSO基于cookie的SSO是最常见的SSO实现方案之一、该方案通过在用户浏览器中设置cookie来存储令牌信息。
当用户访问其他应用系统时,系统会读取cookie中的令牌信息,并通过令牌验证用户的身份。
2. 基于Token的SSO基于Token的SSO方案是当前比较流行的SSO技术方案之一、该方案通过令牌(Token)来实现身份验证。
当用户登录认证成功后,认证服务器会生成一个Token,并将其返回给应用系统。
当用户访问其他应用系统时,系统会将Token发送给认证服务器进行验证。
3.基于SSO协议的SSO基于SSO协议的SSO方案是一种通用的SSO技术方案。
该方案通过指定一个统一的协议来进行身份验证,不同的系统可以通过遵循该协议实现SSO。
常见的SSO协议有SAML、OAuth和OpenID Connect等。
三、安全性考虑1.验证服务安全验证服务是SSO系统的核心部分,可以集中管理用户的身份信息。
因此,验证服务的安全性至关重要。
应该采取措施来保护验证服务的机密性和完整性,例如使用SSL/TLS进行通信加密,对请求进行防护等。
2.令牌安全令牌是验证用户身份的关键,因此令牌的安全性也非常重要。
应该使用加密算法对令牌进行加密,并在传输过程中进行安全保护,例如使用HTTPS等。
redis单点登录原理
redis单点登录原理Redis单点登录原理Redis单点登录是一种常用的身份验证机制,它使用Redis作为中心化的存储系统。
本文将从浅入深解释Redis单点登录的相关原理。
什么是Redis单点登录Redis单点登录是一种基于Redis的分布式认证方案,它允许用户在一个系统中登录,并且能够在其他系统中使用同样的凭证进行访问。
基本流程Redis单点登录的基本流程如下:1.用户向系统A发起登录请求。
2.系统A验证用户的凭证,并生成一个唯一的标识符(token)。
3.系统A将用户的信息以键值对的形式存储在Redis中,键为token,值为用户信息。
4.系统A将生成的token返回给用户。
5.用户在访问其他系统B时,将token作为参数发送到系统B。
6.系统B从Redis中查找相应的token,并验证用户的身份。
7.系统B返回访问结果给用户。
Redis存储用户信息在Redis中存储用户信息是Redis单点登录的核心之一。
当用户登录成功后,系统将用户的信息以键值对的形式存储在Redis中,以方便其他系统对用户的身份进行验证。
以下是存储用户信息的示例代码:SET token:user_id user_info其中,token为用户的唯一标识符,可以是随机生成的字符串;user_id为用户的ID;user_info为用户的详细信息,可以是JSON格式,包含用户名、邮箱等。
验证用户身份在其他系统中验证用户身份是Redis单点登录的另一个重要环节。
系统通过获取用户发送的token,并在Redis中查找相应的键值对,来验证用户的身份是否有效。
以下是验证用户身份的示例代码:GET token:user_id如果返回的结果不为空,说明token有效,可以允许用户访问系统;如果返回的结果为空,说明token无效,用户需要重新登录。
保证安全性在实际应用中,为了保证安全性,可以采取以下措施:•生成token时加入时间戳和随机字符串,增加token的复杂度和安全性。
cas单点登录原理
cas单点登录原理CAS单点登录原理。
CAS(Central Authentication Service)是一种企业级的单点登录解决方案,它能够为用户提供统一的身份认证服务,实现在多个应用系统中的单点登录。
CAS 单点登录原理涉及到了认证、授权和票据等概念,下面将对CAS单点登录的原理进行详细介绍。
首先,CAS单点登录的原理基于认证中心(Authentication Center)的概念。
认证中心是CAS单点登录的核心组件,它负责用户的身份认证和授权。
当用户访问需要认证的应用系统时,应用系统会将用户重定向到认证中心,用户在认证中心输入用户名和密码进行认证。
认证中心验证用户的身份信息,如果验证通过,会生成一个票据(Ticket)并将其返回给应用系统。
其次,CAS单点登录原理涉及到了票据的使用。
应用系统在接收到认证中心返回的票据后,会将票据发送给认证中心进行验证。
认证中心验证票据的有效性,如果票据有效,会返回用户的身份信息给应用系统,应用系统根据用户的身份信息进行授权和登录操作。
这样,用户就可以在多个应用系统中实现单点登录,无需重复输入用户名和密码。
另外,CAS单点登录原理还涉及到了票据的安全性。
为了确保票据的安全性,CAS单点登录采用了票据的加密和防篡改机制。
票据在传输过程中会进行加密,防止被窃取和篡改。
同时,票据还会设置有效期限制,一旦超过有效期,票据将失效,用户需要重新进行身份认证获取新的票据。
总之,CAS单点登录原理基于认证中心、票据和安全性等概念,通过认证中心统一管理用户的身份认证和授权,实现在多个应用系统中的单点登录。
CAS单点登录不仅提高了用户的便利性,还提升了系统的安全性和稳定性,是一种值得推广和应用的企业级单点登录解决方案。
单点登陆方案
单点登录方案概述随着互联网的快速发展和多样化的应用系统,用户常常面临着需要在不同的应用系统中进行登录的困扰。
为了解决这一问题,单点登录(Single Sign-On,简称SSO)技术应运而生。
单点登录方案是一种通过一次认证,用户可以访问多个应用系统的技术方案。
本文将介绍单点登录的原理、应用场景和实施方案。
一、单点登录原理单点登录的基本原理是在一个安全的身份认证中心(Identity Provider,简称IdP)完成用户的身份认证,并生成一个授权票据(Token),然后将该授权票据保存在用户的浏览器中的Cookie中。
当用户要访问其他应用系统时,这些应用系统会将用户重定向到IdP,并将授权票据发送给IdP进行验证。
验证通过后,IdP会生成一个新的授权票据并返回给应用系统,应用系统根据授权票据判断用户的合法性,从而实现用户的单点登录。
二、单点登录的应用场景1. 企业内部应用系统:在企业内部,往往存在多个不同的应用系统,如人力资源管理系统、财务管理系统、项目管理系统等。
使用单点登录方案可以避免用户需要在每个系统中单独登录的繁琐操作,提高了工作效率和用户体验。
2. 跨域网站应用:在互联网上,常常会有多个跨域网站应用需要进行集成,如在线购物网站、社交媒体平台等。
用户只需登录一次,就可以在所有的应用系统中自由切换,避免了重复输入账号和密码的困扰。
3. 第三方授权登录:许多网站提供使用第三方账号登录的功能,如使用微信账号登录某个网站。
通过单点登录方案,可以实现将第三方授权的账号映射到本地账号,方便用户进行登录。
三、单点登录实施方案1. 基于SAML的单点登录Security Assertion Markup Language (SAML)是一种基于XML的认证标准,是单点登录方案中最常用的协议之一。
基于SAML的单点登录方案主要包括以下步骤:(1)用户访问应用系统A,应用系统A 发现用户未登录,将用户重定向到IdP。
单点登录方案
单点登录方案随着互联网的发展和应用的广泛普及,人们使用各种各样的在线服务来满足他们的需求。
然而,随之而来的问题是,每个在线服务都需要用户进行独立的身份验证,这导致了繁琐的登录过程和大量的账户管理工作。
为了解决这个问题,单点登录(Single Sign-On,简称SSO)方案应运而生。
一、什么是单点登录(SSO)?单点登录是一种身份验证和访问控制的解决方案,通过一次登录获得对多个相关但独立的系统或应用的访问权限。
换句话说,用户只需要进行一次身份验证,就可以访问多个应用,而无需重复登录。
二、单点登录的工作原理在单点登录方案中,有三个主要的角色:身份提供者(Identity Provider,简称 IdP)、服务提供者(Service Provider,简称 SP)和用户。
1. 身份提供者(IdP):负责管理用户的身份信息,并为用户提供身份验证服务。
当用户尝试访问某个服务时,该服务会将用户重定向到身份提供者,并请求验证用户的身份。
2. 服务提供者(SP):其为用户提供服务的网站或应用程序,不直接管理用户的身份信息,而是依靠身份提供者进行身份验证。
3. 用户:通过身份提供者进行身份验证,并可以访问多个服务提供者。
具体的工作流程如下:1. 用户访问某个服务提供者的网站或应用程序。
2. 服务提供者检测用户未进行身份验证,将用户重定向到身份提供者。
3. 用户在身份提供者的登录页面进行身份验证。
4. 身份提供者验证用户的身份,并生成一个访问令牌(Token)。
5. 身份提供者将访问令牌发送给用户的浏览器。
6. 用户的浏览器将访问令牌发送给服务提供者。
7. 服务提供者接收到访问令牌后,验证其有效性,并为用户提供相应的服务。
三、单点登录的优势1. 方便性:用户只需进行一次登录,即可无缝访问多个应用,大大简化了登录流程,提高了用户体验。
2. 安全性:通过集中管理用户的身份信息,减少了密码泄漏和遗忘密码的风险。
同时,也便于对用户的访问进行监控和管理。
单点登录的原理、来源、实现、以及技术方案比较(一)
单点登录的原理、来源、实现、以及技术方案比较(一)目录为什么需要单点登录单点登录的来源1.早期的单机部署:web单系统应用2.分布式集群部署单点登录的原理和实现1.基于Cookie的单点登录2.分布式session方式实现单点登录总结:转载自:为什么需要单点登录单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。
单点登录在大型网站里使用得非常频繁,例如,阿里旗下有淘宝、天猫、支付宝等网站,还有背后的成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。
所以,单点登录要解决的就是,用户只需要登录一次就可以访问所有相互信任的应用系统。
单点登录的来源1.早期的单机部署:web单系统应用早期我们开发web应用都是所有的包放在一起打成一个war包放入tomcat容器来运行的,所有的功能,所有的业务,后台管理,门户界面,都是由这一个war来支持的,这样的单应用,也称之为巨石应用,因为十分不好扩展和拆分。
在巨石应用下,用户的登录以及权限就显得十分简单,用户登录成功后,把相关信息放入会话中,HTTP维护这个会话,再每次用户请求服务器的时候来验证这个会话即可,大致可以用下图来表示:验证登录的这个会话就是session,维护了用户状态,也就是所谓的HTTP有状态协议,我们经常可以在浏览器中看到JSESSIONID,这个就是用来维持这个关系的key。
2.分布式集群部署由于网站的访问量越来也大,单机部署已经是巨大瓶颈,所以才有了后来的分布式集群部署。
例如:如果引入集群的概念,1单应用可能重新部署在3台tomcat以上服务器,使用nginx来实现反向代理, 此时,这个session就无法在这3台tomcat上共享,用户信息会丢失,所以不得不考虑多服务器之间的session同步问题,这就是单点登录的来源。
单点登录设计原理
单点登录设计原理今天来聊聊单点登录设计原理的事儿。
你有没有想过啊,在我们的生活中,其实有很多类似单点登录的情况。
就比如说那个万能钥匙,有些公寓大楼啊,有个总钥匙可以打开大楼里所有的一户一表的小电表箱。
这个总钥匙有点像我们单点登录里的认证中心。
单点登录就是,在多个不同的系统或者应用程序当中,用户只需要登录一次,就能够访问所有相互信任的这些系统。
原理呢,就像有个超级管理员(认证中心)在中间控制着呢。
打个比方吧,就像你在一个大型商场,这个商场里有很多不同品牌的专卖店(不同的子系统)。
你进商场大门的时候(第一次登录),保安(认证中心)核查了你的身份,给了你一个特殊的手环(token)。
当你走进任何一家专卖店的时候,那些店员看到你的手环就知道你是已经在商场门口被验证过身份的顾客了,不需要再重新检查你的身份证之类的,直接就让你享受购物服务啦。
这里的token就很关键。
它是通过加密技术生成的一个特殊标识,就像是商场给你的手环上有特殊的花纹或者记号来确认你的身份。
这其中涉及到很多安全性相关的专业知识,比如说加密算法就像是一种特殊的编密码方式,保证这个token只有合法的系统能识别,不会被坏人仿造出一模一样的手环来混进店里。
从实际应用案例来看,腾讯旗下好多应用就是这样。
你登录了QQ,再去登录腾讯视频之类的腾讯产品,很多时候就可以直接登录或者快速登录了。
这提升了用户的体验感,不用每个应用都输入账号密码搞得人很烦。
不过,老实说,我一开始也不明白单点登录是怎么确保安全性的。
我就想啊,如果这个token被别人截获了,那不是能冒充我登录了。
然后学习的时候才明白,这里面有加密措施保证它的安全性,而且token是有时间限制或者权限范围限制的,就像手环可能只能在当天有效或者只能走进某些指定的专卖店。
这也给我了一个延伸思考,如果在更复杂的系统环境中,比如跨国企业多个子公司不同地域不同安全级别的系统之间做单点登录,那这个token怎么高效且安全地管理就更复杂了。
