我可以通过以下方式将我的(.Net 6(Azure应用程序连接到我的Azure Sql Server:
- 打开Azure应用程序上的系统分配标识
- 将Azure Sql Server实例中的Azure Active Directory管理员设置为此新标识
- 将此新标识添加为Sql Server访问控制中的所有者(或参与者(
- 在(.net 6(应用程序的代码中使用连接字符串,例如(Server=tcp:mydbs.database.windows.net;database=thedb;Authentication=Active Directory Managed Identity;TrustServerCertificate=True;(
有很多Azure CLI指南可以帮助您做到这一点,但Azure Web UI现在可以做更多的工作,并且以上步骤都有效。
但是,我需要从另一个Azure应用程序连接到同一个数据库。你不能让2个身份成为数据库的管理员,所以我试着改用用户分配的身份(我作为资源组的一部分创建的(。步骤是:
- 关闭Azure应用程序中的系统管理Id,并在"标识"页面上添加用户管理标识
- 已将Azure Sql Server实例中的Azure Active Directory管理员更改为此新的用户管理标识
- 已将此标识添加为Sql访问控制中的所有者
- 保持连接字符串不变
它不起作用。我认为当应用程序尝试登录数据库时,Sql连接并没有像系统管理Id那样获取用户管理Id。
有什么想法吗?
好的,解决这个问题的一种方法是在AAD中创建一个组,将Azure应用程序系统Id放入其中,然后在Azure Sql数据库中赋予它管理权限。然后,我可以在需要时将更多Azure应用程序系统ID添加到组中。我仍然想知道让(.Net 6(Azure应用程序使用用户分配的身份所需的步骤或连接字符串技巧。