• 认证与授权协议对比:OAuth2、OpenID、SMAL


    认证授权是目前大多数系统都必须要实现都功能,认证就是验证用户都身份,授权就是验证身份后对受限资源的访问控制。最开始是单个平台要做,后来在互联网时代到来,一个账户可登陆多个平台,然后是各种开放平台账户共享,认证授权变的越来越重要。关于验证授权方面的规范协议也相对成熟通用。

    最早出现的认证授权协议是SMAL,一般用在企业级单点登陆场景。平时接触到的不多。

    OAutho是看到的用的比较多的认证协议,尤其是在API认证授权时用,最开始是1.0版本,后来因为有回话攻击、会话劫持的漏洞,出了1.0a版本,讲回调链接前置、增加安全验证签名等,但编程实现较麻烦,后来出现OAuth2版本,但不兼容之前的版本。一般见到大多数时用OAutho2或OAutho1.0a。

    OpenId一开始出现是为了解决认证的问题,后来出现了OpenId Connect,在OAutho的基础上也可以实现授权的功能。

    对比点OAuth2OpenIDSMAL
    票据格式 JSON or SAML2 JSON XML
    支持授权 Yes No Yes
    支持认证 “伪认证” Yes Yes
    创建年份 2005 2006 2001
    最新版本 OAuth2 OpenID Connect SAML 2.0
    传输方式 HTTP HTTP GET and HTTP POST HTTP重定向,SAML SOAP绑定,HTTP POST绑定等
    安全弱点 不能抵抗网络钓鱼,OAuth没有使用数据签名和加密等措施,数据安全完全依赖TLS 不能抵抗网络钓鱼,一个钓鱼的IDP如果恶意记录下来用户的OpenID,将会造成很严重的隐私安全问题 XML签名存在漏洞,可能被伪造
    使用场景 API 授权 商用应用的单点登录 企业级单点登录,但是对于移动端支持不是很好

    对比表格来源:http://www.jianshu.com/p/5d535eee0a9b

  • 相关阅读:
    构建之法 团队和流程
    构建之法之个人技术和流程重点介绍
    几种数据库连接
    Ckidt
    hibernate_04_hibernate多对多的关系映射
    hibernate_03_hibernate一对多的关系映射
    hibernate_02_hibernate的入门
    hibernate_01_SSH环境搭建
    SpringBoot_05_ssm拦截器和默认欢迎页面的设置
    SSM14-通过AOP实现日志记录
  • 原文地址:https://www.cnblogs.com/doit8791/p/7849622.html
Copyright © 2020-2023  润新知