授权认证中心:OAuth2

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

OAuth2授权认证中心

1 解决的问题

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

  • 密码用户名复制
    在这里插入图片描述
    适合公司内部使用,开发系统间不太安全

  • 万能钥匙
    在这里插入图片描述
    协商一个developerKey,也是不太安全

  • 特殊令牌
    在这里插入图片描述
    这种跟OAuth2就很接近了

2 简易流程

获取数据的流程:
在这里插入图片描述
OAuth2的体现:
在这里插入图片描述

3 四种典型模式

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

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

选型:
在这里插入图片描述

4 刷新令牌

在这里插入图片描述
A中使用的就是四种典型模式 之一获取的token,如授权码模式

5 JWT令牌

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

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

6 OpenID Connect

基于 OAuth2之上构建的简单身份认证层:
在这里插入图片描述

7 微服务安全架构

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

发布了235 篇原创文章 · 获赞 264 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41594698/article/details/102958259