网站安全认证系统的设计变迁

news/2024/5/9 18:57:54/文章来源:https://blog.csdn.net/iteye_2022/article/details/82404018

网站在从小到大的发展历程中,安全认证系统是如何变迁的?

下面我们从其发展的几个阶段来分下:

阶段1:

起步,注册用户很少,两台服务器,一台应用服务器,一台数据库服务器。

用户登陆后在应用服务器记录用户 session (通常就是 tomcat session)。

当用户请求受保护资源(网页)时,首先请求经过一个安全认证过滤器进行拦截,并调用认证模块进行检测用户是否登陆。

认证模块的检测方式很简单,就是判断用户的登陆 session 是否保存在服务器内存中,过期的 session 会自动清除。

其架构如下:(图1)


阶段2:

随着用户的增长,一台服务器已经不足以支撑时,我们开始扩展服务器,加入从1台应用服务器扩展到N(N<10)台。

用户登陆时,通过前面 apache 的负载均衡可能随机平均访问任何一台 Tomcat。

这时产生了一个问题,原来保存在一台应用服务器内存中的 session 数据,现在分散在不同服务器上。

这时我们没法像上面简单的在内存中检测 session 了,为了不改动原先的程序方案,我们开始考虑 session 复制。

还好 Tomcat 这样的应用服务器为 session 复制提供了直接支持,只需改动配置即可,而不用变动程序。

其架构如下:(图2)

阶段3:

用户进一步增长,应用服务器集群进一步增长,当超过10台后,session 复制开始显示出明显的低效和性能问题。

而且单台服务器维护的 session 数据量也达到了瓶颈,我们考虑用专用的缓存服务器来取代 session 复制方案。

memcache 或 redis 这样的缓存产品被引入作为集中式的 session 存储区域,应用服务器分离了 session 后变成了

无状态的服务,不再受到 session 复制所需的内存和网络限制,可以进一步扩展数量。

其架构如下:(图3)

阶段4:

网站越来越受欢迎,用户越来越多,业务越做越广,于是开始对业务进行分类。

应用部署上也开始按业务分类划分了不同的业务服务器集群。

例如原本网站域名为 www.xxx.com,按业务划分集群后,我们采用子域名区分业务集群,例如 biz1.xxx.com, biz2.xxx.com。

那么整个网站应用被划分成了各个不同的子业务系统,而所有子业务系统都需要认证授权,如何来做统一认证呢?

这时,我们将安全认证服务也独立为一个子系统,部署在 auth.xxx.com 域名下。

如果继续采用集中式的 session 管理,那么对每个业务子系统受保护资源的访问都需要验证 session 是否存在。

业务子系统调用认证子系统检测用户认证信息,这样认证子系统的访问频次将很高,几乎等于全部业务子系统的 PV 总和。

这时,认证系统的可用性将变得非常重要。

其架构如下:(图4)

阶段5:

为了降低业务子系统对认证系统的高可用性依赖,我们决定放弃服务端的集中式 session 管理,而采用客户端 Cookie 方式。

当用户访问业务子系统的受保护资源时,若未登陆,则跳转到认证系统(auth.xxx.com)去进行登陆。

登陆后认证系统写一个加密 cookie 到用户的浏览器,并跳转到用户访问的业务系统页面,浏览器自动携带这个加密 cookie 发送给业务子系统。

业务子系统解密该 cookie 提取来自认证系统的验证和授权信息,并进行后续的业务处理。

这里,加密的 cookie 里存储了来自认证系统授权的访问凭证(ticket),业务子系统正确解密 cookie 后获取访问凭证,即可认为用户已经过认证系统授权访问。

其架构如下:(图5)

这个架构机制解决了业务子系统高度依赖认证系统可用性的问题,降低了认证系统的访问压力,但也有新的问题。

这里比较明显的是,认证系统和业务子系统的互信是依赖于约定的共享密钥,密钥如何管理成为一个新的问题?

认证系统加密 cookie 使用的密钥需要被业务子系统用来解密,如果密钥分散配置到各个业务子系统中则造成密钥分散容易泄露(降低安全性)。

更重要的是一旦认证系统需要变更密钥则连带影响所有业务子系统,而且变更过程很难保持同步更新,导致业务子系统在更新密钥的过程中不可用的问题。

为了提升这个架构的可用性,考虑在认证系统中包含一个密钥管理子系统,可以采用 Lease 机制来解决密钥的分布式同步和一致性问题。

参见:Lease 机制在分布式系统中的应用

阶段6:

网站越做越大,后来开始并购了一些其他网站,比如 www.yyy.com。

这时我们面临一个新问题了,需要整合多个域名下的用户统一认证。前述的 cookie 方案碰到了跨域问题。

