单点登陆认证方案思路,求好思路回复

统一用户认证方案思路

实现目标:

1.实现单点登陆,使用单点登陆账号登陆后,可访问多个被受权的系统。

2.尽可能不让用户进行客户端安装,有些技术如CAS,SAML,P3P欢迎点评

  免登陆访问方式可能存在:
  一、当前系统界面链接其余系统的界面,(场景:多系统集成一个系统)
  二、当前系统访问其余系统的有验证的服务接口, (场景: 访问被受权的系统的服务)
  三、在新的浏览器标签页直接打开其余系统的页面 。(场景: 进入其余系统免登陆)

2.加强安全验证性,采用 cookie,token,session,和安全令牌securityCard形式

  一、cookie记录了用户的登陆信息token,
  二、session可得到访问者的IP,
  三、安全令牌用于记录单点登陆用户访问的惟一凭证.
  四、敏感信息(金钱,核心内容)或者防恶意请求(如盗号)可考虑动态密码和访问频率来控制(将来有须要时)

3.加强用户体验性

  1.已登陆的我的资料编辑,增长上传头像
  2.用户管理,分组管理,角色管理,权限管理界面交互修改更友好
  3.用户直接访问某系统子页面时,若是未登陆则弹出登陆,登陆后重定向到指定子页面。
  4.对于一些特殊的http请求错误给予友好error.html提示,如404.500,302等.

存在问题:
  1.多个系统可能有多套自身用户管理,另外有可能第三方系统有可能接入;
  2.多个系统可能共用一套用户管理;
  3.单点登陆用户和各系统之间的关系如何。


解决方案:

  1.针对问题1: 设立uum认证中心; 
     提供应用系统单点登陆角色配置的注册,更新,和注销等接口(即应用系统加入认证中心的操做);
     提供应用系统之间受权的添加,更改,删除等接口;
     提供全部注册系统的注册信息的查询接口;
     提供在线单点登陆用户的查询,退出,登陆等;
     对接口的信息中有必要包含受权期限等。

  2.针对问题2:
    优化应用系统的用户管理模块,支持区分存储不一样域名的权限;
    将统一的用户管理角色注册到uum认证中心,并对个系统相互受权;
    建议将统一的用户管理界面开放给某个系统的用户进行统一操做。


  3.针对问题3:
    应用系统有自身的用户管理体系,若是想加入单点登陆群组,须要创建以下规则:   
    应用系统向认证中心发起请求的元单位为角色,即单独登陆的用户须要在认证中内心判别角色;
    须要设立单点登陆的角色,而后将自身系统的角色与其匹配;
    应用系统用户管理中能够将单点登陆角色受权给其余系统,也可查看被其余系统受权的信息;
    认证中心只管角色,可对加入的应用系统进行注册信息统一管理(另行处理) ,可是角色的访问权限由各个系统复制管理。



   4.单独登陆配置:
      1.应用系统提交xml格式注册到uum认证中心,包括信息:系统ID,角色名称(可多个),到期时间等,并可修改。
      2.应用系统可将单点登陆角色赋给其余系统对应的角色,可为一对多,包括到期时间等必要的信息。
      3.认证中心可对应用系统提交的部分信息进行一些甑别和修改。

   5.单点登陆访问步骤:


      1.用户访问A系统,输入用户名,密码;

      2.A系统登陆成功,
        发现是该用户角色为单点登陆角色,
        重定向uum认证中心登陆界面,并传送参数以及A系统回调路径,
        uum认证解析参数,检查角色是否过时,生成安全令牌,再重定向回应用系统;
         此时产生了应用系统和认证中心两个系统的链接。

      3.用户访问B系统主页,B系统发现没有在本身服务器上登陆,
        重定向uum认证中心登陆界面,并传送参数以及B系统回调路径,
        uum认证发现已经登陆,返回用户角色相应信息以及安全令牌重定向给B系统,
        B系统登陆成功。


   6.安全验证:



html

相关文章
相关标签/搜索