我要声明一点,我们这里讲的UAC(user account center)非彼UAC(user account control)。
  
一.UAC(user account control,用户账户管理)
  首先我们谈一谈彼UAC(user account control,用户账户管理)。
  百度解释:是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。
  我又想吐槽百度百科,为什么非要把一个简单的问题描述的这么晦涩难懂。
  网上收一下可以发现很多吐槽UAC的设计,当然还是有很多的赞成者。
  想多了解可以知乎收一下。
  windows系统上的UAC开着很有必要,可以省去你很多不必要的麻烦,虽然开着它会很闹心。
  然后我们谈谈此UAC(user account center,用户账户中心)。

二.UAC(user account center,用户账户中心)
  这个概念算是在很多的公司内部会出现,用来做自己公司的各种账户管理。公司做的UAC 基本会把自己所有系统的账户全都接入此系统。
  UAC的特点:

单点登陆(single sign on,SSO):目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次 就可以访问所有相互信任的应用系统 
支持某特色的用户权限
可动态配置密码规则,即时生效:动态密码为根据专门的算法产生变化的随机数字组合,主流产生形式有手机短信、硬件令牌、手机令牌,动态密码优点在于使用便捷且与平台无关性,通过电脑、手机、IPAD都可以顺畅使用,广泛应用于网银、网游、电信领域。
支持找回密码功能   
防暴力破解(密码连续错N次则禁用用户)

三.CAS (Central Authentication Service)中央认证服务
  CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架。
  CAS 具有以下特点:
    |-开源的企业级单点登录解决方案。
    |-CAS Server 为需要独立部署的 Web 应用。
    |-CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

四.OAUTH协议
  我还记得我第一次用oauth协议是实习的时候需要跳转登录。用thankPHP框架做微信公众号的二次开发,需要用户登录账号密码才能与客服沟通,在登录账户密码的时候通过oauth协议跳转。那段实习的时光真的很难忘,感谢各位老大,挺温馨的一段实习时光。
  

oauth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是oauth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此oauth是安全的。oauth是Open Authorization的简写。

协议特点:
1.简单:不管是OAUTH服务提供者还是应用开发者,都很易于理解与使用;
2. 安全:没有涉及到用户密钥等信息,更安全更灵活;
3. 开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH;

五.如何确保授权的安全性
1.帐号和Token分离机制:
  应用通过UAC API获取最终用户信息时,通过的是token的方式获取的,就算黑客在公网获取到token也不知道是哪个系统的。session的机制也是一样,用户名与session从表面上是看不出任何关联的。

2.接口授权机制
  应用通过UAC API获取用户信息时,UAC会检测对方的IP地址是否在允许范围之内,否则黑客可以通过返回的随机CODE获取token,这就是非常危险的事情。并且就算盗取应用方的appkey和secret,没有受信的IP ,也无所谓,安全级别很高。

  
六.找回密码
1.目标:
通过用户名来找回密码
点击一次后无法再次点击
找回密码链接不应该被猜中

2.实现方式:
  生成一个随机序列存在数据库中为一条数据,会记录为此记录是否有人访问过,并与用户关联
  当用户通过邮件点击进入时,会通过密码链接中的参数(随机序列,签名)以及系统统一密钥参数进行检查有效性。
  如果通过,则通过随机序列找到对应的用户进行修改密码。
  点击一次后,会将此随机序列的记录设为已访问过,下次进来就提示:链接失效。
  这里面又继续采用了一次分离策略,黑客拿到随机序列后也不知道是谁的帐号,改了密码也没有意义。
  
3.密码策略
  密码存储为密文,表示连管理员都不知道密码是什么,只做hash验证。
  密码复杂度,复杂度可以设置成多种规则
  历史密码,修改的密码不可以修改为最近已修改过的N次密码
  防止暴力破解:验证码机制+密码错误N次自动锁定。

