gpt4 book ai didi

c# - 如何从 Azure AD 获取 TokenCredentials 的访问 token ?

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

我正在尝试连接到我的 Azure 帐户,为此我需要创建 TokenCredentials 对象,该对象需要访问 token 作为参数。但我在获取访问 token 时遇到问题。

我尝试按照此示例的指导进行操作:https://github.com/Azure-Samples/azure-batch-samples/blob/master/CSharp/AccountManagement/Program.cs

这是我尝试运行的代码:

public static async Task<ServiceClientCredentials> CreateTokenCredentialsAsync()
{
var clientId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
var redirectUri = "https://myredirecturi.com";
var authorityUri = "https://login.microsoftonline.com/common";
var resourceUri = "https://management.core.windows.net/";

var platformPrameters = new PlatformParameters(PromptBehavior.Auto);

var authContext = new AuthenticationContext(authorityUri);
AuthenticationResult authResult = await authContext.AcquireTokenAsync(
resourceUri,
clientId,
new Uri(redirectUri),
platformPrameters);

var token = authResult.AccessToken;

ServiceClientCredentials creds = new TokenCredentials(authResult.AccessToken);

return creds;
}

我遇到以下异常:

Invalid resource.
The client has requested access to a resource which is not listed in the requested permissions in the client's application registration.
Client app ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx(<my registered app name>).
Resource value from request: https://management.core.windows.net/.
Resource app ID: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy.
List of valid resources from app registration: ...

我应该怎么做才能使这项工作正常进行并获得访问 token ?

最佳答案

听起来您在 Azure AD 中注册应用程序时尚未将 Azure 服务管理 API 添加到所需权限中。

首先,在 Azure AD 中找到您的应用注册。然后转到API权限。单击“添加权限”。

然后单击“Azure 服务管理”。

Click Azure Service Management

在委派权限下选择 user_impersonation,然后单击添加权限。

Choose user_impersonation

现在您应该能够显示登录对话框。它将请求您同意以您的身份访问 ARM API。如果您想避免这些提示并允许应用以租户中任何登录用户的身份调用 ARM API,您可以在 API 权限选项卡上单击“授予管理员对租户名称的同意”(假设您是管理员)。

关于c# - 如何从 Azure AD 获取 TokenCredentials 的访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58163015/

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