6

[这个问题的目的是为了捕捉我的发现并对其进行健全性检查——我会提出我的答案套件,看看会出现什么其他答案和评论。]

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

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

4

1 回答 1

11

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

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

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

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

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

进一步说明:

  • 很可能每个人最终都会转向 OpenID,然后标准的 Google 身份验证应该可以在任何地方使用
  • 如果他们的身份验证存在问题,第一个选项允许您指责 Google;第二个选项将更多责任强加给您,但仍然允许您说如果出现问题您使用广泛使用的解决方案,最后一个选项将所有责任推给您
  • 大多数问题都围绕着会话管理——在案例 1 中,谷歌负责所有的会话管理,开发人员几乎看不到它;在第 2 种情况下,会话管理由框架处理,在第 3 种情况下,您必须自己设计。
于 2011-10-05T14:30:50.740 回答