gpt4 book ai didi

c# - AzureServiceTokenProvider异常: Tried to get token using Managed Service Identity.发送请求时发生错误

转载 作者:行者123 更新时间:2023-12-02 07:33:07 25 4
gpt4 key购买 nike

我正在尝试使用用户定义的 MSI 来获取身份验证 token ,然后连接到 SQL 数据库。

到目前为止我看到的步骤;

  1. 创建用户定义的托管身份 --> 完成
  2. 使用 AzureServiceTokenProvider 获取身份验证 token --> 这是我收到错误/异常的地方
  3. 将通过 AzureServiceTokenProvider 接收到的身份验证 token 用于 SQLConnection。
  4. 执行 ADO.Net 或 EF 操作。

我已在我的 Azure 订阅中创建了用户定义的托管标识。然后,我继续编写一个简单的代码来使用 AzureServiceTokenProvider 获取访问 token 。代码如下;

static void Main(string[] args)
{
try
{
//var tokenProviderConnectionString = "RunAs=Developer; DeveloperTool=VisualStudio";
var tokenProviderConnectionString = "RunAs=App;AppId=bbda13b3-b948-4d02-91bb-31f198729887";

//var azureResource = "https://management.azure.com/";
var azureResource = "https://database.windows.net/";


Console.WriteLine("Attempting to gain access token from Azure...");
var azureServiceTokenProvider = new AzureServiceTokenProvider(tokenProviderConnectionString);
string accessToken = azureServiceTokenProvider.GetAccessTokenAsync(azureResource, "<<My Tenant ID>>").GetAwaiter().GetResult();
Console.WriteLine("Successful");
Console.WriteLine($"Access Token: {accessToken}");
}
catch (Exception ex)
{
Console.WriteLine("Error");
Console.WriteLine(ex.ToString());
}

}

我在 string accessToken = azureServiceTokenProvider.GetAccessTokenAsync(azureResource, "89cda43f-eb76-413b-bcbf-5c9b17542338").GetAwaiter().GetResult(); 上收到错误。

异常(exception)是

Parameters: Connection String: RunAs=App;AppId=bbda13b3-b948-4d02-91bb-31f198729887, Resource: https://database.windows.net/, Authority: https://login.microsoftonline.com/<<My Tenant ID>>. Exception Message: Tried to get token using Managed Service Identity. Access token could not be acquired. An error occurred while sending the request.

如果我使用var tokenProviderConnectionString = "RunAs=Developer; DeveloperTool=VisualStudio";作为连接字符串,然后我能够获取访问 token ,因为它使用我的 Visual Studio 登录作为 MSI。但是当我使用var tokenProviderConnectionString = "RunAs=App;AppId=bbda13b3-b948-4d02-91bb-31f198729887";时我得到了上面提到的异常。我认为 AzureServiceTokenProvider 中可能存在错误,或者我在请求中遗漏了某些内容。

有什么指点吗?

最佳答案

您需要使用该 AppId 和密码登录 Azure

az login --service-principal --tenant xxx --用户名 bbda13b3-b948-4d02-91bb-31f198729887 --密码 xxx

然后,当 AzureServiceTokenProvider 请求 token 时,它将有效。

关于c# - AzureServiceTokenProvider异常: Tried to get token using Managed Service Identity.发送请求时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56724502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com