何时使用 Web 服务器、安装的应用程序和服务帐户身份验证流程?
When to use Web server, installed application and service account authentication flows?
我想使用 python 构建 Sheetsu 应用程序的克隆。为此,我需要对用户进行身份验证和授权。我在 OAuth 2.0 身份验证流程中遇到了三种类型。他们是
1.网络服务器
2.安装的应用程序
3. 服务账号
谁能解释一下这三者的区别?
OAuth2.0 场景:
- 网络服务器
用户与之交互的应用程序托管在网络服务器上。用户想要将对其数据的访问权限委托给此应用程序
建议的 OAuth2.0 流程:-
授权码授予。
- 已安装的应用程序
用户与之交互的应用程序托管在设备上,例如phone 应用程序或桌面应用程序。同样,用户希望将对其数据的访问权限委托给此本机应用程序
建议的 OAuth2.0 流程:-
使用 PKCE 授予授权码。
- 服务帐号
应用程序托管在网络服务器上。应用程序需要令牌才能从 API 访问数据,但不需要在最终用户的特定上下文中访问
建议的 OAuth2.0 流程:-
客户端凭据授予。
或者,传递服务帐户用户名和密码的资源所有者密码凭据 - 一些遗留 API 的工作方式与此类似,但应尽可能避免这种流程。
还有另一种类型的应用程序:
- 单页应用程序 (SPA)
用户与之交互的应用程序在他们的 Web 浏览器服务器上运行。用户想要将对其数据的访问权限委托给此应用程序
建议的 OAuth2.0 流程:-
授权码授予 public 客户端,如果可用,
隐式授予。
我想使用 python 构建 Sheetsu 应用程序的克隆。为此,我需要对用户进行身份验证和授权。我在 OAuth 2.0 身份验证流程中遇到了三种类型。他们是 1.网络服务器 2.安装的应用程序 3. 服务账号
谁能解释一下这三者的区别?
OAuth2.0 场景:
- 网络服务器
用户与之交互的应用程序托管在网络服务器上。用户想要将对其数据的访问权限委托给此应用程序
建议的 OAuth2.0 流程:-
授权码授予。
- 已安装的应用程序
用户与之交互的应用程序托管在设备上,例如phone 应用程序或桌面应用程序。同样,用户希望将对其数据的访问权限委托给此本机应用程序
建议的 OAuth2.0 流程:-
使用 PKCE 授予授权码。
- 服务帐号
应用程序托管在网络服务器上。应用程序需要令牌才能从 API 访问数据,但不需要在最终用户的特定上下文中访问
建议的 OAuth2.0 流程:-
客户端凭据授予。
或者,传递服务帐户用户名和密码的资源所有者密码凭据 - 一些遗留 API 的工作方式与此类似,但应尽可能避免这种流程。
还有另一种类型的应用程序:
- 单页应用程序 (SPA)
用户与之交互的应用程序在他们的 Web 浏览器服务器上运行。用户想要将对其数据的访问权限委托给此应用程序
建议的 OAuth2.0 流程:-
授权码授予 public 客户端,如果可用,
隐式授予。