2012-07-14 47 views
2

我正在研究一个需要存储另一个网站的用户密码的asp.net网站,以便我可以定期检索数据,而不需要用户继续登录。我无法想象单向散列会如何工作这种情况下,因为用户不会每次都重新输入密码。我假设我需要加密密码以存储在SQL Server数据库中,并在需要时将其解密。但这就是我遇到困难的地方。基础架构是在负载平衡的Azure计算实例上运行并将数据存储在SQL Azure中的C#/ Asp.Net MVC3网站。我不是一个加密人,我不想犯新人的错误。这里似乎有很多信息,但是对我来说似乎没有任何明确的信息。即使我连接的数据不敏感,我也希望以我希望处理个人数据的同样的方式来对待用户的信息。任何意见如何进行将不胜感激。以编程方式将用户登录到第三方网站(何时OAuth不可用)的最佳方式?

编辑: 我当然明白,存储密码不是最佳实践,但在某些情况下,它是不可避免的。我遇到过这个项目,但还没有尝试过:http://securentity.codeplex.com/。它在Web服务器上使用数字证书。

第三方网站的用户可以将其数据设置为“公开”,在这种情况下,我不需要存储他们的密码。所以我可以让用户选择这样做。

+0

我没有超过第一行。如果你正在存储密码,那么你做错了。 – 2012-07-14 03:21:29

+0

我还没有做任何事情,这就是为什么我要问一个问题。 – 2012-07-14 03:47:39

回答

1

你应该看看OAuthSingle Sign-On
简而言之:仅在不同系统之间发送身份验证令牌。

你(该网站)应该从来没有有关于用户密码的知识。至多你应该知道散列的密码你的网站。

阅读上述两个主题,您将知道如何正确保护您的“邻居”网站。

编辑

在短:
其他位点(位点B)实现的OAuth服务器进程。您的网站(网站A)实施OAuth客户端身份验证。当从站点B请求用户信息时,您将用户重定向到站点B身份验证,以允许站点A从站点B读取关于用户的信息。站点B创建一个站点A可以用来访问信息的令牌。该令牌可以是时间限制的(或不是)。

+0

但是,我无法控制的第三方网站是否必须提供OAuth实施? – 2012-07-14 03:45:49

+0

当然它......如果第三方没有实现OAuth或某种单点登录,那么我强烈建议不要这样做,因为它对任何部分都不安全。信息不可信。 – 2012-07-14 03:47:53

+0

在没有OAuth或单一登录的情况下访问第三方网站(您无法控制)的唯一方法是存储密码。就我而言,这不是一个可以接受的解决方案。如果他们想分享信息,你需要说服第三方网站实施更好的安全计划。 – 2012-07-14 03:54:30

相关问题