我正在寻找有关我要解决的问题的指导。现在,我们的web.config连接字符串包含纯文本密码和用户名。由于合规性原因,我们必须删除这些纯文本凭据,并用集成身份验证代替它们。过去,这是通过用'trusted_connection = yes'将纯文本凭据减去来完成的。
关于我们的设置的进一步说明-我们正在迁移到Azure。设置如下所示:我们有一对正在运行Active Directory的VM,我们的Web VM正在运行标准IIS,并且正在与Azure SQL DB通信。不幸的是,我们无法迁移到Azure AD,因为我们还有其他要求保持该要求。任何帮助或想法,将不胜感激。预先谢谢你!
tl; dr-在具有基于VM的AD和Azure SQL DB的环境中,如何从web.config文件中获取纯文本凭据。
Web.config
:
<add key="Persist Security Info=False;User ID=XXXXX;Password=XXXXXX;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" />
<add key="Persist Security Info=False;trusted_connection=yes;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" />
答案 0 :(得分:1)
在具有基于VM的AD和Azure SQL DB的环境中,我们如何从web.config文件中获取纯文本凭据。
在Azure中执行 right 的 right 方法是为您的VM设置Managed Service Identity,并使用该身份获取SQL Server的访问令牌。您可以按照教程here进行操作。
在这种情况下,您的连接字符串不需要任何安全信息。就像这样:
"Data Source = someInstance.database.windows.net; Initial Catalog = someDatabase;Connection Timeout=30;"
或者,根据教程here,您可以使用MSI访问Azure密钥保管库并检索要连接的SQL Auth凭据,而不是将它们存储在配置文件中。
您还可以尝试将您的应用程序池配置为在为Seamless Signon with AAD配置的域帐户下运行,就像您在以下情况下应访问Azure SQL数据库一样:登录到加入域的工作站。但是那条路径上有很多潜在的复杂性。