【问题标题】:OAuth, OpenID or other solutions?OAuth、OpenID 还是其他解决方案?
【发布时间】:2016-10-25 17:39:33
【问题描述】:

我们希望提供用户必须在我们的网站上注册的服务。问题是我们的客户(另一家公司,比如 A 公司)出于安全和垃圾邮件的原因想要验证每个注册的用户确实是经过验证的用户,但他们不允许我们访问他们的数据库(其中所有用户已经注册)。

我们可以进行手动验证(使用用户的实体身份证),但这不会很有效。这就是为什么我们认为也许我们可以使用 OAuth 或 OpenID 之类的东西来让我们的用户通过他们在 A 公司的帐户注册/登录。

除了电子邮件/用户名之外,我们还需要为每个用户收集一些他们在 A 公司的数据库中没有的额外信息,并且能够随着时间的推移使用这些信息。也就是说,如果我们可以在没有访问权限的情况下使用 A 公司的数据库来验证我们用户的身份并允许他们注册为已验证的个人资料,那就太好了。

我们应该采用哪些技术和程序来实现我们的目标?我们听说过并阅读过有关 OAuth 和 OpenID 的信息,但我们不太确定这是否是我们正在寻找的,或者哪一个最适合我们的问题。最重要的是,如果有人可以为我们提供解决方案的实施指南,我们将不胜感激,因为它不是典型的 Facebook/Google 登录,有大量信息,但我们必须使用外部公司。

注意:我们使用的是 PHP 和 MySQL

【问题讨论】:

    标签: php oauth oauth-2.0 openid


    【解决方案1】:

    此时,如果您想处理身份验证/授权,您应该查看 OpenID ConnectOAuth 2.0,因为它们是最新的并且采用率提高了。

    它们有着相似的历史,因为在这两种情况下它们都不向后兼容之前的版本,更具体地说是 OAuth 1.0 和 OpenID。

    但是,对于这种特殊情况,您将取决于 A 公司支持的内容。您可以在您的应用程序中添加对 OAuth2 和 OpenID Connect 的支持,但如果 A 公司不支持它,您就回到原点。

    如果您可以以任何方式影响 A 公司将向您提供的内容,那么兼容的 OpenID Connect 实现将是您的最佳选择,因为它允许您的应用程序将其用作验证用户身份的一种方式,而无需直接访问他们的用户数据库。在收到经过验证的用户身份后,您可能会要求用户提供更多信息,以便获得更完整的个人资料。

    假设 A 公司确实提供了一个兼容 OpenID 连接的实现,与 with 集成将非常类似于与任何其他提供商集成,例如 Auth0Google。我说的类似,因为您可以签入每个链接,每个提供商可能都有自己的扩展和支持库,旨在简化体验。

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      相关资源
      最近更新 更多