来自IIS的AD帐户信息而不是来自web.config

时间:2017-12-21 17:02:08

标签: c# iis web-config

在我的应用程序中,我使用多个用户名和密码在内部与DB和其他服务连接。这些用户名实际上是Active Directory帐户。但我不想在web.config中包含用户名和密码。

我可以在IIS中设置活动目录吗?我可以将userid传递给它。反过来,IIS应该与Active目录通信,如果该ID有权连接到数据库/其他服务,则给出结果?

我一直在搜索这个,但我正在研究加密web.config中的密码。如果这是可行的,请建议我。

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,但如果你打算不使用集成的安全性,最后你需要将它存储在某个地方。

构建/部署服务器

部署服务器通常具有在将应用程序部署到环境服务器时修改配置文件的机制。

举个例子,我之前使用过Octopus,它会跟踪每个环境的连接字符串,并交换正确的连接字符串和凭据。

您可能会看到的问题是它仍然会在计算机的配置中拥有凭据。

动态连接字符串

另一种方法是加密连接字符串或仅加密必要的部分并在代码中构建它。我已将配置中存储的凭据视为加密值,我也看到它们存储在注册表中。一家公司甚至有一个管理一切的中央配置服务器。凭据根本没有存储在服务器上,而是抓取OAUTH令牌并拨打电话获取它的配置值。

选项是你的,但关键是你不再依赖<connectionStrings />部分了。

加密配置

我之前使用的鲜为人知的解决方案实际上只是加密配置本身。这在过去运作良好,但我会提出一个小警告,我个人没有对web.config做过。我只将它用于部署在客户机器/服务器上的Windows服务。

https://msdn.microsoft.com/en-us/library/dtkwfdky.aspx

如果您担心人们查看配置文件,那么您最好的选择可能是将IIS配置为仅加密配置文件。

我的个人意见是:如果您有权访问特定的环境服务器,您可能有权访问尝试加密/混淆的相同数据。如果您担心看到配置的用户不应该有访问权限,那么您还有其他更大的问题。