初识UAC(理论概括介绍)相关推荐

  1. 数据库入门理论知识介绍以及编译安装MySql

    数据库入门理论知识介绍以及编译安装MySql 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1&g ...

  2. 北航计算机学硕导师,北航计算机学院计算机软件与理论导师介绍:孙海龙

    北航计算机学院计算机软件与理论导师介绍:孙海龙本站小编 免费考研网/2016-07-26 导师详细信息 姓名:孙海龙 性别:男 出生年份:1979 职称:无 院系:计算机学院 首次聘任导师时间:201 ...

  3. 2023Matlab初级教程- 第一章 初识Matlab与界面介绍

    第一章 Matlab 初识Matlab与界面介绍 文章目录 第一章 Matlab 初识Matlab与界面介绍 Matlab初级教程 1.课程介绍 2.初识Matlab与界面介绍 2.1Matlab介绍 ...

  4. 常用的优化理论类型介绍

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.常用优化的概念 1.凸优化与非凸优化 2.建立优化问题一般思想 ...

  5. 【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景      强烈推荐阅读(http://www.cnblogs.com/jerrylead/archiv ...

  6. 初识机器学习-理论篇

    大纲 Agenda 第1章 课程介绍 什么是机器学习 第2章 认识机器学习 从数据中找规律 机器学习发展的原动力 业务系统发展的历史 第3章 机器学习的典型应用 机器学习的典型应用 第4章 数据分析和 ...

  7. 初识MQ--mq常见技术介绍

    技术对比: MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列.也就是事件驱动架构中的Broker. 比较常见的MQ实现: ActiveMQ RabbitMQ RocketM ...

  8. 使用t-sql语句修改表中的某些数据及数据类型。_数据库基本理论详细介绍

    1.数据库范式 第一范式:列不可分,eg:[联系人](姓名,性别,电话),一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF: 第二范式:有主键,保证完全依赖.eg:订单明细表[Or ...

  9. 大数据生态圈常用组件(二):概括介绍、功能特性、适用场景

    三更灯火五更鸡,正是男儿读书时. 小编整理了一些常用的大数据组件,使用场景及功能特性,希望对后浪有所帮助. 分类 名称 简介 功能特点 使用场景 大数据存储 HDFS HDFS是一个分布式的文件系统, ...

最新文章

  1. 原生js封装二级城市下拉列表
  2. Maven一:maven的下载和环境安装以及创建简单的Maven项目
  3. JAVA学习day07
  4. SCU 3133(博弈)
  5. reshape中的-1的含义
  6. 15 错误边界与使用技巧
  7. MySQL基础部分总结
  8. Linux下OneinStack一键安装JAVA+PHP+Tomcat+Nginx+MySQL网站环境
  9. 一则故事表达:并发,并行,同步,异步,线程,多线程
  10. Opencv之获取边缘和画轮廓
  11. 面向对象三,约束,加密
  12. APP开发之APP研发流程微信棋牌程序制作
  13. USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)
  14. 网页的背景颜色变化效果
  15. 量化投资_期货日内交易的波动率思考
  16. 使用计算机时,突然断电,存储在下列设备中的信息将丢失的是,下列存储设备中断电后其保存的信息会丢失的是哪一项...
  17. 硅谷创业天堂的启示!
  18. Python核心编程 课后习题 第一部分
  19. WPF 通过Image控件实现多张图片的播放
  20. Occluded-REID 行人重识别中的遮挡数据集

热门文章

  1. 身份证号码校验(JavaScript)
  2. 酒店管理系统(C语言)
  3. TWS ChargerBox 驱动篇(一):Charger
  4. gazebo仿真 UR10 + robotiq140抓取物体失败:滑出或滑落
  5. 8个你不使用的数据科学R包(但绝对应该使用)
  6. 关于C++的内存管理
  7. BIM模型一键输出 3D Tiles (for Cesium) 和 glTF/blg
  8. linux查看以i开头的文件,Linux文件查找Day.13
  9. 【Linux学习】Linux free 命令学习
  10. linux scp 指令使用