【问题标题】:Which granularity for scopes in OpenId connect?OpenId 中范围的哪个粒度连接?
【发布时间】:2018-05-24 18:59:39
【问题描述】:

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

在这种情况下,合适的范围粒度是多少?有没有最佳实践?

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

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

【问题讨论】:

  • 它的实现依赖于但可以想象,只要请求范围 X,AS 就会添加范围 Y; OTOH 可以通过 API X 获取自己的令牌来访问 API Y 的方式来实现后端,例如使用 client_credentials 授权

标签: architecture oauth-2.0 openid-connect


【解决方案1】:

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

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

请记住OAuth 2.0 Incremental AuthorizationGoogle has an active implementation.

【讨论】:

    猜你喜欢
    • 2021-09-24
    • 2018-06-12
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多