这里假设我们首先合并了多个站点的用户数据库,这里只需要解决基于 cookie 跨域的认证问题。

这里提两种方式可选:

1. 同步登录

用户登录xxx.com同时登录yyy.com,具体做法是在 xxx.com 进行认证成功返回后携带相关的认证凭证。

然后调用 yyy.com 的认证接口传递认证凭证,yyy.com 验证凭证后设置来自 yyy.com 的 cookie。

这样用户在任一站点访问受保护资源时,因为都包含了相应的 cookie 所以可以正常访问。

流程如下:(图6)

2. 延迟登录

与同步方式不同的是,用户登录了xxx.com时并不会立刻去请求 yyy.com 设置 cookie。

而是等到用户真正访问 yyy.com 受保护资源时,由 yyy.com 请求统一认证中心认证后再跳转回 yyy.com 设置 cookie。

流程如下:(图7)

两种方式仅仅是策略上的不同,从合理性上看后一种方式感觉更合理,因为毕竟用户访问了 xxx.com不代表一定要去 yyy.com。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_751733.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过IP地址来访问网站

今天我们写极少量的代码&#xff0c;来实现用IP地址来访问一个网站。步骤如下&#xff1a; 打开命令提示符&#xff0c;输入以下代码&#xff1a; &#xff08;这里用CSDN官网https://www.csdn.net/为例&#xff09; 输入代码ping csdn.net /n 5 复制上面正在 Ping csdn.net […

网站推荐——洛谷

粉丝福利 【洛谷】&#xff08;链接在最后&#xff09;是一个我感觉非常良心的网站。自从五月以来&#xff0c;我一直在学习C语言&#xff0c;明年参加CSP大赛&#xff0c;自然少不了刷题。 这个网站我觉得最好的地方&#xff0c;就是它有很多比赛的题库&#xff1a; 有很多…

SEO和SEM策略:建立工作关系

SEO和SEM策略&#xff1a;建立工作关系 原文地址http://www.semorseo.com/1601.html SEO和SEM策略之间的关系将互联网营销的两个方面联系在一起。通过凝聚力&#xff0c;SEO和SEM关系导致更有效的整体策略。许多策略可以利用您的SEO来帮助您的SEM&#xff0c;反之亦然。 创建有…

Java小应用目录快速变网站

1. 简介 快速将一个目录变成静态站点的Java小应用 2. 程序下载 https://github.com/broncho/oss/raw/master/blog/directory-website-1.0.0.jar 3. 依赖环境 JRE 1.6 4. 使用说明 5. 运行 转载于:https://blog.51cto.com/aiilive/2285524

chrome v69 设置网站允许 flash

为什么80%的码农都做不了架构师&#xff1f;>>> **问题描述&#xff1a;**升级 Chrome V69 以后&#xff0c;发现之前通过 Setting -> Content Settings -> Flash -> Allow 列表里添加的允许运行 flash 的网站列表已经没有了&#xff0c;而且也没有了新增…

微软正式发布Azure Storage上的静态网站

微软正式宣布了Azure Storage上的静态网站&#xff0c;提供了从托管在Azure Storage上的HTML、CSS和JavaScript文件提供内容的能力。静态网站包含内容固定的Web页面&#xff0c;同时仍然允许利用JavaScript等客户端代码来创建丰富的用户体验。 有了这个新功能&#xff0c;继用于…

网站推广必备手册:SEO教程:搜索引擎优化入门与进阶(第2版)

网站推广必备手册:SEO教程:搜索引擎优化入门与进阶(第2版)【作  者】吴泽欣 [同作者作品] [作译者介绍] 【丛 书 名】 图灵程序设计丛书 【出 版 社】 人民邮电出版社 【书 号】 9787115213389 【上架时间】 2009-11-19 【出版日期】 2009 年12月 【开 本】 16开 编…

PageAdmin Cms建站系统教程之栏目的添加和管理

PageAdmin建站系统作为国内用户最多的企业级网站建设系统&#xff0c;功能强大&#xff0c;扩展灵活&#xff0c;在国内拥有庞大的用户群体&#xff0c;系统可以免费下载使用&#xff0c;被众多个人站长和网站制作公司用于网站建设和二次开发&#xff0c;上一篇小编讲解了PageA…

asp的网站能封装成app吗_开发平台封装打包app有风险吗!!

封装打包的意思就是指将一个网站、或者是h5封装成一个APP&#xff0c;这是一种“快速开发APP”的方法&#xff0c;但其实这个APP本身是没有代码、没有前端后台的&#xff0c;它的本质还是一个网页&#xff0c;只是我们通过封装的方式给这个网页套一个APP的壳子&#xff0c;让它…

外部表读取速度_影响网站打开速度的因素

