在 IIS 上运行 ASP.Net 网站时,我可以指定该网站在应用程序池设置的上下文中运行的 Active Directory (AD) 用户名。然后,我可以使用 Integrated Security = true
创建连接字符串来访问我的数据库。然后就可以根据该 AD 用户来保护数据库资源。
在 Windows Azure 中将网站连接到托管 SQL 数据库的 VM 时可以这样做吗?
首先,似乎无法指定网站的虚拟网络,因此我不确定如何指定连接字符串。我希望不需要向外界公开 SQL Server 的端口 (1433),这样只有网站可以访问它。
其次,我不知道如何指定网站的用户上下文,以便将其传递到 SQL Server。我知道 Azure 有一个 Active Directory,但我在 Azure 门户中没有看到任何以特定用户身份运行网站的选项。
最佳答案
要回答问题的第一部分,您只能在预览门户中将 Azure Web App 连接到虚拟网络。如果您转到网络应用程序的主要属性“ Blade ”的最底部,则会有一个“网络”部分,可让您选择 vnet。
第二部分 - 我不认为有办法做到这一点,因为缺乏对 Azure Web Apps 的应用程序池设置的控制。
Each app in Web Apps runs as a random unique low-privileged worker process identity called the "application pool identity", described further here: http://www.iis.net/learn/manage/configuring-security/application-pool-identities.
Sql 身份验证将在这种情况下工作。
如果您的网站托管在 Azure 外部,那绝对是可能的 - 我们有一个 TFS 构建服务器,它使用 Windows 身份验证在本地托管,通过 vnet 将数据库项目构建发布到 Azure 中的 SQL Server VM。
关于sql-server - 来自 Azure 网站的 SQL Server 集成安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078663/