阻止用户登录 Azure 应用程序注册

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

我正在编写一个服务器端应用程序,它将在内部服务器(一个物理盒子,而不是在 Azure 内部)上运行。应用程序需要访问 blob 存储容器。 Blob 存储中的数据是机密的,不应公开访问,也不应可供租户中的所有用户访问。我目前正在尝试找出最佳/最安全的方法来授予我的应用程序访问 blob 存储中的数据的权限。

在 Azure 文档中提到 SAS 应该以与帐户密钥相同的方式受到保护,反过来您应该“使用 Azure Key Vault 安全地管理和轮换密钥”。要针对密钥保管库进行身份验证,您必须使用托管标识(仅支持 Azure 中托管的资源,因此在本例中不支持)或创建应用程序注册并使用 RBAC 将访问密钥保管库的权限分配给应用程序注册。 创建应用程序注册时,您必须选择允许登录应用程序的帐户类型(组织目录中的帐户或任何帐户)。如前所述,我不想授予租户中的用户访问 Blob 或 Key Vault 的权限,因此他们不应该能够登录到应用程序。这是否可能以某种方式实现,或者在这种情况下使用应用程序注册是错误的方法?或者应用程序的角色分配未委托给用户,仅在使用客户端密钥时相关?
我也不清楚在这种情况下使用密钥保管库与从访问策略派生的 SAS 相比有什么好处。两者都允许撤销,对于密钥保管库,我仍然必须在服务器上放置一个秘密以授予应用程序访问权限。

azure security azure-keyvault rbac azure-app-registration
1个回答
0
投票

我认为您应该首先将托管身份视为一种身份验证机制,并且仅在托管身份因某种原因无法满足您的需求时才使用服务主体或 SAS 密钥。根据下面的文章,托管身份可以扩展到本地虚拟机。 https://learn.microsoft.com/en-us/azure/azure-arc/servers/managed-identity-authentication

如果没有托管身份,您就会陷入糟糕的答案,正如您所表达的那样。您的理解是正确的,如果您将角色分配给应用程序身份(托管身份或服务主体),则访问权限不会委托给用户,只有应用程序具有访问权限。使用托管标识是有利的,因为 Azure 会为您完成所有凭据管理。

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