如何在微服务架构中授权客户端

时间:2020-07-14 13:30:05

标签: spring-boot authorization microservices

我正在尝试构建类似于Spotify的应用程序,用户在订阅后可以访问特定内容。我正在尝试使用微服务架构来构建它。客户端是一个android应用。

因此,对于用户身份验证,我有一个“帐户服务”。它利用Oauth2代码对用户进行身份验证。 为了访问内容,我制作了一项称为“内容服务”的服务,该服务将授权用户访问内容,从而为他们提供内容的签名URL(在这种情况下,链接为.mp3)。

现在,如何在“内容服务”中授权用户请求。所有订阅详细信息都存储在“帐户服务”数据库中。我不希望它与帐户服务进行通信,因为那样做会破坏使用微服务体系结构的目的。

因此,为了解决这个问题,我正在考虑利用数字签名。让帐户服务生成一个密钥对,将公共密钥发送到“内容服务”或其他某个密钥库服务。在JSON中指定访问/授权,对其进行签名,然后将其发送给客户端。当客户端想要访问任何内容时,它将此签名的JSON发送到“内容服务”,后者通过使用先前发送的密钥“帐户服务”来检查其有效性,从而授权用户并授予访问权限。

我想知道一种更好/标准化的方法。

0 个答案:

没有答案