gpt4 book ai didi

azure - 奇怪的 DefaultAzureCredential 行为

转载 作者:行者123 更新时间:2023-12-03 02:05:48 28 4
gpt4 key购买 nike

我在使用 DefaultAzureCredential 进行身份验证时遇到一些问题。

如果我运行这段代码:

var credentials = new VisualStudioCredential();
var context = new TokenRequestContext(scopes: new string[] { _storageAccountUrl + "/.default" });
var token = await credentials.GetTokenAsync(context, new System.Threading.CancellationToken());

我收到以下错误:

TS003:错误,TS004:无法获取访问 token 。 “AADSTS50020:来自身份提供商“live.com”的用户帐户“{EmailHidden}”在租户“Microsoft Services”中不存在,并且无法访问应用程序“04f0c124-f2bc-4f59-8241-bf6df9866bbd”(与 native MSA 相比)那个租客。需要先将该帐户添加为租户中的外部用户。注销并使用不同的 Azure Active Directory 用户帐户重新登录。

但是,如果我将凭据更改为

var credentials = new AzurePowerShellCredential();

它有效!!

我在 Visual Studio 中以与在 PowerShell 中相同的用户身份登录。

有人知道为什么会发生这种情况吗?

-更新-

感谢@Juunas,使用以下代码可以工作。但为什么这是必要的(但对于 PowerShell 来说没有必要)?

var options = new VisualStudioCredentialOptions() { TenantId = "TENANT-ID-HERE" };
var credentials = new VisualStudioCredential(options);

最佳答案

在这种情况下,您需要指定租户,因为您使用的是个人 MS 帐户。我不是 100% 确定为什么 powershell 可以工作,但本质上个人帐户没有像“普通”Azure AD 帐户那样的主租户。如果您的 Azure AD 帐户是您尝试访问的租户中的 guest ,这也适用。

关于azure - 奇怪的 DefaultAzureCredential 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74905883/

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