从基于VM的AD到Azure SQL DB的集成身份验证

时间:2019-04-15 15:17:19

标签: azure active-directory azure-active-directory azure-sql-database windows-integrated-auth

我正在寻找有关我要解决的问题的指导。现在,我们的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文件位于运行IIS的Windows Server 2016上
  • AD在一对2016 VM上
  • Azure SQL DB是PaaS

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;" />

1 个答案:

答案 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数据库一样:登录到加入域的工作站。但是那条路径上有很多潜在的复杂性。