C# - 具有托管服务标识的 Azure 存储

C# - Azure Storage with Managed Service Identity

是否有人设法实施或拥有任何关于使用 Azure 存储的托管服务标识 (MSI) 的文档 - 最好使用 Blob

我的目标是通过 MSI with Storage 验证我的 WebApp/WebJob。设置身份验证后,我会将 blob 推送到存储。我需要这个的原因是从我的应用程序配置中消除任何形式的连接字符串和密码。

更新 Azure Blob 存储现在支持 "keyless" 身份验证方案的 MSI(托管服务标识)! See the list of supported services here

旧答案

不幸的是,不支持 Blob 存储,无论是拥有自己的标识还是提供对具有自己标识的服务的访问。原因是 Blob 存储(所有 Azure 存储)不适用于 Azure Active Directory。

但是您还有其他选择,例如 Azure Data Lake Store 或 SQL 可通过 MSI 访问的服务器。

另请注意,Key Vault 受支持。在您的情况下,我会为存储创建一个 SAS 密钥,并制定相关限制,然后将 SAS 密钥放入 Key Vault。使用 WebApp 中的 MSI 从 Key Vault 检索密钥。有趣的是,我们已经能够使用 ARM 模板构建此配置,将信任置于 WebApp MSI 和 Key Vault 中的存储密钥中,只有部署帐户知道密钥,既好又安全,开发人员永远看不到或不需要SAS 密钥...

您可以在 this link 找到支持 MSI(托管服务标识)的服务列表。