我正在设计一个安全后端,它应该为多个客户端提供令牌,以保护许多API。用户数据库位于Azure B2C https://azure.microsoft.com/en-us/services/active-directory-b2c/中。 我想创建包含基于用户访问权限的不同声明的API令牌。例如:用户A应该可以调用/ api / stores / 11,但不能调用/ api / stores / 12。
用例:
到目前为止我的解决方案:
我的问题是,这是否是一个可行的解决方案?太复杂了吗?在这种情况下你会做些什么?我不想实现第二个用户登录,Azure B2C似乎不支持细粒度的访问权限。
提前谢谢你。
答案 0 :(得分:4)
这实际上是一种非常常见的架构。
核心身份和令牌平台归你所有 - 这是唯一理智的事情。
然后,您可以使用任何机制(在您的情况下为Azure B2C)进行身份验证。您可能希望将来使用用户或其他一些身份验证机制添加本地数据库。这完全没问题。
重要的是 - 您的应用程序不关心这一点。他们所知道的只是您的平台(在您的情况下使用identityserver构建)。如果您决定有一天需要更改身份验证提供程序 - 那没关系。您的申请不受此事实的影响。
此时,您的应用和服务只需要信任来自身份服务器的令牌 - 身份服务器负责与外部各方建立信任。
答案 1 :(得分:1)
这对IdentityServer4非常有用。您的用例可以照顾。我建议您查看samples。