我正在探索基本的面向服务的架构,我想知道如何最好地处理整个服务中的用户身份验证。
作为一个非常简单的示例,假设我们有一个调用其他两个服务的博客应用程序:
- 用于存储用户数据和交换凭据以获取访问令牌的用户/身份验证服务
- 用于管理帖子数据的帖子服务
假设应用程序的用户正在尝试删除特定帖子,并且只有具有“管理员”角色的用户才能这样做。
需要提出以下要求:
应用程序-> 身份验证
验证当前用户(通过某种令牌)。如果令牌过期,应用程序可以将用户重定向到登录表单等。
应用程序->帖子
删除帖子。
帖子->授权
在删除帖子之前,帖子服务需要确保发出请求的用户有权这样做。验证当前用户(通过令牌)并确保他们具有“管理员”角色。
这是一个过于简单的例子,但我很好奇人们是如何在他们的服务中处理身份验证的。似乎每个服务都需要单独调用身份验证服务才能授权请求。是这样吗?在这种 SOA 中是否有更好的方法来处理身份验证?
谢谢!