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

问题描述 投票:1回答:1

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

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

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

c# iis web-config
1个回答
0
投票

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


Build/Deploy Server

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

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

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


Dynamic Connection String

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

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


Encrypt the Config

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

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


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

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

© www.soinside.com 2019 - 2024. All rights reserved.