c# - 如果作为托管身份运行,您可以创建/删除/更新存储的访问策略吗?

标签 c# azure azure-managed-identity azurite

我不太确定如何在本地测试它,因为我对使用托管身份的理解是我的代码需要作为 azure 资源发布并在该身份下运行以访问另一个已授予某些权限的 azure 资源到那个身份。

就我而言,我想测试我的 Web 应用程序在使用托管身份运行时是否可以创建存储访问策略,然后根据该策略生成 SAS。代码基础来自this article 。然而,正如该文章所述:

The underlying REST operation to create a stored access policy is Set Container ACL. You must authorize the operation to create a stored access policy via Shared Key by using the account access keys in a connection string.

因此,首先,如果我使用对存储帐户具有完全权限的托管身份在 Azure 中运行 Web 应用程序,它是否能够创建访问策略?其次,如何在本地测试这个,而不必将我的网络应用程序推送到 azure ?有没有办法使用 Azurite 进行测试?

最佳答案

您可以通过将以下内容添加到 VS 或 VS Code 中的启动文件来在本地进行测试,无论您的应用是否能够创建访问策略,都取决于您授予托管身份的访问权限,但可以肯定的是,您是否拥有给它正确的访问权限,那么它就可以做到这一点。

  var credentials = GetDefaultAzureCredential();

 private static DefaultAzureCredential GetDefaultAzureCredential() => new(new DefaultAzureCredentialOptions
        {
            ExcludeManagedIdentityCredential = false,
            ExcludeInteractiveBrowserCredential = false,
            ExcludeVisualStudioCodeCredential = false,

            ExcludeEnvironmentCredential = true,
            ExcludeAzureCliCredential = true,
            ExcludeSharedTokenCacheCredential = true,
            ExcludeVisualStudioCredential = true,

            VisualStudioCodeTenantId = Environment.GetEnvironmentVariable("TenantId"),
            InteractiveBrowserTenantId = Environment.GetEnvironmentVariable("TenantId")
        });

关于c# - 如果作为托管身份运行,您可以创建/删除/更新存储的访问策略吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72169462/

相关文章:

C# 计时器不会滴答作响

c# - 返回 await Task.FromResult 或抑制警告?

c# - 如何在我的所有项目中使用 PublicApp.Config

amazon-web-services - 使用prometheus配合volume来存储数据

java - 有没有办法使用 azure 用户名和密码以编程方式获取 azure AD 客户端 key ?

Azure CLI - Synapse 链接服务不接受用户分配的托管标识凭据

Azure SDK 使用 CLI 信用或托管身份

c# - Excel 2013 崩溃

azure - OMS 代理失败 12019

azure - 如何在 Azure API 管理中指定用户分配的托管标识