我试图从本机应用程序调用图形api URL https://graph.microsoft.com/v1.0/me但拒绝访问 .

如果我从本机应用程序调用web api授权控制器,我会成功进行身份验证 .

当我尝试在后端进行REST调用时,我也被拒绝访问(提供用户的令牌) .

我试图通过HttpClient类(对于本机应用程序)和前端的adal.js来实现它 - 在这两种情况下我都成功地对使用Authorized属性修饰的web api控制器进行身份验证,但是无法调用Graph API服务 .

我已经运行了一个Web调试代理,并确保正确发送授权头 .

我做了以下事情:

  • 创建了Azure Native App

  • 创建了Azure Web App

  • 提供本机应用程序对web api应用程序的权限

一个 . 为默认权限添加了“读取目录数据”权限

  • 在Native应用程序中输入重定向URI - 与Web API相同的URL

  • 从Azure AD更新了Web应用程序清单 . 将oauth2AllowImplicitFlow设置为true

  • 提供了Web应用程序的权限

Windows Azure Active Directory:

一个 . 应用程序权限 - 读取目录数据

湾委托权限:以登录用户身份访问目录

C . 委托权限:读取目录数据

d . 委托权限:登录并阅读用户 Profiles

Microsoft Graph:

一个 . 委托权限:签署用户

湾委托权限:以用户身份登录的访问目录

C . 委托权限:读取目录数据

d . 委派权限:阅读所有用户的完整 Profiles

即委托权限:登录并阅读用户 Profiles

F . 应用程序权限:读取目录数据

G . 应用程序权限:读取所有用户的完整配置文件

  • 成功同意原生应用

  • 成功同意了web api应用程序