我们有一个ASP.Net Web应用程序,我们使用标准的个人用户帐户登录。
根据用户登录,在将Web应用程序登录映射到所需的Web服务登录后,它们也会登录到Web服务。它不是一对一的映射登录,用户可以选择访问许多可用的Web服务中的任何一个。
即
管理模块应允许将Web App登录分配给Web Service登录。
对于概念证明,我们在Web应用程序中嵌入了一些Web服务登录详细信息。这显然是不安全的,我们需要在某种程度上安全地存储Web服务登录详细信息,在SQL Server表中加密?在WebConfig中加密?
安全存储和检索映射登录详细信息的最佳方法是什么?或者更好的方法来执行这个2步登录逻辑?
您永远不应以可逆格式存储登录详细信息(可以完全解密)。
如果登录详细信息可由服务器反转,那么黑客将能够在成功窃取数据库时检索每个人的登录信息。
您自己网站的登录信息应使用单向哈希+盐水保存。没有理由为第三方网站使用较低级别的安全性。
具有访问权限的OAuth应该是您问题的答案,因为它不要求用户为您的网站提供对第三方网站的完全访问权限。在您的网站遭到入侵后,第三方网站的登录信息将完全不受影响。用户可以断开链接以防止进一步损坏其第三方网站的帐户,而无需等待管理员操作。