授权认证中心:OAuth2

来源
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
《微服务架构实战160讲》

OAuth2授权认证中心

1 解决的问题

资源拥有者将资源存储在云服务上,需要通过第三方应用来访问此资源进行一些操作,怎么做?

  • 密码用户名复制
    授权认证中心:OAuth2
    适合公司内部使用,开发系统间不太安全

  • 万能钥匙
    授权认证中心:OAuth2
    协商一个developerKey,也是不太安全

  • 特殊令牌
    授权认证中心:OAuth2
    这种跟OAuth2就很接近了

2 简易流程

获取数据的流程:
授权认证中心:OAuth2
OAuth2的体现:
授权认证中心:OAuth2

3 四种典型模式

授权码模式、简化模式、密码模式、客户端模式(docker拉取镜像):http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

简化模式:C中获取到token,直接发起请求即可

选型:
授权认证中心:OAuth2

4 刷新令牌

授权认证中心:OAuth2
A中使用的就是四种典型模式 之一获取的token,如授权码模式

5 JWT令牌

属于自包含令牌,由授权服务器颁发的令牌,包含关于用户或者客户的元数据和声明(claims)
通过检查签名,期望的颁发者(issuer) (issuer) (issuer),期望的接收人 aud(audience),或者 scope , 资源服务器可以在本地校验令牌通常实现为签名的 JSON Web Tokens(JWT)。不需要去授权服务器校验

分为三部分:Header标识类型为JWT,使用了什么算法进行签名;Claims提供了额外的信息,资源服务器拿到这些信息可以做相应的授权等操作;Signature就是签名
授权认证中心:OAuth2

6 OpenID Connect

基于 OAuth2之上构建的简单身份认证层:
授权认证中心:OAuth2

7 微服务安全架构

方案一:token+jwt
授权认证中心:OAuth2
方案二:jwt;减少授权服务器的压力,但是少了灵活性,如无法集中到授权服务器吊销,只能等待自然过期
授权认证中心:OAuth2
方案三:token+jwt+redis;这样授权服务器压力也小,也灵活
授权认证中心:OAuth2