- 内容提要
- 译者序
- 前言
- 第 1 章 欢迎迈入云世界,Spring
- 第 2 章 使用 Spring Boot 构建微服务
- 第 3 章 使用 Spring Cloud 配置服务器控制配置
- 第 4 章 服务发现
- 第 5 章 使用 Spring Cloud 和 Netflix Hystrix 的客户端弹性模式
- 第 6 章 使用 Spring Cloud 和 Zuul 进行服务路由
- 第 7 章 保护微服务
- 第 8 章 使用 Spring Cloud Stream 的事件驱动架构
- 第 9 章 使用 Spring Cloud Sleuth 和 Zipkin 进行分布式跟踪
- 第 10 章 部署微服务
- 附录 A 在桌面运行云服务
- 附录 B OAuth2 授权类型
B.1 密码授权
OAuth2 密码授权可能是最容易理解的授权类型。这种授权类型适用于应用程序和服务都明确相互信任的时候。例如,EagleEye Web 应用程序和 EagleEye Web 服务(许可证服务和组织服务)都由 ThoughtMechanix 拥有,所以它们之间存在着一种天然的信任关系。
注意
明确地说,当我提到“天然的信任关系”时,我的意思是应用程序和服务完全由同一个组织拥有,并且它们是按照相同的策略和程序来管理的。
当存在一种天然的信任关系时,几乎不用担心将 OAuth2 访问令牌暴露给调用应用程序。例如,EagleEye Web 应用程序可以使用 OAuth2 密码授权来捕获用户凭据,并直接针对 EagleEye OAuth2 服务进行验证。图 B-1 展示了 EagleEye 和下游服务之间的密码授权。
图 B-1 OAuth2 服务确定访问服务的用户是否为已通过验证的用户
在图 B-1 中,正在发生以下活动。
(1)在 EagleEye 应用程序可以使用受保护资源之前,它需要在 OAuth2 服务中被唯一标识。通常,应用程序的所有者通过 OAuth2 服务进行注册,并为其应用程序提供唯一的名称。OAuth2 服务随后提供一个密钥给正在注册的应用程序。
应用程序的名称和由 OAuth2 服务提供的密钥唯一地标识了试图访问任何受保护资源的应用程序。
(2)用户登录到 EagleEye,并将其登录凭据提供给 EagleEye 应用程序。EagleEye 将用户凭据以及应用程序名称、应用程序密钥直接传给 EagleEye OAuth2 服务。
(3)EagleEye OAuth2 服务对应用程序和用户进行验证,然后向用户提供 OAuth2 访问令牌。
(4)每次 EagleEye 应用程序代表用户调用服务时,它都会传递 OAuth2 服务器提供的访问令牌。
(5)当一个受保护的服务(在本例中是许可证服务和组织服务)被调用时,该服务将回调到 EagleEye OAuth2 服务来确认令牌。如果令牌是有效的,则被调用的服务允许用户继续进行操作。如果令牌无效,OAuth2 服务将返回 HTTP 状态码 403,指示该令牌无效。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论