【问题标题】:What's the best way of securing my own mobile app using oauth 2?使用 oauth 2 保护我自己的移动应用程序的最佳方法是什么?
【发布时间】:2012-08-30 14:29:11
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: facebook oauth oauth-2.0


    【解决方案1】:

    由于您可能希望获得基于用户的授权并且不想在客户端处理用户名/密码,因此您可以选择使用 Implicit Grant flowAuthorization Code Grant flow(您称之为 网络服务器流程)。

    现在查看 OAuth 2 规范的 Installed Applications section。他们在那里声明:

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

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

    规范也广泛涵盖了是否使用嵌入式或外部用户代理。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2019-09-23
    • 2020-09-26
    • 2011-10-13
    相关资源
    最近更新 更多