我想为多个网站(sitea.com,siteb.com,sitec.com)创建一个单一登录。所有网站都在同一家公司。任何数据库也具有相同的公司/位置。一些是asp.net网络应用程序,一些是论坛。我想尝试抽象出SSO,以免与任何一个网站纠缠在一起。我在下面概述了我的方法:
以上是否安全实用?
是否应通过webservice将凭证发送到centralAuthDB?
Cookie是否需要一些通用名称?那么username和sessionid的值是否放在这个cookie中?
答案 0 :(得分:0)
使用任何SSO,您将需要一个获取凭据并生成安全身份验证令牌的服务。必须对令牌进行加密,使其无法伪造;只有身份验证服务才能解密它以检查其有效性。然后,该令牌可以传递给您想要的任何内容 - 最有可能是在查询字符串中。 Cookie被排除在外,因为它们无法通过主机名访问。
正如您对问题的评论中所提到的,调查此问题的预先存在的解决方案是明智的。比你更聪明的人或我花了数千个工时来解决这些系统的所有问题。
我个人的选择是OAuth,因为它是我最熟悉的实现。您可能还想了解Facebook如何对令牌可能包含的内容进行身份验证。