首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨域单点选择性登录

问跨域单点选择性登录
EN

Stack Overflow用户
提问于 2010-02-14 22:01:04
回答 4查看 3.2K关注 0票数 5

它不是明确的跨域会话,我正在寻找,但这是最简单的方式来解释它是什么,我想要的。

我有一个创建网站的系统。这些网站托管在许多不同的服务器上。

用户可以创建他们的帐户,然后他们可以创建许多网站。他们可以创造出

www.mysite.com subdomain.mysite.com并创建许多不同的站点。

有时,站点会彼此完全不同,但有时,这些站点实际上会如此紧密地联系在一起,以至于它们可能应该被认为是同一个站点。

例如:(完全不同的域名) mysite-news.com mysite-blog.com或者(相同的域名,不同的子域) news.mysite.com blog.mysite.com

我需要的是一种方式为用户在他们想要的,创建一个排序的联盟,这允许通过点击复选框,他们想要允许跨站点登录。我不能改变配置,除非它是一个永久的改变,不会影响其他网站,因为数以千计的网站将受到影响。

你认为支持这一点的最好方式是什么?OpenID,单点登录?

我需要一些简单的网站来创建一个‘联盟’,然后让他们的登录跨域。如果有人想加入,那么他们可以加入。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-20 04:01:47

OpenID提供了一些很好的特性,但不幸的是,您正在寻找的跨域行为不是您在标准OpenID实现中所能找到的。OpenID的主要设计原则之一是,在未经用户明确同意的情况下,提供商不会透露用户的任何信息*,因此任何声誉良好的OpenID提供商都不会在未经用户批准的情况下告诉mysite-news.com您已经登录到mysite-blog.com。

用技术术语来说,这里发生的事情是mysite-news.com和mysite-blog.com在概念上处于相同的安全“领域”,但OpenID通过网址模式来识别领域,而且由于它们位于不同的域,所以它们并不匹配。

这并不能给你带来你想要的用户体验。前面的一些答案很好地勾勒出了您在这里需要的系统类型:

简而言之,您将在login.mysite.com上设置某种身份验证服务来回答来自mysite-news.com和mysite-blog.com的查询。在这种情况下,仍然有几种方法可以利用OpenID。

  1. 这里描述的重定向到登录并返回签名令牌流正是OpenID所做的事情。因此,您仍然可以使用OpenID实现来执行所有签名令牌管理和重放保护,您的客户端站点只需跳过OpenID的初始“发现”部分,并始终将用户重定向到login.mysite.com提供程序。而且login.mysite.com可以跳过“我信任mysite-blog.com”的步骤,因为它是一个特殊目的的提供商,可以有自己的白名单,它总是与之合作的网站。在这里,OpenID将纯粹是幕后操作,用户永远不会知道OpenID以某种方式参与其中。反过来,
  2. login.mysite.com可以使用OpenID要求用户向他们的OpenID提供商(无论是谷歌、雅虎还是像myOpenID这样的专家)进行身份验证。从那里看,它看起来像一个标准的OpenID登录,您将获得所有的好处,缺点是您的登录重定向链变得稍微长了一点(并且相应地变慢了)。这就是休息时间。

祝好运。这是一个经常出现的问题,我还没有找到一个真正好的参考实现,我可以给人们指出,所以如果你找到了一些好的东西,请回来让我们知道。

最后是obligatory link to Matasano Chargen's screenplay on the subject。

*最近的Google Buzz惨败很好地提醒了我们,当你让用户惊讶于他们的信息被分享给了谁时,会发生什么。

票数 12
EN

Stack Overflow用户

发布于 2011-08-24 15:11:30

SSO只是一个概念/状态...这就是你要实现的目标。

OpenID适用于身份验证,也适用于来自多个站点的身份验证。它不会将身份验证信息从一个站点传递到另一个站点。

似乎是行业标准单点登录技术的IMO是oAuth。Facebook、Twitter、Google等都在使用它。

谷歌已经实现了OpenID和oAuth的混合协议,他们试图将其作为标准身份验证方法推送。Google提供了几乎与您提到的完全相同的联合登录解决方案。

从我对你提到的解释来看,你脑海中有一个解决方案,用户只需在他们的设置中勾选一个框,就可以在支持他们的帐户的任何地方登录……这违背了oAuth和OpenID背后的原则。我不知道目前的解决方案实际上是有价值的。

基本上,现在所做的不是使用OpenID提供的单一登录名单独连接到每个站点……您使用您的OpenID帐户登录到一个站点,您将被重定向到oAuth授权请求。这将允许oAuth服务器将来在该站点上对您进行身份验证,直到您使用使用该oAuth服务的OpenID帐户进行身份验证的权限被撤销为止。

票数 3
EN

Stack Overflow用户

发布于 2010-02-15 08:41:58

正如您所建议的,openId或单点登录都是合适的。

请看我2008年7月29日在http://groups.google.co.uk/group/comp.lang.php/browse_thread/thread/b682ed2a8b7fbb3f/f5f27f120e264fa0?hl=en&lnk=gst&q=single+sign+on+symcbean#f5f27f120e264fa0上的帖子12:50

有关如何实现SSO的示例,请参阅。

结果表明,C.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2261300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档