Javascript 同时登录到两个站点

Javascript 同时登录到两个站点,javascript,single-sign-on,reverse-proxy,Javascript,Single Sign On,Reverse Proxy,我想同时登录两个站点以启用单一登录解决方案。我们有一个用Apple wiki创建的小型wiki,我们在Elcom的aspx cms系统上有一个内部网站。两者都使用Active Directory作为凭据 目前,它们位于不同的域上,但我们可以使用负载平衡器(Citrix Netscaler)或IIS启用重写。这些站点位于不同的服务器上,一个是神秘的Mac系统,另一个是windows 2003上的IIS v6.0 现在我几乎可以肯定,一个反向代理设置将解决这个问题,但我真的需要有人同意,这解决了这个

我想同时登录两个站点以启用单一登录解决方案。我们有一个用Apple wiki创建的小型wiki,我们在Elcom的aspx cms系统上有一个内部网站。两者都使用Active Directory作为凭据

目前,它们位于不同的域上,但我们可以使用负载平衡器(Citrix Netscaler)或IIS启用重写。这些站点位于不同的服务器上,一个是神秘的Mac系统,另一个是windows 2003上的IIS v6.0


现在我几乎可以肯定,一个反向代理设置将解决这个问题,但我真的需要有人同意,这解决了这个问题,如果有什么事情,我应该注意它们可能是什么。我只想在iframe的屏幕上显示一个不可见的日志,然后使用javascript输入克隆用户名和密码。

如果您不只是使用客户端IP来验证用户是否是他们声称的用户,那么如果您的域在同一台服务器上运行,这就无关紧要了。浏览器不会跨域共享cookie

一旦用户浏览到需要身份验证的页面,则需要通过某种机制查询SSO

我通过使用OpenID解决了这个问题——提供程序是静态设置的,用户没有注意到正在使用OpenID。唯一困难的部分是设置一个提供程序,因为OpenID是一个烂摊子。好的一面是,这将对任何数量的依赖方(在您的案例中,读为:域)轻松透明地起作用


请参阅,这是StackExchange在其站点上使用的。可能不全是坏事。

如果你的两个站点共享同一个域,比如intranet.yoursite.com和wiki.yoursite.com,你可以在这两个站点上使用相同的授权cookie。只需确保一个站点设置的cookie被另一个站点理解即可。如果两个站点都使用ASP.NET,请确保它们共享相同的计算机密钥


如果这两个站点完全是两个不同的域,那么OpenID是一个选项。如果您不想使用OpenId,还有另一种方法:用户登录站点A后,站点A可以使用URL中的身份验证令牌将用户重定向到站点B,该令牌只能被站点B理解。站点B可以解密该令牌,然后让用户登录。

OpenId确实不适用于此。非统组织是;但不是OpenID。@GeorgeStocker,它可以工作。我还需要说更多吗?它的工作原理与你可以在螺丝上使用锤子的工作原理相同——但两者都不能一起使用。你这么说。事实上,几乎每种语言都有很好的依赖于OpenID的第三方库,只有设置提供者是困难的。您可以轻松地将您的服务设置为已接受,并拒绝所有其他服务。使用Oauth不会使任何事情变得更简单。OpenID用于从一个站点登录到另一个站点,而无需在第二个站点上创建凭据。这就是它的目的。其目的是防止人们从事身份管理业务。这不是OP想要的。OAuth等人安全地说,“登录到站点X的人有权使用相同的凭据登录到站点y,当您与站点X通信时,使用这些凭据而不是用户名/密码。”另请参见:这是一个更好的问题:如何使用fiddler模拟反向代理?目前,我有staff.mycompanyintranet.com[可公开访问]和wiki.frackyinternalname.now[可私人访问]我希望staff.mycompanyintranet.com/datadictionary/可以访问wiki.frackyinternalname.now,我需要嵌入许多URL的JSON,并修复来自wiki站点的链接。json文件中有许多URL如下所示:“\/\uu wiki\/coreclientbase\/stylesheets\/wikieditor\/img\/serverhome\/serverhome”_wikis@2x.png“}你应该打开一个新问题来问这个问题。