授权认证中心: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;这样授权服务器压力也小,也灵活