首页 > 解决方案 > 微服务架构中的Server-2-server授权

问题描述

我很清楚微服务架构中的用户授权(用于处理身份验证、SSO、授权微服务等的 API 网关)。现在我正在考虑微服务之间的授权请求。还有一个问题——如果我没有用户,我有哪些选择?

例如 - 分析服务,它从计费中请求数据并构建复杂的报告。没有用户,但我需要从分析服务向计费请求授权吗?

我知道可以有无穷无尽的令牌,但我认为这不是一个好主意。服务之间的授权请求还有哪些选择?

标签: microservicesapi-authorization

解决方案


在 OAuth2 规范中有一种叫做机器对机器令牌的东西。这与涉及您的用户授权的密码凭证流程不同。

要创建机器对机器令牌,您应该实现一个称为客户端凭据流的流。在这个流程中,基本上所有服务都有一个特定的客户端 ID 和客户端密码,并且您正在调用您的中央 oauth-server 以获取令牌。由于还需要在中央服务中配置客户端详细信息,因此您将在客户端调用之间获得授权,即哪个客户端可以调用哪个其他客户端。还有每个令牌的生存时间配置。

如果您已经有 OAuth2 设置,那么引入这个新流程可能很容易。但是,如果您不使用自己的设置来实现这样的事情可能会很棘手。请查看https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2#grant-type-client-credentials


推荐阅读