当前位置:首页>编程日记>正文

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

本站寻求有缘人接手,详细了解请联系站长QQ1493399855

统一用户认证方案思路

实现目标:

1.实现单点登录,使用单点登录帐号登录后,可访问多个被授权的系统。

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

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

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

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

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.安全验证:




http://www.coolblog.cn/news/3acd08dcb1420f70.html

相关文章:

  • asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
  • s7day2学习记录
  • 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  • 矿Spring入门Demo
  • 拼音怎么写_老师:不会写的字用圈代替,看到孩子试卷,网友:人才
  • Linux 实时流量监测(iptraf中文图解)
  • Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  • 美颜
  • shell访问php文件夹,Shell获取某目录下所有文件夹的名称
  • 如何优雅的实现 Spring Boot 接口参数加密解密?
  • LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  • Mac原生Terminal快速登录ssh
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010
  • 支撑微博千亿调用的轻量级RPC框架:Motan
  • mysql commit 机制_1024MySQL事物提交机制
  • java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  • 2019-9
  • jquery 使用小技巧
  • vscode pylint 错误_将实际未错误的py库添加到pylint白名单
  • 科学计算工具NumPy(3):ndarray的元素处理
  • 工程师在工作电脑存 64G 不雅文件,被公司开除后索赔 41 万,结果…
  • linux批量创建用户和密码
  • js常用阻止冒泡事件
  • 气泡图在开源监控工具中的应用效果
  • newinsets用法java_Java XYPlot.setInsets方法代碼示例
  • 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  • php 启动服务器监听
  • dubbo简单示例
  • Ubuntu13.10:[3]如何开启SSH SERVER服务
  • [iptables]Redhat 7.2下使用iptables实现NAT
  • Django View(视图系统)
  • 【设计模式】 模式PK:策略模式VS状态模式
  • CSS小技巧——CSS滚动条美化
  • JS实现-页面数据无限加载
  • 最新DOS大全
  • 阿里巴巴分布式服务框架 Dubbo
  • 阿里大鱼.net core 发送短信
  • Sorenson Capital:值得投资的 5 种 AI 技术
  • 程序员入错行怎么办?
  • Arm芯片的新革命在缓缓上演
  • 两张超级大表join优化
  • 第九天函数
  • Linux软件安装-----apache安装
  • HDU 5988 最小费用流
  • 《看透springmvc源码分析与实践》读书笔记一
  • 通过Spark进行ALS离线和Stream实时推荐
  • nagios自写插件—check_file
  • python3 错误 Max retries exceeded with url 解决方法
  • 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  • 行为模式之Template Method模式