何时使用Web服务器,已安装的应用程序和服务帐户身份验证流程?

时间:2019-02-25 12:51:10

标签: oauth-2.0 google-sheets-api google-oauth2 google-authentication

我想使用python构建Sheetsu应用程序的克隆。为此,我需要对用户进行身份验证和授权。我在OAuth 2.0身份验证流程中遇到了三种类型。他们是 1. Web服务器 2.已安装的应用程序 3.服务帐户

有人可以向我解释这三者之间的区别吗?

1 个答案:

答案 0 :(得分:1)

OAuth2.0方案:

  1. Web服务器

与用户交互的应用程序托管在Web服务器上。用户希望将对其数据的访问权限委派给该应用程序

建议的OAuth2.0流:-

授权码授予。


  1. 已安装的应用程序

与用户互动的应用托管在设备上,例如手机应用程序或桌面应用程序。同样,用户希望将对其数据的访问权限委派给该本地应用程序

建议的OAuth2.0流程:-

与PKCE的授权代码授予。


  1. 服务帐户

应用程序托管在Web服务器上。该应用程序需要令牌来访问API中的数据,但不需要在最终用户的特定上下文中

建议的OAuth2.0流程:-

客户证书授予。

或者,资源所有者密码凭据传递了服务帐户的用户名和密码-某些旧版API可以像这样工作,但是在可能的情况下避免这种流程。

还有另一种应用程序:

  1. 单页应用(SPA)

与用户进行交互的应用程序在其Web浏览器服务器上运行。用户希望将对其数据的访问权限委派给该应用程序

建议的OAuth2.0流程:-

与其他公共客户端的授权代码授予,

隐性授予。