python - Appengine 上的社交身份验证有哪些不同选项 - 它们如何比较?

标签 python google-app-engine oauth openid facebook-authentication

[这个问题旨在作为获取我的发现和完整性检查它们的一种方式 - 我会把我的答案放在套件中,看看会出现什么其他答案和评论。]

我花了一点时间尝试了解 (python) Appengine 的不同社交身份验证选项。我对 Google 提供的身份验证机制如何与其他社交身份验证机制交互感到特别困惑。由于 Google 与第三方 OpenID 提供商进行了很好的集成,但一些最大的社交网络并不是 OpenID 提供商(例如 facebook、twitter),因此情况变得复杂了。 [请注意,facebook 可以将 OpenID 用作中继方,但不能用作提供者]。

接下来的问题是:Appengine 中的社交身份验证有哪些不同选项,每个选项的优缺点是什么?

最佳答案

在我对这个问题的研究中,我发现基本上有三种选择:

  1. 使用 Google 的身份验证机制(包括通过 OpenID 联合登录)

    • 优点:
      • 您可以通过 Appengine 提供的用户服务轻松检查谁登录
      • Google 会处理安全问题,因此您可以非常确定它已经过良好测试
    • 缺点:
      • 这只能与第三方 OpenID 提供商集成;目前无法与 facebook/twitter 集成
  2. 使用已知框架(如 tipfy 或 django)提供的社交身份验证机制

    • 优点:
      • 这些可以与所有主要的社交身份验证服务集成
      • 它们的使用相当广泛,因此它们可能非常稳健且经过良好测试
    • 缺点:
      • 虽然它们可能经过良好测试,但可能无法维护
      • 它们确实是作为更大框架的一部分出现的,在部署您的应用程序之前,您可能必须熟悉该框架
  3. 滚动您自己的社交身份验证

    • 优点:
      • 您可以根据自己的喜好混合使用 OpenID 和 OAuth 的任何风格
    • 缺点:
      • 您最有可能引入安全漏洞
      • 除非您有一些使用这些技术的经验,否则这可能是最耗时的

补充说明:

  • 很可能每个人最终都会转向 OpenID,然后标准的 Google 身份验证应该无处不在
  • 第一个选项允许您在 Google 的身份验证出现问题时将矛头指向 Google;第二个选项给你带来了更多的责任,但仍然允许你说如果有问题你使用了广泛使用的解决方案,最后一个选项让你承担所有责任
  • 大部分问题都围绕 session 管理 - 在第 1 种情况中,Google 负责所有 session 管理,开发人员几乎看不到它;在第 2 种情况下, session 管理由框架处理,在第 3 种情况下,您必须自己设计。

关于python - Appengine 上的社交身份验证有哪些不同选项 - 它们如何比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7660059/

相关文章:

java - 为什么会出现这个错误我什至还没有开始编码

ios - 如何在 iOS 应用程序中对 2 个不同的 Google 帐户进行 oAuth

python - 在 linux 上移动 python 文件夹

Python 从多个页面请求 .get()?

php - 调用 URLFetch 失败,出现 url x 的应用程序错误 5

java - 无法在 Eclipse 中创建 GWT Web 应用程序项目

android - 使用 Twitter (OAuth) 登录的 SignPost 或 Twitter4j?

oauth - Twitter oAuth 登录取消?

python - 如何正确地将 python 捆绑安装到 Windows 用户

python - 尝试创建自定义 Docker 镜像,但在 RUN 步骤期间被问到问题