通过组使用 Azure 应用服务托管标识向 SQL Server 进行身份验证

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

我们有一个带有 SQL Server 的 Azure VM,我们还有一个应用服务 Web 应用程序。

自从我们开启此功能以来,应用程序服务具有托管身份:

enter image description here

现在我想向 SQL Server 验证此应用程序服务。

我可以通过创建到托管标识本身的 SQL Server 标识映射来成功完成此操作。

像这样:

CREATE LOGIN [my-app-service] 
FROM EXTERNAL PROVIDER;

然后给它数据库权限。

问题是我认为这不太可扩展。我们有几个需要数据库访问的应用程序。因此,我的计划是在 Entra 中创建一个组并将托管身份添加到该组。

与普通用户(开发人员)合作,我成功实现了这一目标。

例如在 Entra 中:

enter image description here

然后在 SQL Server 中:

CREATE LOGIN [Developers - internal] 
FROM EXTERNAL PROVIDER;

并添加数据库权限等等。

当尝试通过托管身份实现此目标时,我没有成功。

我已将服务主体添加到我的组中,但这不起作用。

enter image description here

我怀疑将托管身份添加为普通会员并不是正确的做法。还有一个称为应用程序的部分。

enter image description here

我可以将其他企业应用程序添加到组中,但是当我导航到我的托管身份时,将其添加到组中的按钮被禁用。我还添加了我能想到的所有权限(云应用程序管理员、应用程序管理员根据this)。还是无法正常工作。

enter image description here

有人知道如何解决根本问题吗?通过组使用托管身份验证 SQL Server,而不是身份本身?

有人知道是否可以启用“添加用户/组”按钮?

azure-active-directory azure-web-app-service azure-managed-identity azure-authentication azure-entra-id
1个回答
0
投票

我过去曾采用过这种工作方式,至少是直接会员。只要有服务主体在组中就足够了。

您可能还需要等待一段时间(最坏情况下超过一天)才能将更改应用于代币。

这似乎在本例中有效。我不是 100% 确定 Azure SQL 如何检查组成员资格,但我假设有某种缓存需要等待才能应用更改。

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