选择正确的赠款类型

时间:2018-07-19 19:54:16

标签: oauth-2.0

我正在阅读有关OAuth 2的信息,我发现以下文章有助于确定我应该实施哪种授权。

https://oauth2.thephpleague.com/authorization-server/which-grant/

我对链接中描述的流程图有疑问。

1)当访问令牌所有者是计算机时? 如果访问令牌所有者是服务器中运行的cron作业,我可以说访问令牌所有者是计算机吗?

2)何时访问令牌是用户? 如果客户端用户是人类用户(最终用户),我可以说访问令牌所有者是用户吗?

3)什么是Web应用程序?应用程序是否在服务器上运行并通过Web客户端访问?例如,一个PHP应用程序。

4)什么是基于用户代理的应用程序?使用JS开发的应用程序是否像Angular应用程序一样?

谢谢。

1 个答案:

答案 0 :(得分:0)

我仔细阅读了上面提到的文档,下面我尝试将 OAuth 2.0 specification 中定义的原始资助类型与其相对应。

1)当访问令牌所有者是计算机时?如果访问令牌所有者是服务器中运行的Cron作业,我可以说访问令牌所有者是计算机吗?

在这里,令牌不一定是颁发给机器,也不属于机器。它可能是在没有最终用户交互但需要OAuth 2.0令牌的计算机上运行的应用程序。如您所说,这可能是具有OAuth 2.0客户端凭据的Cron作业。该客户端必须是机密客户端,这意味着它必须具有客户端ID和密码。可以从here

阅读更多内容

2)何时访问令牌是用户?如果客户端用户是人类用户(最终用户),我可以说访问令牌所有者是用户吗?

是的,这是正确的。此处访问令牌归最终用户所有。最终用户通过允许客户端使用访问令牌来授权客户端应用程序访问OAuth 2.0资源。

3)什么是Web应用程序?应用程序是否在服务器上运行并通过Web客户端访问?例如,一个PHP应用程序。

根据图示的角度来看,一个Web应用程序可以利用用户代理(浏览器)完成授权请求,并具有能够获取令牌的后端。重点是后端令牌请求,因为并非所有应用程序都可以执行此操作。例如,没有后端的单页应用程序无法执行此调用。因此,如果PHP应用程序可以执行后端调用,那么可以,它是一个Web应用程序。流程是授权码流程。

4)什么是基于用户代理的应用程序?是像Angular应用一样使用JS开发的应用吗?

是的,这是正确的。它没有后端(可能会消耗一个后端),但是依赖JS并在浏览器上运行。因此,它将主要使用隐式流程(但如果最终用户信任,则如此处所示授予最终用户密码)