为什么网站打开的速度这么慢&#xff1f;一般来说&#xff0c;影响网站打开速度的因素有以下4个方面&#xff0c;SEOer一定要记住哦&#xff01;图片源自网络一、用户有时候&#xff0c;网络打开速度较慢&#xff0c;原因可能来自用户自身。①网络用户所在的网络是否顺畅、带宽…

做网站要服务器和什么软件,做网站的软件有哪些,自己建网站要用到哪些软件?...

做网站的软件有哪些&#xff0c;自己建网站要用到哪些软件&#xff1f;在我们要准备自己建网站的时候&#xff0c;我们要搞清楚做网站要采用哪些软件。相信这是不少做网站的朋友都想知道的&#xff0c;下面小编就给你简单介绍一下。1、Dreamweaver(代码编辑器)&#xff0c;一个…

python模拟登录网站_用python模拟登录网站获取cookies(urllib与requests)

最近在学习使用python爬取网页信息&#xff0c;之前也写了几篇网站爬取以及图文混排爬取到word中的例子&#xff0c;有兴趣的可以在本站搜索python。之前大部分是不需要登录就可以访问的资源&#xff0c;所以使用python爬取的时候不需要登录。但是有些网站的信息&#xff08;比…

网站留言板防重复留言_如何做一个2000年风格复古的个人网站(1)开发环境准备...

先说一下什么是复古的个人网站&#xff1f;让我们把时钟拨回到2000年。就是PC网络开始流程的2000-2005年代。在那个年代&#xff0c;大型网站有刚刚建立起的三大门户网站&#xff1a;网易、新浪、搜狐。还有电子邮箱http://163.net&#xff0c;中华网&#xff0c;E堂等&#xf…

用html5做一个介绍自己家乡的页面_想做响应式网站,如何选一家靠谱的响应式网站开发公司?...

响应式网站在聊响应式网站建设哪家好这个话题之前&#xff0c;我们先要了解一下响应式网站设计开发的起源、什么是响应式网站设计、响应式网站建设的现状和前景、如何设计制作HTML5响应式网站以及响应式网站建设费用&#xff0c;最后就能得出响应式网站建设哪家好的结论了。HTM…

网站维护页面_选择网站建设公司应该注意什么?

近期有不少客户咨询我们时都问了同样的问题&#xff1a;“南京网站建设这块真的好复杂&#xff0c;什么价格都有&#xff0c;从几百到几万&#xff0c;到底应该怎么选择网站建设公司呢&#xff1f;”其实从价格角度来说&#xff0c;我们在《建设一个企业网站需要多少钱呢&#…

MD毛豆新发现建站总结2014年8月20_彭世瑜_新浪博客

2014年8月7日&#xff0c;一个偶然的想法&#xff0c;我就开始做了一个存放一些从某个论坛获取的实用网址的网页&#xff0c;只是想给自己做一个简单的网址记录点。将网页保存至本地&#xff0c;做一个“本地导航”。做啊做&#xff0c;根本停不下来&#xff0c;到现在30分钟前…

MD毛豆新发现建站总结2014年8月20

2014年8月7日&#xff0c;一个偶然的想法&#xff0c;我就开始做了一个存放一些从某个论坛获取的实用网址的网页&#xff0c;只是想给自己做一个简单的网址记录点。将网页保存至本地&#xff0c;做一个“本地导航”。做啊做&#xff0c;根本停不下来&#xff0c;到现在30分钟前…

网站中案例怎么用html写,20个案例教你如何在网页中使用纹理图案

虽然扁平化的风格和响应式设计的流行使得网页设计中纹理的使用率有所降低&#xff0c;但是总的来说&#xff0c;要让一个网站拥有质感最直接的方式就是使用合适的纹理。纹理是网页设计中最常见也最常用的元素&#xff0c;在不同的网页中&#xff0c;纹理有时候是能够化腐朽为神…

上传的图片所在文件夹一般在那个目录下_网站一级目录的制作方法

搜索引擎优化&#xff08;SEO&#xff09;的方法之一是在主站点中建立一个主目录&#xff0c;从而提高主站点的排名。第一级目录继承自主站点目录&#xff0c;相当于在网站根目录下创建一个文件夹来存储网站。下面和大家分享网站一级目录的制作方法。图片源自网络一、网站一级目…

seo日常工作表_SEO的日常工作范畴。

做网站优化要求持之以恒&#xff0c;由此看来日常优化工作就显得格外重要了。就现在很多SEOer的工作日志来看&#xff0c;讲到日常优化工作想必单是外链的制作和内容的更新。在笔者看来&#xff0c;这只是日常工作之一而已。那么&#xff0c;还有那些工作属于日常优化工作的范畴…