当前位置: 首页 > 知识库问答 >
问题:

使用MSAL为Graph API获取令牌?

芮歌者
2023-03-14

我正在尝试使用 MSAL (1.0.304142221-alpha) 使用客户端凭据流获取微软图形 API 的令牌。我的代码看起来像这样:

var confidentialClientApp = new ConfidentialClientApplication(clientId, redirectUri, new ClientCredential(clientSecret), null);
var token = confidentialClientApp.AcquireTokenForClient(new string[] { "Mail.Read" }, string.Empty).Result;

第二行引发异常:“AADSTS70011:为输入参数'scope'提供的值无效。范围邮件读取无效。图形 API 引用似乎引用了“邮件.Read”作为所需的范围。

Azure AD中的应用程序是一个具有单个密钥的Web应用程序。应用程序具有Microsoft Graph的“在所有邮箱中读取邮件”应用程序权限集。

有谁能说明发生了什么事吗?谢谢:)

共有1个答案

李谦
2023-03-14

Azure AD终结点的v2尚不支持仅应用令牌。目前您被限制使用委派令牌。我们希望尽快启用仅应用令牌,抱歉给您带来不便。

 类似资料:
  • 我有一个Web应用程序(Angular 7),它使用MSAL Angular对Azure AD用户进行身份验证,并获取访问我的Web API(.NET 4.6)的访问令牌。这两个应用都已在Azure门户中注册,并具有以下权限,如下所述: Web应用程序:for Web API(委派) Web API:<代码>用户。阅读邮政发送MS图表(委派) 现在,我想使用ADAL for从Web API调用Mi

  • 我能够获得Graph API的有效访问令牌,因为有丰富的示例/文档/教程。 但是,我无法为我的自定义API获取有效的访问令牌。我使用的范围看起来像这样: 使用此作用域,我可以获取访问令牌。不幸的是,它是无效的。随后,当我尝试在自定义 API 上调用某些内容时,我收到未经授权的 401 错误。 甚至有可能使用MSAL acquireTokenSilent在自定义API上请求访问令牌吗?

  • 我正在尝试开发一个VueJS单页应用程序,让你登录AAD,这样我就可以获得一个访问令牌来调用各种API(例如Graph)。 一旦用户登录,您必须获得一个令牌,有两种方法可以做到这一点:静默(如果失败,使用重定向体验)。 但是,我无法使用这两种方法获取令牌: 加载SPA后,我会被重定向到AAD登录页面。 然后我得到以下警报提示: 使用静默时出错: ClientAuthError:no_account

  • 我有一个Xamarin.forms iOS/Android应用程序,必须根据Microsoft Azure B2C广告对用户进行身份验证。 我已经添加了Microsoft.Identity.Client NuGet,并使用它进行身份验证。 登录工作正常,我可以使用返回的令牌调用我们自己的Azure托管服务。 但是,如果我提供了这个作用域,库会抛出不支持的异常。 我的问题是:这是因为MSAL目前根本

  • 我编写了一个控制台ASP.NET应用程序来获取AccessTokens。我有clientId,我的应用程序的客户端秘密,我做了以下操作: var authContext=新的AuthenticationContext(“https://login.windows.net/common/oauth2/authorize”);var acquireTask=authContext.AcquireTok

  • 我正在尝试在Android中实现MSAL,以便使用他们的微软凭据登录用户。在全新安装时,我第一次能够获取令牌,并进一步使用它来访问微软图形API。 由于MSAL令牌的到期时间默认为1小时,如果我尝试重新启动应用程序,1小时后,我将面临令牌身份验证异常。 现在我被困在如何再次刷新令牌上? 在MSAL中,我遵循了这些示例,但没有任何地方提到使用Android SDK刷新令牌[我们可以使用API调用来获