==单点登录系统/OAuth/SSO


谈谈互联网后端基础设施 - 后端技术杂谈 | 飒然Hang
http://www.rowkey.me/blog/2016/08/27/server-basic-tech-stack/
统一认证中心
单点登录系统

但是以上方案的一个问题是由于所有api请求都要经过网关,它很容易成为系统的性能瓶颈。因此,可以采取的方案是:去掉api网关,让业务应用直接对接统一认证中心,在基础框架层面保证每个api调用都需要先通过统一认证中心的认证,这里可以采取缓存认证结果的方式避免对统一认证中心产生过大的请求压力。

统一认证中心

统一认证中心,主要是对app用户、内部用户、app等的认证服务,包括
用户的注册、登录验证、token鉴权
内部信息系统用户的管理和登录鉴权
App的管理,包括app的secret生成,app信息的验证(如验证接口签名)等。
之所以需要统一认证中心,就是为了能够集中对这些所有app都会用到的信息进行管理,也给所有应用提供统一的认证服务。尤其是在有很多业务需要共享用户数据的时候,构建一个统一认证中心是非常必要的。此外,通过统一认证中心构建移动app的单点登录也是水到渠成的事情(模仿web的机制,将认证后的信息加密存储到本地磁盘中供多个app使用)。

单点登录系统

目前很多大的在线web网站都是有单点登录系统的,通俗的来说就是只需要一次用户登录,就能够进入多个业务应用(权限可以不相同),非常方便用户的操作。而在移动互联网公司中,内部的各种管理、信息系统同样也需要单点登录系统。目前,比较成熟的、用的最多的单点登录系统应该是耶鲁大学开源的CAS, 可以基于https://github.com/apereo/cas/tree/master/cas-server-webapp来定制开发的。此外,国人开源的kisso的这个也不错。基本上,单点登录的原理都类似下图所示:


统一登陆/单点登陆
【大前端之打通账号系统】passport应该如何落地? - 叶小钗 - 博客园
http://www.cnblogs.com/yexiaochai/p/5681066.html


腾讯客服-腾讯开放平台-第三方应用开发安全规范
http://kf.qq.com/info/66897.html
严禁在自己系统处理用户Login,必须使用腾讯公司统一提供的登录接口或者参数openid/openkey登录。
获取到openid/openkey后必须进行校验才能使用,校验规则请见这里。


前言和名词定义 - 黄页开发者文档中心
http://open.huangye.miui.com/wiki/%E5%89%8D%E8%A8%80%E5%92%8C%E5%90%8D%E8%AF%8D%E5%AE%9A%E4%B9%89
小米帐号互通:是一种使用系统帐号直接登录的技术,基于Oathu2.0

小米账号OAuth 2.0授权 - 黄页开发者文档中心
http://open.huangye.miui.com/wiki/%E5%B0%8F%E7%B1%B3%E8%B4%A6%E5%8F%B7OAuth_2.0%E6%8E%88%E6%9D%83

帐号开放平台接入方法 - 小米开放平台
http://dev.xiaomi.com/docs/passport/way/

服务上线测试要求 - 黄页开发者文档中心
http://open.huangye.miui.com/wiki/%E6%9C%8D%E5%8A%A1%E4%B8%8A%E7%BA%BF%E6%B5%8B%E8%AF%95%E8%A6%81%E6%B1%82
提交审核前的自查列表:
我们提供了一份checklist,帮助开发者自我检查,当所有条件都符合后,就达到了提测的标准。
请点击这里下载《上线前Checklist》

==单点登录系统/OAuth/SSO_第1张图片
《上线前Checklist》

//安全问题
设计安全的账号系统的正确姿势 - CoderZh Blog
http://blog.coderzh.com/2016/01/03/security-design/
防范方法
防范的方法简单来说数据从用户键盘敲出的那一刻,到服务器后台存储都要保持正确的姿势。比如:

用正确的姿势保存密码。
用正确的姿势传输数据。
用正确的姿势加密敏感信息。
用正确的姿势对数据进行备份和监控。

//用正确的姿势保存密码

  1. 低级错误:明文保存密码
  1. 低级错误:可逆加密密码
  2. 错误方法:md5 加密密码
  3. 正确方法:加盐 hash 保存密码

4. salt 的值不要和最终 hash 的结果存在同一个数据库。



15.app后端怎么设计用户登录方案 - 曾健生的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/newjueqi/article/details/44062849

  1. 保证登录的安全性,最起码要使用https协议
    2.基本的用户登录方案
    在传统的web网站中,可以使用cookie+session来实现用户的登录维护,那么在app后端,可以怎么实现呢?

16.app后端如何保证通讯安全--url签名 - 曾健生的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/newjueqi/article/details/44154791

  1. url签名详解
  2. url签名的不足之处
    url签名有两个缺点:
    1.当用户第一次登录后token是明文返回,有被截取的风险
  3. url签名只能保护token值却没法保护其他敏感数据,例如,当用户更新自己的个人信息时,所有的信息在传输过程中应该是被加密的
    怎么解决这两个问题?使用下篇介绍的对称加密的算法就可以了。

17.app后端如何保证通讯安全--aes对称加密 - 曾健生的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/newjueqi/article/details/44177063
1.对称加密的原理

  1. api请求中AES算法的应用
    (2)怎么保证token在初次返回时的安全
    注意:Token-Param是自己定义的http header,这里是因为个人习惯才命名为Token-Param
    secretKey就是密钥,使用http header中的Token-Param中的16位长度。
    服务端返回时加密token的方法是用AES加密,密钥是secretKey。
    客户端解密token的方法是用AES解密,密钥是secretKey。

--EOF--

你可能感兴趣的:(==单点登录系统/OAuth/SSO)