OAuth、OpenID 或其他解决方案?
OAuth, OpenID or other solutions?
我们想提供一种服务,用户必须在我们的网站上注册。问题是我们的客户(另一家公司,比如公司 A)出于安全和垃圾邮件的原因想要验证每个注册用户确实是经过验证的用户,但他们不会让我们访问他们的数据库(所有用户已经注册)。
我们可以进行人工验证(使用用户的实体身份证),但这不会很有效。这就是为什么我们认为也许我们可以使用 OAuth 或 OpenID 之类的东西让我们的用户通过他们在公司 A 的帐户注册/登录的原因。
除了 email/username,我们还需要为每个用户收集一些他们在公司 A 的数据库中没有的额外信息,并能够随着时间的推移使用这些信息。也就是说,如果我们可以使用 A 公司的数据库,而无需访问它,来验证我们用户的身份并允许他们注册为经过验证的个人资料,那就太好了。
我们应该采用哪些技术和程序来实现我们的目标?我们听说过和读过有关 OAuth 和 OpenID 的信息,但我们不太确定这是否是我们正在寻找的,或者哪一个最适合我们的问题。最重要的是,如果有人可以为我们提供解决方案实施指南,我们将不胜感激,因为它不是典型的 Facebook/Google 登录,其中有大量信息,但我们必须使用数据库外部公司的。
注意:我们正在使用 PHP 和 MySQL
此时,如果您想处理 authentication/authorization,您应该查看 OpenID Connect and OAuth 2.0,因为它们是最新的,并且采用率更高。
它们有着相似的历史,因为在这两种情况下它们都不向后兼容之前的版本,更具体地说是 OAuth 1.0 和 OpenID。
但是,对于这种特定情况,您将取决于公司 A 支持的内容。您可以将对 OAuth2 和 OpenID Connect 的支持添加到您的应用程序,但如果公司 A 不支持它,您就回到原点。
如果您能以任何方式影响公司 A 将向您提供什么,那么 OpenID Connect 的兼容实现将是您的最佳选择,因为它允许您的应用程序使用它来验证用户身份,而无需直接访问访问他们的用户数据库。在收到经过验证的用户身份后,您可以要求用户提供更多信息,以便为您提供更完整的个人资料。
假设公司 A 确实提供了一个 OpenID connect 兼容实现,与集成将非常类似于与 Auth0 and Google 等任何其他提供商集成。我说类似,因为您可以检查每个 link 每个提供商可能都有自己的扩展和支持库,旨在简化体验。
我们想提供一种服务,用户必须在我们的网站上注册。问题是我们的客户(另一家公司,比如公司 A)出于安全和垃圾邮件的原因想要验证每个注册用户确实是经过验证的用户,但他们不会让我们访问他们的数据库(所有用户已经注册)。
我们可以进行人工验证(使用用户的实体身份证),但这不会很有效。这就是为什么我们认为也许我们可以使用 OAuth 或 OpenID 之类的东西让我们的用户通过他们在公司 A 的帐户注册/登录的原因。
除了 email/username,我们还需要为每个用户收集一些他们在公司 A 的数据库中没有的额外信息,并能够随着时间的推移使用这些信息。也就是说,如果我们可以使用 A 公司的数据库,而无需访问它,来验证我们用户的身份并允许他们注册为经过验证的个人资料,那就太好了。
我们应该采用哪些技术和程序来实现我们的目标?我们听说过和读过有关 OAuth 和 OpenID 的信息,但我们不太确定这是否是我们正在寻找的,或者哪一个最适合我们的问题。最重要的是,如果有人可以为我们提供解决方案实施指南,我们将不胜感激,因为它不是典型的 Facebook/Google 登录,其中有大量信息,但我们必须使用数据库外部公司的。
注意:我们正在使用 PHP 和 MySQL
此时,如果您想处理 authentication/authorization,您应该查看 OpenID Connect and OAuth 2.0,因为它们是最新的,并且采用率更高。
它们有着相似的历史,因为在这两种情况下它们都不向后兼容之前的版本,更具体地说是 OAuth 1.0 和 OpenID。
但是,对于这种特定情况,您将取决于公司 A 支持的内容。您可以将对 OAuth2 和 OpenID Connect 的支持添加到您的应用程序,但如果公司 A 不支持它,您就回到原点。
如果您能以任何方式影响公司 A 将向您提供什么,那么 OpenID Connect 的兼容实现将是您的最佳选择,因为它允许您的应用程序使用它来验证用户身份,而无需直接访问访问他们的用户数据库。在收到经过验证的用户身份后,您可以要求用户提供更多信息,以便为您提供更完整的个人资料。
假设公司 A 确实提供了一个 OpenID connect 兼容实现,与集成将非常类似于与 Auth0 and Google 等任何其他提供商集成。我说类似,因为您可以检查每个 link 每个提供商可能都有自己的扩展和支持库,旨在简化体验。