首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >跨多个域的单点登录

跨多个域的单点登录
EN

Stack Overflow用户
提问于 2008-09-04 19:06:23
回答 4查看 91.7K关注 0票数 111

我们公司有多个域名设置与一个网站上的每个域名托管。此时,每个域都有自己的身份验证,这是通过cookies完成的。

当登录到一个域的用户需要访问另一个域中的任何内容时,该用户需要使用位于另一个域中的另一个网站上的不同凭据再次登录。

我正在考虑转向单点登录(SSO),这样就可以省去这个麻烦。我非常感谢任何关于如何实现这一点的想法,因为我在这方面没有任何经验。

谢谢。

编辑:网站是互联网(外部)和内部网(公司内部使用)网站的混合体。

EN

回答 4

Stack Overflow用户

发布于 2008-09-05 00:07:43

我在这里实现的SSO解决方案的工作方式如下:

  1. 有一个主域,login.mydomain.com带有管理登录的脚本master_login.php。
  2. 每个客户端域都有一个脚本,该域有一个共享的用户会话数据库。
  3. 当客户端域要求用户登录时,它会重定向到主域(

_

  1. )。如果用户尚未登录到主服务器,则它请求来自用户的身份验证(即,显示登录页面)。用户通过身份验证后,它会在数据库中创建一个会话。如果用户已经通过身份验证,它将在数据库中查找用户的会话id。
  2. 主域返回到客户端域(Client.mydomain.com/
  3. _login.php),传递会话id。
  4. 客户端域创建一个cookie,存储来自主服务器的会话id。客户端可以通过使用会话id查询共享数据库来找出登录的用户。

备注:

会话id是使用来自RFC4122

  • 的算法生成的唯一全局标识符。
  • master_login.php将仅重定向到其RFC主服务器中的域,并且客户端可以在不同的顶级域中。例如:login.mydomain.com

、client1.abc.com、client2.xyz.com

票数 92
EN

Stack Overflow用户

发布于 2008-09-15 16:52:40

不要重复发明轮子。有许多开源的跨域单点登录包,如JOSSO、OpenSSO、CAS、Shibboleth和其他。如果您始终使用Microsoft技术(IIS、AD),则可以使用microsoft联合(ADFS)。

票数 33
EN

Stack Overflow用户

发布于 2008-09-04 19:38:10

主机名有什么不同?

这些主机可以共享cookies:

  • mail.xyz.com
  • www.xyz.com
  • logon.xyz.com

但这些不能:

  • abc.com
  • xyz.com
  • www.tre.com

在前一种情况下,您可以推出基于cookie的解决方案。考虑GUID和数据库会话表。

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

https://stackoverflow.com/questions/44509

复制
相关文章

相似问题

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