我们公司设有多个域,每个域都托管一个网站。此时,每个域都有自己的身份验证,通过cookie完成。
当登录到一个域的某个人需要访问另一个域中的任何内容时,用户需要使用位于另一个域的另一个网站上的不同凭据再次登录。
我正在考虑转向单点登录(SSO),这样就可以消除这种麻烦。我很感激有关如何实现这一点的任何想法,因为我在这方面没有任何经验。
感谢。
修改 这些网站混合了互联网(外部)和内部网(公司内部使用)网站。
答案 0 :(得分:84)
我在这里实现的SSO解决方案的工作原理如下:
注意:
答案 1 :(得分:31)
不要重新发明轮子。有许多开源跨域SSO包,如JOSSO,OpenSSO,CAS,Shibboleth等。如果您在整个(IIS,AD)中使用Microsoft技术,则可以使用Microsoft联合(ADFS)。
答案 2 :(得分:14)
主机名有多大不同?
这些主机可以共享cookie:
但这些不能:
在前一种情况下,您可以敲出基于cookie的解决方案。想想GUID和数据库会话表。
答案 3 :(得分:2)
如果您使用Active Directory,您可以让每个应用程序使用AD进行身份验证,然后登录可以无缝连接。
否则,如果应用程序可以在幕后相互通信,您可以使用sessionids并让一个应用程序处理ID生成服务于所有其他应用程序。