【问题标题】:Multiple oauth clients for the same api同一个 api 的多个 oauth 客户端
【发布时间】:2019-12-06 03:47:25
【问题描述】:

我正在尝试完成以下场景。

我目前拥有 API 和一个网络应用程序。我还在我的身份验证服务器(keycloak)上创建了一个新的 oauth 客户端,它遵循隐式授权。我还在我的 nodejs api 上使用了 jwks 来进行令牌验证。

现在我想创建一个以相同 API 为目标的 SDK。

问题是如何让 SDK 从身份验证服务器检索访问令牌。第一个想法是我必须在 authserver 上创建一个新的客户端 oauth 客户端,然后使用客户端凭据流来获取访问令牌。但是,我不知道我的 API 的行为应该是什么样的。目前它使用 jwks 对抗单个观众。应该如何配置它来验证来自多个客户端(可能有数千个)的访问令牌

【问题讨论】:

    标签: node.js authentication oauth-2.0 keycloak


    【解决方案1】:

    如果您希望多个客户端调用您的 API,它们都应该使用相同的受众,并且您的第一级安全性将起作用。

    访问令牌中的受众代表可以使用令牌的 API。

    然后,您将需要使用其他东西来授权 API 请求,具体取决于客户端的类型和允许他们执行的操作。

    在您的身份验证服务器中配置每种类型的客户端,以便您可以控制并知道谁在调用 API。

    您可能有 1000 个客户端,但只有 4 个权限级别 - 在这种情况下,仅配置 4 个 OAuth 客户端可能有意义。

    您可以使用的一个 OAuth 选项是为不同的客户端提供不同的范围。范围可以代表高级权限。

    如果特定客户端调用 addOrder 操作但没有 Orders 范围,您可以返回 403 响应。

    尽管 API 授权通常需要超越 OAuth 检查并根据最终用户权限应用自定义规则。

    如果您可以提供有关您的方案的更多信息,我可以提供更完整的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      相关资源
      最近更新 更多