azure-active-directory - 带有 Web API 和 Microsoft Graph 的 Azure 应用
问题描述
我在https://apps.dev.microsoft.com注册了 Web App 和 API 。在我的 API 中,我在预授权应用程序中添加了我的 Web APP ID。到目前为止,一切都很好。它适用于以下范围:openid
、profile
和api://APP_ID_GUID/access_as_user
.
我还需要访问 Microsoft Graph,但添加https://graph.microsof.com/user.read
到我的范围会导致:
AADSTS700022:为输入参数范围提供的值无效,因为它包含多个资源。范围
openid
profile
https://graph.microsoft.com/user.read
api://APP_ID_GUID/access_as_user
无效。
如何获得令牌以便我可以同时使用两者?我只需要列出 Active Directory 中的用户。我看到它的唯一方法是获取 Microsoft Graph 的单独访问令牌,并在我想从 AD 查询用户时使用它。
解决方案
访问令牌仅在一个 API 上有效。您需要两个访问令牌来调用两个 API。
只要您的应用已获得必要的同意,它就可以通过使用刷新令牌(您可以使用刷新令牌获取任何资源的访问令牌)或使用隐式授权流的隐藏 iframe(即MSAL.JS 使用)。
推荐阅读
- apache-poi - 如何通过 POI 获取 powerpoint 文件中图表的类型?
- spring-boot - @RestControllerAdvice 不起作用。我使用的是 Spring boot 2.2.6 版本
- python - 如何使用python获取docker mounts的子目录
- vue.js - 已解决:从 VueJs 项目的生产环境中删除 Webpack 调试
- javascript - 具有不同输入的猫鼬查询
- javascript - 是个
Fluent UI 组件的网格布局的实现? - flutter - 谷歌图书馆的颤振图表 - 只有一个轴在动画?
- sql - SQL 比较工作日
- clojure - Clojure函数实现一个序列
- azure-active-directory - SAML:Idp 在删除 Azure AD 用户时启动注销?