OpenId连接范围的粒度是多少?

时间:2018-05-22 15:32:54

标签: architecture oauth-2.0 openid-connect

我有一个身份提供程序,一些客户端应用程序和一堆实现为RESTful服务的API资源。有些客户需要一个API,其他客户可能需要多个API。可能还有" API间依赖关系",例如 客户需要API X和API X需要API Y。

在这种情况下,适当的范围粒度是多少?有没有最好的做法?

我可以想象以下解决方案:

  1. 每个API一个范围:可能会导致大型令牌。此外,在上面的示例中,客户端也不知道它实际上也需要API Y.
  2. 所有API的一个范围:这可以解决(用户同意的粒度不是问题)。但是,客户端最终会得到一个它实际上并不需要的超强访问令牌。
  3. 每个API一个范围,但使用引用标记:作为解决方案1,但令牌仍然很小。这将导致对内省端点的大量调用。

1 个答案:

答案 0 :(得分:0)

在具有大量应用程序的大型企业实现中,我们经常使用URI作为范围,并且它们可以非常精细。每个应用程序或API的CRUD都是典型的。

我们还看到一些授权服务器提供来自LDAP(有时50个或更多)的组CN作为范围。

还要记住OAuth 2.0 Incremental AuthorizationGoogle has an active implementation