zoukankan      html  css  js  c++  java
  • 云计算初体验(三)之租户登录、验证、授权

      在云计算平台,租户可以随时租用平台上所提供的服务,但这里面却存在一个隐藏的问题,登录验证怎么做?

      

      我当时的第一反应是每个服务自己提供一套登录验证体系。但是随之而来的问题是,每次添加服务,租户下属成员,每次都需要重新申请登录名?同时用户为什么在使用其他服务时还需要再次登录?为什么需要这么麻烦呢?为什么不能做到新增、更改服务,对租户和其下属成员来说是透明的呢?为什么不能做到用户登录一次就可以使用全部服务呢?

      这是因为我当时还没有把思想转变过来,还是在普通应用(服务)的开发上面。每次提到登录验证,就想着自己做一套出来。但是在云平台上面,这么做只会带来无穷的麻烦和痛苦。要想真正做到新增、更改服务,对租户和其下属成员来说是透明的,首先就要表现在登录上。只有提取出登录模块,做到统一登录,才做到真正透明。

      但是问题又随之而来,就算把验证提取出来,那如何保存呢?把用户登录信息保存在哪里?每个应用(服务)需要去哪里判断用户是否登录,用户的权限呢?这就要使用统一登录授权管理。

      统一登录授权管理核心是由三部分组成的,第一是用户权限库,第二是用户验证系统,第三是用户登录信息保存系统。

      用户权限库:是保存用户登录信息,以及用户权限。同时该库应该支持云计算或为每个租户分配一个权限库。

      用户验证系统:保证不同租户下属成员(包括租户)登录时,使用其对应的权限库,保证不会冲突。

      用户登录信息保存系统:由于session不能跨站保存,但在云计算平台上,不同的服务可能是在不同的节点(可能在同一台服务器,也可能是不同的服务器),这样导致用户信息不可能直接保存在服务的session中。所以系统会把用户信息保存在独立的服务(统一登录授权)中,通过cookie来表示用户所登录过的用户名,和所在用户登录信息保存系统中的位置。这样只要用户登录过一次,则在用户登录信息保存系统中会驻留一个记录。这样在用户使用其他服务时,可以路由到此系统,来判断用户是否登录,以及用户所使用的权限。

        微软的hotmail,msn等,在登录时全部都是使用这套体系。

  • 相关阅读:
    PHP下实现两种ajax跨域的解决方案之jsonp
    实际应用中git(合并本地与服务器项目)
    centos7 编译安装nginx
    windows vagrant共享目录设置问题
    shell 需要注意的点
    插入排序(直接插入排序)
    选择排序
    快速排序
    冒泡排序
    centos7.5安装redis-5.0.4
  • 原文地址:https://www.cnblogs.com/comsokey/p/1938170.html
Copyright © 2011-2022 走看看