azure-active-directory - 用于使用 ASP.NET Web api 获取组和用户的 Azure AD 应用注册设置
问题描述
尝试使用 ASP.NET Web API 从 Microsoft 图形中获取所有组时,我得到 403 禁止访问,这是我获取所有组的代码:
String jsonResponse = MicrosoftGraphHelper.MakeGetRequestForString (
String.Format("{0}users/{1}/memberOf",
MicrosoftGraphHelper.MicrosoftGraphV1BaseUri,
upn));
var userGroups = JsonConvert.Deser
在 Delegated 和 Application 选项卡中获取用户和组所需的权限是什么?我是否需要应用程序权限,因为这是一个 API,并且我的 UI 单独部署在 azure 中?我对权限选项列表和管理员同意感到困惑。
解决方案
首先,如果您还没有看到它,这是一本很棒的读物。
委派权限、应用程序权限和有效权限 - Microsoft Graph 权限参考。
在 Delegated 和 Application 选项卡中获取用户和组所需的权限是什么?
您可以通过查看相关文档了解每个 api 所需的权限。使用您在问题中共享的信息..
因为
users/{1}/memberOf
它将是List memberOf获取所有组 -列出组
如果您的应用程序中只有这两个调用,Directory.Read.All 将是所需的最低权限。如果有其他电话,请查看他们的文档。
我是否需要应用程序权限,因为这是一个 API,并且我的 UI 单独部署在 azure 中?
这将取决于您获取令牌以调用 Microsoft Graph API 的上下文。分享有关您的代码的更多信息。您用于获取令牌的 OAuth 流程,您可能会获得针对您的应用程序的更好建议。不过总的来说,
如果您以用户身份获取令牌,那么
Delegated permissions
(例如,如果您通过提示用户输入凭据来获取令牌,并且从流程的角度来看,如果您使用的是授权代码或隐式授权流程)如果您将令牌作为应用程序获取,则
Application permissions
(例如,如果您仅使用 clientId、clientSecret/certificate 来使用客户端凭据流获取令牌)
是否需要管理员同意?
这取决于您最终决定为您的应用程序所需的权限。
您可以直接在 Azure 门户中看到它。在为您的应用程序设置所需权限时,每个权限旁边都有一个是或否,以指示是否需要管理员同意。就像示例一样,请参见下面的屏幕截图。
Microsoft Graph 权限参考.. 我共享的第一个链接记录了所有权限。这里的示例与您相关。
推荐阅读
- android - 如何让android将应用程序识别为蓝牙外围设备(BLE设备)
- python - 虽然打开了 chrome,但找不到 Chromedriver
- r - 如何合并具有相同列名但列顺序不同的两个数据框
- sql - SQL 在具有最大值的表中查找值(结果必须是可编辑的)
- vba - Excel vba网页抓取:如何在代码执行时隐藏chrome浏览器
- redis - 在 redis py 2.10.5 中找不到 xadd
- python - 无替换样本的 np.random.choice 与 np.random.shuffle 的比较
- r - 如何将列表转换为每个值都带有引号的字符串?
- javascript - 将 Google 表格日期转换为 JavaScript 日期
- c++ - 我在 2 个集合中有 n 个元素,我必须遍历它们,以便在每次迭代中我得到当前元素和下一个元素