澄清OAUTH 2拨款类型

时间:2016-10-10 03:07:55

标签: android ios api oauth-2.0

正在做一些关于OAUTH2的阅读。

因此...

  • 授权码授予:适用于想要通过第三方应用访问我的应用/ API的用户。示例:用户通过Flicker想要访问我的照片打印API。在这种情况下,Flicker将使用MY服务器执行所有重定向和OAUTH2流程。提供访问令牌,第三方应用程序可以根据需要使用MY API。应用程序开发人员需要注册以获取客户端ID和客户端密码。

  • 隐含:与上述相同,但移动/应用没有后端服务器来保护客户端机密。移动应用程序将处理重定向和OAUTH2流程。提供访问令牌,第三方应用程序可以根据需要使用MY API。不支持刷新令牌。应用程序开发人员需要注册才能获取客户端ID。

  • 资源所有者密码凭据授权:在这种情况下,这是我通过典型的iTunes / Play商店分发给我的用户的MY移动/网络应用。用户严格使用我的应用程序来完成他们的日常工作。我的移动/网络应用程序会询问用户用户名/密码,并将其发布到我的后端进行身份验证,然后提供访问令牌。

  • 客户端凭据授予:此案例用于应用程序执行内部计算机内容。即:我的App1访问了我的App2,在后端的某个地方。

目前我还没有预见到我的API与第三方共享,我的用户将通过iTunes / google play安装我的应用程序。我认为密码凭证现在对我有好处。最终,如果我想向世界其他地方开放我的API,我将不得不实施授权代码资助

当我四处寻找这个主题时,我遇到了这个链接:https://alexbilbie.com/guide-to-oauth-2-grants/这个决策流程很好。

1 个答案:

答案 0 :(得分:0)

当您想要将资源访问权限授权/委托给客户端(第三方应用程序)时,使用OAuth2。

至少有4位演员:

  • 授权服务器
  • 客户
  • 资源所有者
  • 资源服务器

应用程序/ API是资源服务器。它存储和管理资源所有者的所有资源。

客户端是想要访问这些资源的一方。 授权服务器是授权客户端通过发出访问令牌来访问资源的服务器。

  • 授权代码授权是为机密客户端设计的(能够保证其凭据安全)。
  • 隐式授权是为公共客户端(不是机密客户端)设计的,特别是对于脚本语言应用程序(JS ...)
  • 资源所有者密码凭据授权适用于任何类型的客户端,但假设客户端知道资源的密码凭据。通常,此授权类型仅专用于受信任的客户端。
  • 客户端凭据授权允许客户端访问自己的资源(在这种情况下,资源所有者是客户端)。

应避免使用资源所有者密码凭据授权,但对于旧版应用程序而言,如果客户端之间存在信任关系,则仍然是一个很好的解决方案, 授权服务器资源服务器