2014-10-02 66 views
0

我们制作了一个asp.net mvc应用程序,它有一个关联计划。跨站点登录并重定向

我们的子公司希望有可能让他们的客户,可能使用后台代码(而不是表单)登录到我们的应用程序。

登录后,用户应该被重定向到我们自己的URL之一。

首先,我们需要一些帮助和如何做到这一点的例子。

其次,如果确实有可能,这实际上是一个跨站点脚本的权利?它是如何让我们受到攻击?

任何帮助,将不胜感激。

+0

重定向是否需要针对同一个帐户重复使用,或者这是一次性传输,他们将在未来直接进入您的网站?另外,您对附属网站的工作方式有多大影响?你能让他们利用你创建的web服务吗? – guildsbounty 2014-10-02 20:13:41

+0

用户需要随时登录我们的网站,我们没有任何影响力的联盟网站。我们不能让他们挖掘任何东西。只需“点击登录”或只是一些链接到我们的应用程序需要做到这一点。之后他们在我们的网站上。 – ilans 2014-10-02 20:23:36

回答

1

一个简单的链接不能这样做安全,重定向的唯一方法是使用一个GET,你永远想通过重新使用的登录信息,这样

这里是你的选择...提供一个像Web服务一样运行的外部控制器。至少包括以下两个操作。一个从您的网站申请一个新帐户,传递任何必要的信息,另一个作为“远程登录”。这两个操作只能接受POST并需要HTTPS。在内部,他们不应该通过查询字符串接受任何数据传输,查看POST对象(这是加密的,因此更安全)。

'远程登录'操作应该通过您的会员传递的用户名和密码(在POST对象中加密)并验证它是否有效。然后它应该生成一个新的随机值,使用的一个好东西是一个GUID,并返回它。然后,会员将它们重定向到您的站点,并在查询字符串中传递GUID。 GUID作为他们的一次性登录令牌(他们将需要一个新的GUID下次登录)。

如果他们不需要一个特定的帐户来做你的网站上的东西,那么你可以省略'创建帐户',并简单地给你的子公司一个代码,他们发送远程登录功能,以确认它是他们要求登录。

你的会员必须做什么(你可以给他们一块代码,并说'放在你的页面上,它会工作。')实际的远程登录是做一个AJAX调用您的网站,请求一次性登录的GUID。当它收到所述GUID时,它将重定向到您的网站。

这不是最好的选择可能......当双方共同努力使用户保持安全和不可见时,单点登录类似行为是最好的,但它是可行的并且合理安全。

+0

非常感谢! :) – ilans 2014-10-03 08:57:52