Microsoft 图形客户端未在必需的资源访问列表中指定资源

本文关键字:资源 访问 列表 客户端 图形 Microsoft | 更新日期: 2023-09-27 18:32:16

当我尝试检索访问令牌时出现以下错误。

/MicrosoftGraph/Authorise?error=access_denied&error_description=AADSTS65005%3a+The+client+application+has+request+access+to+resource+%27https%3a%2f%2fgraph.microsoft.com%2f%27.+This+request+has+failed+因为+the+client+has+not+specified +this+resource+in+its+requiredResourceAccess+list.%0d%0aTrace+ID%3a+7cd46ad3-d294-41ad-98ec-6ef06db7a0db%0d%0aCorrelation+ID%3a+4e2a6d3b-b3dd-4a98-b36d-550d8f8c3382%0d%0a时间戳%3a+2016-01-27+10%3a40%3a12Z

这是...graph.microsoft.com 此请求失败,因为客户端未在其必需的资源访问列表中指定此资源

它是 Azure Active Directory 中的多租户应用程序。我可以使用我的一个电子邮件 ID 成功登录,但不能使用另一个 ID。

我哪里出错了?我错过了什么?

代码片段:

public ActionResult Login() {
    ....
Uri authUri = authContext.GetAuthorizationRequestURL(
            MicrosoftGraphSettings.O365UnifiedAPIResource,
            MicrosoftGraphSettings.ClientId,
            loginRedirectUri,
            UserIdentifier.AnyUser,
            null);
string authUriAsString = authUri.ToString();
return Redirect(authUriAsString);
}
public async Task<ActionResult> Authorise()
{
    Uri loginRedirectUri = new Uri(Url.Action("Authorise", "MicrosoftGraph", null, Request.Url.Scheme));
    var authContext = new AuthenticationContext(MicrosoftGraphSettings.AzureADAuthority);
    var authResult = await authContext.AcquireTokenByAuthorizationCodeAsync(
            Request.Params["code"],                                             
            loginRedirectUri,                                               
            new ClientCredential(MicrosoftGraphSettings.ClientId, MicrosoftGraphSettings.ClientSecret), 
            MicrosoftGraphSettings.O365UnifiedAPIResource);
}

我尝试了以下方法

public static string O365UnifiedAPIResource = @"https://graph.microsoft.com/";
//public static string O365UnifiedAPIResource = @"https://graph.windows.net/"; 
使用

第二个身份验证成功,但每当我使用现有代码访问 OneDrive for Business 帐户中的文件列表或创建文本文件时,它会在进行 API 调用时引发"未经授权的"异常。

Microsoft 图形客户端未在必需的资源访问列表中指定资源

该错误消息指示应用程序没有"Microsoft Graph"(https://graph.microsoft.com/) 资源的委派权限。

请使用 Azure 管理门户 (https://manage.windowsazure.com) 为该资源配置委派权限。找到应用程序 ->配置 ->"对其他应用程序的权限" ->"添加应用程序" ->选择"Microsoft图形"。

由于您能够获得"https://graph.windows.net/"的令牌,因此您的应用程序已经为"Windows Azure Active Directory"资源配置了权限,但该资源与"Microsoft Graph"不同。