我正在尝试构建OAuth 2提供程序,并且Web服务器流程非常紧张,但我无法找到实现已安装应用程序流的最佳方法
我见过的大多数示例基本上都遵循移动应用程序中嵌入式浏览器中的Web服务器流程,这通常也是facebook和google演示第三方应用程序使用其API的方式
但facebook和googles自己的移动应用程序实际上是使用该流程还是有更好的方法来实现移动身份验证
我的主要问题主要来自客户端ID和客户端密码,如果它嵌入到移动应用程序的每个安装版本中,它变得基本无用,因为它很容易被嗅到,并且没有明确的oauth 2个例子,每个应用程序客户秘密的基础
这是使用oauth 2保护我自己的移动应用程序的最佳方式
答案 0 :(得分:0)
由于您可能希望拥有基于用户的授权,并且不希望在客户端处理用户名/密码,因此您可以选择使用Implicit Grant flow或Authorization Code Grant flow(你打电话给网络服务器流程)。
现在查看OAuth 2规范的Installed Applications section。在那里他们说:
在隐式授权类型和授权代码授予类型之间进行选择时,应考虑以下内容:
- 使用授权代码授权类型的本机应用程序应该不使用客户端凭据,因为本机应用程序无法保密客户端凭据。
- 使用隐式授权类型流时,不会返回刷新令牌,这需要在访问令牌过期后重复授权过程。
规范还广泛涵盖了是否使用嵌入式或外部用户代理。
为了安全地实现这一点(至少在开放平台上技术上可行),在规范中搜索单词 native 并多次阅读包含该单词的部分,尤其是{ {3}}和Client Authentication部分。