【发布时间】:2011-02-11 03:12:46
【问题描述】:
我们正在考虑为需要从其他网站进行身份验证的临时网站使用身份验证系统。在这里总结一下,我们在完全不同的域上有两个站点。 foo.com 是始终存在(并且已经存在)的主要站点。这是用户进入并登录该站点的主要位置,并在那里以登录状态进行操作。该站点将很快得到修改,以提供指向 bar.com 的链接。当登录 foo.com 的用户单击指向 bar.com 的链接时,他们需要神奇地登录到 bar.com。 (我知道这听起来像是一场安全噩梦,但 bar.com 只是一个临时站点,用于 foo.com 上的人们将使用一两天的短暂窗口)。我们不允许在 bar.com 上登录,这一切都必须在 foo.com 上进行。我们试图在这里找出解决方案,如果有任何好的解决方案,我们还想要更多。他是我们的:
在bar.com上,检查referrer,如果是foo.com,让用户登录。这是非常不安全的,很容易被欺骗。我们知道。
登录 foo.com 后,bar.com 的链接有一个特殊的加密查询字符串,表示用户在 foo.com 上的会话。当单击 bar.com 的链接时,让 bar.com 获取该查询字符串并使用 Web 服务将其传递回 foo.com,无论这是否是合法会话,foo.com 都会对此做出响应。这比上面的 1 更安全,因为查询字符串会话信息是加密的,并且 Web 服务调用确保它是合法的会话。
这里还有其他选择吗?让我重申一下,我们想要一个比上述 1 更安全的好解决方案,但这是一个只有某些人才能访问的临时站点。我们知道这听起来像是一个奇怪的安排,但它适用于一个非常特定的站点,对于特定目的来说生命周期很短。根据要求,我们需要用户仅登录原始站点。在此先感谢您提供任何提示或指示。
【问题讨论】:
标签: asp.net authentication login single-sign-on