我正在研究如何为系统范围建模,从概念上讲,我们可以在api之间共享范围,这样用户就不必同意对他们没有意义的大量范围。
我们正在使用IdentityServer 4作为我们的oauth实现。
例如
我们有2个服务,它们提供时间表数据,这些数据位于两个单独的url上托管的两个单独的api上,因为它们处理不同的第三方系统。
用户仅对授予对其时间表数据的访问权限感兴趣,因此我计划在2个APIResource的单一范围(timetable.read)上进行规划,此后我发现在IdentityServer中不允许这样做,请参见https://github.com/IdentityServer/IdentityServer4/issues/2304
在概念上将它们建模为IdentityServer中的单个APIResouce,但是使用两个离散的API,这有什么问题吗?我在IdentityServer中找不到能阻止这种情况的任何东西。
答案 0 :(得分:0)
您所做的事情并没有错。如果您的多个单独托管的api实际上是您的业务问题域内单个虚拟api的一部分,则物理隔离无关紧要,并且正如您已经研究的那样,Identity Server 4实施中没有任何东西可以阻止这种情况。
本质上,您只需要回答以下问题:在您的上下文中拥有具有多个作用域的单个api资源并共享这些作用域是否合理。