后端老鸟十张图讲透单点登录,看完不懂算我菜!
一、单系统登录机制
1. HTTP无状态协议
Web应用采用browser/server架构,HTTP作为通信协议。HTTP是无状态协议,浏览器的每一次请求,服务器会独立处理,三次请求/响应对之间没有任何联系。
这意味着,任何用户都能通过浏览器访问服务器资源。为了保护某些资源,我们需要鉴别浏览器请求。由于HTTP协议无状态,我们需要一种机制让服务器和浏览器共同维护状态,这就是会话机制。
2. 会话机制
当浏览器第一次请求服务器时,服务器创建一个会话并将会话id发送给浏览器。浏览器存储此id,并在后续请求中带上,会话从而保持关联。
会话id可以通过请求参数或cookie来传递。通过使用cookie,浏览器能在每次请求时自动附带会话id。
3. 登录状态
通过会话机制,用户在第一次请求时需要输入用户名与密码验证身份。服务器验证后会将其标记为“已登录”,这个状态保存在会话对象中。后续请求中,服务器会检查该登录状态以判断访问权限。
二、多系统的复杂性
随着web系统的发展,用户不再希望为每个子系统单独登录。因此,多系统的应用群要求用户仅需一次登录,方便且一致。
然而,传统的单系统登录方案适用于cookie,这种方案在多系统中遇到诸多局限。例:cookie的域限制使得共享cookie的方式面临技术性和安全性挑战。
三、单点登录
1. 登录
单点登录(Single Sign-On, SSO)允许用户在一个系统登录后,自动获得对其他系统的访问权限。SSO需要一个独立的认证中心,所有系统都通过该中心进行用户身份验证。
2. 注销
SSO同样支持单点注销,用户在任何一个子系统注销后,所有子系统的会话都会被一并销毁,保障用户的安全。
3. 部署图
部署SSO涉及认证中心与多个子系统的交互,系统需要集成SSO客户端以处理验证和会话请求。
四、实现
SSO通过客户端/服务端架构实现,涉及用户请求的拦截、会话的建立及验证令牌的管理。开发者可参考实际案例,通过模块实现完整的SSO功能。
数据库可疑LTER DATABASE 数据库名 SET SINGLE_USER
--先运行该语句再恢复数据。可以手动设置数据库属性中的用户模式为“单用户(single user)”
use master
go
ALTER DATABASE 数据库名 SET SINGLE_USER
关于MySQL中SQL注释的详细介绍
MySQL中的SQL注释分为单行和多行注释,单行注释使用“--”开头,多行注释用“/* ... */”。
类型
主要有解释性注释、临时注释和调试注释,用于帮助开发和维护。
大型服务器的硬盘工作原理
磁盘阵列(Disk Array)技术解决了提高存取速度、防止数据丢失和有效利用空间的需求。RAID(冗余数组独立磁盘)技术在此技术上实现了数据的安全存储和高效访问。
磁盘阵列原理
多个磁盘组成阵列以提升读写性能,通过数据分段存储,可以并行处理多个磁盘的读写操作。
装MySQL数据库时出现错误的解决方案
当从库与主库的数据不一致导致复制错误,可以通过备份单表并设置合适的复制过滤来解决数据同步的问题。
暂无评论
发表评论