Php 跨域单选择登录

Php 跨域单选择登录,php,openid,single-sign-on,Php,Openid,Single Sign On,我正在寻找的不是明确的跨域会话,而是解释我想要什么的最简单方法 我有一个创建网站的系统。 这些网站被托管在许多不同的服务器上 用户可以创建他们的帐户,然后他们可以创建很多网站。 他们可以创造 www.mysite.com subdomain.mysite.com 创建许多不同的网站 有些时候,站点之间会完全不同,但是有些时候,这些站点实际上是如此紧密地联系在一起,以至于它们可能被认为是同一个站点 例如: (完全不同的领域) mysite-news.com mysite-blog.com 或(相同

我正在寻找的不是明确的跨域会话,而是解释我想要什么的最简单方法

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

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

www.mysite.com subdomain.mysite.com 创建许多不同的网站

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

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

我需要的是一种方法,让用户在他们想要的地方创建一个排序的联合,通过单击复选框,允许他们允许跨站点登录。我无法更改配置,除非它是永久性的更改,并且不会影响其他站点,因为1000个站点将受到影响

你认为支持这一点的最佳方式是什么? OpenID,SSO


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

正如您所建议的,openId或SSO都是合适的

见我2008年7月29日12:50在

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


C.

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

[从技术角度讲,这里发生的事情是,mysite-news.com和mysite-blog.com在概念上处于同一个安全“领域”,但OpenID通过URL模式识别领域,因为它们位于不同的域上,所以它们不匹配。]

这并不能给你想要的用户体验。前面的一些答案很好地概括了您需要的系统类型:

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

  • 这里描述的重定向到登录并返回签名令牌流正是OpenID所做的。因此,您仍然可以使用OpenID实现来管理签名令牌和重播保护,您的客户端站点只需跳过OpenID的初始“发现”部分,并始终将用户重定向到login.mysite.com提供商。而login.mysite.com可以跳过“我信任mysite blog.com吗”这一步,因为它是一个特殊用途的提供商,可以拥有自己的网站白名单。OpenID在这里完全是幕后的,用户永远不会知道OpenID是以某种方式参与进来的

  • 反过来,login.mysite.com可以使用OpenID要求用户对其OpenID提供商(无论是谷歌、雅虎还是myOpenID这样的专家)进行身份验证。从那以后,它看起来就像一个标准的OpenID登录,你会得到所有的好处,缺点是你的登录重定向链会变长一点(并且相应地变慢)。休息时间到了

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

    最后


    [*]最近Google Buzz的惨败很好地提醒了我们,当你对与谁共享他们的信息感到惊讶时会发生什么。

    正如@keturn所解释的,OpenID不允许不欺骗系统的隐性信任,这就是为什么我不推荐它解决这个特定问题的原因。相反,我要看一看——一个用于分散式体系结构的单点登录

    假设网站master.example.com链接到网站child.example.com,因此master.example.com为child.example.com提供登录功能。在master.example.com上注册登录名的用户现在希望访问资源http://child.example.com/resource,只供会员使用。现在,Shiboleth上场了:

  • 身份验证:用户是否有安全令牌?
  • 如果用户已经拥有来自master.example.com的安全令牌,将检查其有效性,并在步骤2继续该过程
  • 如果用户没有有效的令牌,他将被转发到登录站点,例如。http://master.example.com/login. 登录后,用户被转发到步骤1
  • 授权(可选):master.example.com可以通过提供附加信息来允许或禁止访问child.example.com上的特定资源(例如,child.example.com上的特定论坛仅可供master.example.com的高级成员访问。用户的成员状态信息仅对master.example.com可见,因此他必须允许或拒绝访问)

  • 在许多服务(如php)或应用程序级别(如php)上都可以实现SSO。

    SSO只是一个概念/状态……它是您试图实现的

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

    在国际海事组织看来,行业标准的SSO技术是oAuth。Facebook、Twitter、谷歌等都在使用它

    谷歌已经实现了OpenID和oAuth的混合协议,他们正试图将其作为sta推出