Azure SDK使用CLI凭据或托管身份

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

[使用AWS时,如果您使用aws configure登录,则可以使用AWS开发工具包,而无需从本地计算机公开任何编程语言的凭证。如果稍后AWS内部运行任何东西(Lambda,EC2等),则完全相同的代码会使用资源分配的IAM角色,而无需进行任何配置。

我尝试使它与Azure一起使用,我认为Azure.Identity.DefaultAzureCredential可以做到这一点。但是我什至不能在本地运行我的代码:

            var blobServiceClient = new BlobServiceClient(storageUri, new DefaultAzureCredential());
            var containerClient = await blobServiceClient.CreateBlobContainerAsync("test-container");

我如何获得使用本地计算机上的CLI凭据进行身份验证的BlobServiceClient,以及如果在AppService中运行则获得托管身份。

azure azure-sdk-.net azure-sdk azure-managed-identity
1个回答
0
投票

在您所使用的场景中,DefaultAzureCredentialDefaultAzureCredential一起是最佳选择,但它不使用CLI凭据进行身份验证。

要使其工作,只需将服务主体的BlobServiceClientEnvironment variablesEnvironment variables设置为AZURE_CLIENT_ID。在Azure中,它使用MSI进行身份验证。


[如果要使用CLI凭据进行身份验证,则有AZURE_TENANT_ID,它也可以访问Azure存储,但是不能与AZURE_CLIENT_SECRET一起使用,您需要获取带有资源AzureServiceTokenProvider的访问令牌,

AzureServiceTokenProvider

然后使用访问令牌来调用BlobServiceClient,我认为第一个选项更方便,使用哪个选项取决于您。

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