【问题标题】:OIDC OAuth 2.0 Authentication and AuthorizationOIDC OAuth 2.0 认证和授权
【发布时间】:2020-02-21 02:14:58
【问题描述】:

我们的 APP 使用 2L auth 类型在 OIDC 中注册。我们是否必须向消费者应用分享我们的客户端 ID 和 Secret 才能访问我们的 API?

我了解 OAuth 2.0 客户端凭据授予流程允许客户端使用自己的凭据进行身份验证,而不是冒充用户。

由于许多消费者将访问我们的 API,我们可以授权我们允许谁访问我们的 API,而不是共享我们的客户端凭据。假设 A 和 B 都在 OIDC 中注册了他们的应用程序,OIDC 中是否有任何 ACL 可以授予消费者 A 而不是消费者 B 的访问权限。

【问题讨论】:

    标签: rest oauth-2.0 openid-connect


    【解决方案1】:

    Oauth 2.0 规范定义了scope 的概念,用于表达访问令牌的授权。

    所以在 Oauth 2.0 中,你上面提到的“ACL”是用范围来表示的。当您在 IdP 注册一个客户时,您必须指定该客户的范围,该范围是“我们可以授予消费者 A 而不是消费者 B 的访问权限”。

    您的 API(资源服务器)将被设计为端点将接受具有适当范围的访问令牌的请求。

    例如:

    注册客户:client A (scope = email), client B (scope = address)

    获取每个客户端的访问令牌(通过 client_credential 流):access_token_A, access_token_B

    您的 API:endpoint1 -(由email 范围授权)。所以当你发送两个请求时,一个是access_token_A,一个是access_token_B,前一个请求会成功(正确的范围),然后会失败。

    参考资料:

    [https://www.oauth.com/oauth2-servers/the-resource-server/][1]

    https://www.rfc-editor.org/rfc/rfc6749

    【讨论】:

      猜你喜欢
      • 2018-12-11
      • 2014-12-27
      • 2019-02-15
      • 2018-05-14
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多