1

我正在尝试构建一个 OAuth 2 提供程序,并且 Web 服务器流程非常困难,但我无法找出实现已安装应用程序流程的最佳方法

我看到的大多数示例基本上都遵循移动应用程序中嵌入式浏览器内的 Web 服务器流程,这通常也是 facebook 和 google 演示 3rd 方应用程序使用其 API 的方式

但是 facebook 和 google 自己的移动应用程序是否真的使用该流程,或者是否有更好的方法来实现移动身份验证

我的主要问题主要源于客户端 ID 和客户端密码,如果它嵌入到移动应用程序的每个已安装版本中,它基本上变得毫无用处,因为它很容易被嗅探,并且没有明确的 oauth 2 示例说明每个应用程序的基础客户秘密

那么使用 oauth 2 保护我自己的移动应用程序的最佳方法是什么

4

1 回答 1

0

由于您可能希望获得基于用户的授权并且不想在客户端处理用户名/密码,因此您可以选择使用隐式授予流程授权代码授予流程(您称之为web 服务器流程) .

现在查看 OAuth 2 规范的已安装应用程序部分。他们在那里说:

在隐式授权类型和授权码授权类型之间进行选择时,应考虑以下几点:

  • 由于本机应用程序无法对客户端凭据保密,因此使用授权代码授权类型的本机应用程序应该在不使用客户端凭据的情况下这样做。
  • 使用隐式授权类型流程时,不会返回刷新令牌,这需要在访问令牌过期后重复授权过程。

该规范还广泛涵盖了是使用嵌入式用户代理还是外部用户代理。

为了安全地实现这一点(至少在技术上可以在开放平台上实现),请在规范中搜索native一词并多次阅读包含该词的部分,尤其是Client AuthenticationClient Impersonation部分。

于 2012-09-06T07:33:01.503 回答