美文网首页
8. 集群用户授权与认证

8. 集群用户授权与认证

作者: 不知名的蛋挞 | 来源:发表于2019-08-11 16:57 被阅读0次

    在现在整个互联网的开发过程之中,一定是到处充满了子系统,也一定会有多台服务器进行整合处理,所以在我们整个过程之中,我们想保证整个过程正常运行,那么一定要使用SSO。

    当使用了SSO概念的时候,一定表示你的开发环境是多集群主机。

    多集群面临的问题

    使用集群的最大特点:

    • 访问速度提高
    • 处理能力更强
    • 数据安全性更高
    • 容灾性也很高,即使一台服务器出现问题,其他服务器也可以直接使用

    除了系统的架构集群之外,很多的开发为了为了考虑到综合的性能,也会考虑更多的子系统进行项目的编写。利用子系统可以有效地实现数据操作的封装,对外部而言,利用RPC的概念可以实现更加方便的方法调用。

    每一个子系统都会有一个与之匹配的数据库。有了Nginx之后,web开发一定用的是集群。此时就会出现一个最为直白的问题:该集群的主机一定会去调用所有的RPC端,当一个用户登陆之后,只有通过session才能通过的登录用户的认证,这个登录认证并不是针对于子系统的,而仅仅只针对于Web端,登陆之后的用户信息存在了redis里面。但是RPC子系统也需要做用户登录权限认证,那么怎么实现RPC端的认证授权检测呢?

    那么现在实际上就可以发现,在一个庞大的系统设计里面,用户的登陆问题将成为一个最大的难点,因为不可能说用户登录到web之后,而后用户执行某一个操作的时候,该操作调用RPC端进行业务执行的时候你也进行一次登录,这样一个操作的登录太可怕了。

    SSO简介

    SSO(Single Sign On 单点登录)。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登陆的机制。它是目前比较就行的企业业务整合的解决方案之一。

    只有有一个web容器才能处理所有的用户处理操作。在这里Web Server不做用户登录信息的保存,如果将用户信息都存在了redis里面,那么相当于我们现在所有的用户认证信息都被Web Server管理着,这样当系统涉及访问多个子系统的时候就无法操作。

    SSO单点登录服务器提供的还是一个web,但是它只做单点登录。这时所有的认证信息都被单点登录服务器管理着,用户的认证检测全部全部交给专门的登录认证服务器去做。当我们请求过程中需要用到子系统的时候,用户的认证也交给这个单点登录服务器去完成,这样当我们去操作子系统的时候就不用让用户重复登录了。

    用户的登录分为两个步骤:认证和授权,SSO单点登录服务器只能完成认证,不能进行授权操作。所以如果想要完成授权操作就必须加多一个redis服务器,单点登录服务器上一定也有一个与之匹配的数据库,检测用户名和密码。而web端现在要负责授权处理。这个授权处理有可能被所有子系统去访问,为了能够保存授权操作,授权信息应该缓存到redis服务器上,这样所有子系统进行授权操作的时候,就可以通过redis读取用户权限

    在现在的SSO设计过程之中,redis缓存数据库将负责保存用户的角色与权限信息,这样就可以避免重复的进行角色与权限的查询处理了。而在整个SSO处理之中为了保证单点登录的安全性还需要使用https访问,以及需要进行证书的签发,还才能够正常使用SSO进行单点登录。

    相关文章

      网友评论

          本文标题:8. 集群用户授权与认证

          本文链接:https://www.haomeiwen.com/subject/cursjctx.html