microservices - 微服务架构中的Server-2-server授权
问题描述
我很清楚微服务架构中的用户授权(用于处理身份验证、SSO、授权微服务等的 API 网关)。现在我正在考虑微服务之间的授权请求。还有一个问题——如果我没有用户,我有哪些选择?
例如 - 分析服务,它从计费中请求数据并构建复杂的报告。没有用户,但我需要从分析服务向计费请求授权吗?
我知道可以有无穷无尽的令牌,但我认为这不是一个好主意。服务之间的授权请求还有哪些选择?
解决方案
在 OAuth2 规范中有一种叫做机器对机器令牌的东西。这与涉及您的用户授权的密码凭证流程不同。
要创建机器对机器令牌,您应该实现一个称为客户端凭据流的流。在这个流程中,基本上所有服务都有一个特定的客户端 ID 和客户端密码,并且您正在调用您的中央 oauth-server 以获取令牌。由于还需要在中央服务中配置客户端详细信息,因此您将在客户端调用之间获得授权,即哪个客户端可以调用哪个其他客户端。还有每个令牌的生存时间配置。
如果您已经有 OAuth2 设置,那么引入这个新流程可能很容易。但是,如果您不使用自己的设置来实现这样的事情可能会很棘手。请查看https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2#grant-type-client-credentials
推荐阅读
- apache-flink - 更改在纱线上运行的 flink 作业的日志文件输出路径
- python - How to create new column with parts of the sentence from another column of pandas dataframe?
- javascript - 如何在 TypeScript 中表示包含多种类型的二维数组?
- azure-cognitive-services - 如何强制认知服务返回错误
- performance - WP 网站在 000webhost.com 上加载超过一分钟工作正常
- php - How to update meta_value to wp_postmeta
- javascript - react - ensure css loaded before iframe renders
- flutter - 互联网网络出现问题时显示对话框
- javascript - Expanding array of objects
- android - 致命异常:java.lang.SecurityException 无效的 API 密钥(谷歌地图)