【发布时间】:2021-03-11 01:19:52
【问题描述】:
我有一个应用程序,它为经过身份验证的用户提供有关数据库中各种对象的数据的视图。在我们的生态系统中还有另一个应用程序,它使用自己的权限模型为某些相同的对象提供不同的视图。我们信任其他应用程序的权限模型,并希望允许他们向尚未通过我们应用程序通常方法进行身份验证的用户颁发访问令牌,因此这些用户只能查看其他应用程序已验证他们有权访问的特定对象.
与其为这两个应用程序之间的通信制定我们自己的规范,我想知道是否已经有一个标准方法可以通过诸如 OpenID Connect 之类的方式使用。 OIDC 似乎处理了我们在这种情况下必须考虑的大部分细节,但它似乎不适合的一个方面是它的访问令牌似乎是通用的,而不是调用一个用户有权访问的特定对象。它说“这是一个可以访问您的应用程序的用户”,而不是“这是一个可以访问项目 123 的用户”。
是否有使用访问令牌授予对特定项目的访问权限的标准,最好使用 OAuth 2 和/或 OpenID Connect?我是否正确假设在访问令牌上使用项目的 ID 作为 scope 会不恰当地使用 OAuth 范围?
【问题讨论】:
-
在我的阅读中,我发现
scope不是持有用户许可的好人选:应用程序需要拥有的范围are for specifying which groups of claims。但是sounds like 可以将数据包含在namespaced Custom Claims 中。