【问题标题】:What is the correct grant type for browserless connections like calling a REST API from a server?什么是无浏览器连接的正确授权类型,例如从服务器调用 REST API?
【发布时间】:2021-01-24 22:05:26
【问题描述】:

我正在尝试了解 OAuth2 及其宏大类型。我只是想知道使用 REST API 授权无浏览器应用程序(例如作业)的专有授权类型流程是什么。

authorization_codeimplicit flow 需要用户交互(在浏览器中写入用户名和密码),因此两者都不适合无浏览器授权。

client_credentials 可以工作,但是授权过程中没有用户,那么如果 REST API 需要知道用户来检查权限/角色/范围,会发生什么?也许为每个用户创建一个客户端可以工作,但听起来很糟糕。

passwordgrant 类型将在 OAuth2.1 规范中被弃用,因此这不是一个选项。

您可能认为 OAuth2 不是在这种情况下使用的框架,因为您不需要授权委托,但是如果您同时拥有两者(这很常见),您可以在其中委托授权的单页应用程序怎么办还有一个 REST API。使用 Oauth2 授权 REST API 的正确方法是什么?

【问题讨论】:

    标签: oauth-2.0 authorization


    【解决方案1】:

    鉴于这是一项后台作业,Client Credentials Grant 是与 OAuth 2.0 相关的最佳方法。而且,它不使用任何最终用户凭据(最终用户和客户端是 OAuth 2.0 的两个不同实体)。因此,您只需要给定客户端应用程序的凭据即可。

    其他方法是启用 API 令牌。但这需要一个手动步骤,您将在其中将令牌插入后台作业。同样,这独立于任何最终用户。

    p.s - 了解角色(即 - 客户与最终用户/资源所有者) - OAuth 2.0 roles

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      相关资源
      最近更新 更多