【发布时间】:2019-11-13 14:53:49
【问题描述】:
我设法使以下代码正常工作 (complete code here) 以使用 Azure 托管标识进行身份验证(通过 Visual Studio)并无需使用凭据即可访问 Azure 存储帐户。
const string storageResource = "https://storage.azure.com/";
var authResult = await azureServiceTokenProvider.GetAuthenticationResultAsync(storageResource, cancellationToken: cancellationToken);
代码设法找到我的用户登录到 Visual Studio 并使用它来获取令牌,一切顺利。
但是,此代码在 Azure DevOps 构建管道中作为库集成测试的一部分执行。
我找到了在 Azure DevOps 中创建与 Azure 的服务连接时创建的服务主体,并为其赋予了相同的 Storage Blob Data Contributor 角色,希望 Azure DevOps 将使用它来运行代码,但没有成功。
所以我的问题是:
如何获取在 Azure DevOps 构建管道中运行的代码,以便能够使用 AzureServiceTokenProvider 进行身份验证?
顺便说一句,错误信息:
Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProviderException :参数:连接字符串:[未指定连接字符串], 资源:https://storage.azure.com/,权威:。异常消息: 尝试了以下 3 种方法来获取访问令牌,但都没有 工作。参数:连接字符串:[无连接字符串 指定],资源:https://storage.azure.com/,权限:。 异常消息:尝试使用托管服务标识获取令牌。 无法获取访问令牌。重试 5 次后失败。微星 响应代码:BadRequest,响应: {"error":"invalid_request","error_description":"找不到身份"} 参数:连接字符串:[未指定连接字符串], 资源:https://storage.azure.com/,权威:。异常消息: 尝试使用 Visual Studio 获取令牌。无法访问令牌 获得。找不到 Visual Studio 令牌提供程序文件 “C:\Users\VssAdministrator\AppData\Local.IdentityService\AzureServiceAuth\tokenprovider.json” 参数:连接字符串:[未指定连接字符串], 资源:https://storage.azure.com/,权威:。异常消息: 尝试使用 Azure CLI 获取令牌。无法访问令牌 获得。错误:请运行“az login”来设置帐户。
TearDown : System.NullReferenceException : 对象引用未设置为 一个对象的实例。
【问题讨论】:
-
你能找到答案吗?我也有同样的问题。
-
@HockeyJ,很抱歉,但现在我不记得出了什么问题。
标签: azure-devops azure-managed-identity