authentication - 在两个网站之间共享身份验证

标签 authentication cookies oauth openid dotnetopenauth

在两个站点之间共享登录的最佳/正确技术是什么。

我有网站 A,还有一些网站 B。这两种类型都属于同一家公司,但 B 在客户场所运行。我想要的是,用户在 B 中登录,当由于某种原因被重定向到 A 时,他们不需要再次登录,他们可以在 A 中使用他们的帐户。

当然,公司将为每个“B”用户进行登录。问题是用户可以在 A 或 B 中启动登录。

OAuth 会做吗?还是 OpenID 会更合适?

另一种选择是在 GET 字符串中传递一个 GUID token ,其中包含一个生存时间,并且仅对请求者的 IP 地址有效,但不确定用户是否会通过同一网关访问网站。

谢谢

最佳答案

OAuth 正是您所需要的。 OpenID 提供发现,仅当用户选择与谁进行身份验证(而不是您的用例)时才有用。此外,OpenID 要复杂得多,而且是一个垂死的协议(protocol)。

在您的场景中,服务器 A 是 OAuth 服务器(或 OAuth 2.0 中的授权服务器),服务器 B 是客户端。有很多方法可以实现这一点,但我建议您从查看(并尝试)Facebook OAuth 2.0 实现的工作原理开始。它将让您很好地了解所涉及的内容以及它们的一些扩展(例如显示),使其更加用户友好。

关于authentication - 在两个网站之间共享身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779365/

相关文章:

c# - 适用于 Windows Phone 8.1 的 Facebook 登录

java - 另外调用使用 ejb 远程访问和自定义登录模块/applicationrealm 的 Wildfly 设置

ruby-on-rails - Rails 2.3.5 中用于 oAuth2 消费者和提供者功能的 Gem

oauth - Google 帐户链接操作 - 根据我们的帐户链接政策,Google 帐户不能用作身份验证端点 URL

redirect - 谷歌分析 OAuth2 : How to solve error: "redirect_uri_mismatch"?

javascript - 钛 - Facebook 授权() - "An error occurred"

android - Login with Facebook option trigger 建议下载一个应用程序

C# 基于 cookie 的授权

symfony - 从 Twig 模板获取 cookie

node.js - ExpressJS/PassportJS : Authentication vs. session