作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接到我的 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 服务管理”。
在委派权限下选择 user_impersonation,然后单击添加权限。
现在您应该能够显示登录对话框。它将请求您同意以您的身份访问 ARM API。如果您想避免这些提示并允许应用以租户中任何登录用户的身份调用 ARM API,您可以在 API 权限选项卡上单击“授予管理员对租户名称的同意”(假设您是管理员)。
关于c# - 如何从 Azure AD 获取 TokenCredentials 的访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58163015/
我是一名优秀的程序员,十分优秀!