【问题标题】:Microsoft Graph appRoleAssignment direct queries not supported?不支持 Microsoft Graph appRoleAssignment 直接查询?
【发布时间】:2018-10-11 12:13:14
【问题描述】:

我一直在使用这些 github 文档页面:Page1Page2,我已经在我正在使用的应用程序上实现了 adal,我只是在控制台上记录了令牌,这样我就可以将令牌复制粘贴到邮递员中并更快地尝试请求。

我一直在尝试文档中提到的获取请求。

https://graph.microsoft.com/beta/appRoleAssignments/{Object Id of AD App} or { App ID of AD App }

但也尝试了基于文档的各种其他路线。对于所有其他的,我收到“找不到资源”,对于上面的一个,我收到了 'direct queries to this resource type are not supported'

浏览了一些相关的 stackoverflow 线程并进入 github 问题以查看与 approlesassignment 资源类型相关的任何内容,但没有运气。

编辑:令牌是在 Angular 应用程序中使用包 adal-angular4 获得的(但它是一个 angular6 应用程序,并且该包已更新为与 Angular 6 一起使用)

【问题讨论】:

  • 请注意,如果您使用 Postman,最简单的方法是将授权设置为“OAuth 2.0”类型,选择有意义的流程(例如,隐式,如果您正在代理链接本地客户端应用程序,或者授权码,如果你的行为像一个网络应用程序)。
  • @PhilippeSignoret 嗯——我正在使用邮递员进行测试,然后再在最终的应用程序上进行测试,该应用程序将是 Angular6 Web 应用程序。但在那里我也使用 Bearer + token 设置标题。但是,我已将 authz 更改为 OAuth 2.0,并且得到了完全相同的回复。
  • 即使您使用正确的请求,因为您已正确地将其包含在您的自我回答中? (顺便说一句,别忘了接受你自己的答案!)
  • @PhilippeSignoret 遗憾的是,不——通过更改为 OAuth 2.0 不起作用可能是我获取令牌的方式是用于 Oauth1.0?我会研究一下adal的逻辑。我的回答更多的是绕过问题,如果我让它工作,我宁愿将您的回复标记为解决方案,因为这是标题中问题的真正直接解决方案。
  • 我建议您编辑您的问题以显示您用于获取访问令牌并发出请求的代码。否则很难理解你需要什么。

标签: active-directory azure-active-directory microsoft-graph-api


【解决方案1】:

经过一番努力,我设法通过 Azure Enterprise App API 获取了必要的信息,而不是上面提到的端点。

GET 请求如下所示:

https://graph.microsoft.com/beta/servicePrincipals/{ID}/appRoleAssignments/

上述上下文中的 ID 是“企业应用程序”下 Azure AD 应用程序的“对象 ID”,从“企业应用程序”下获取一个至关重要。

您可以在以下位置找到它:

In Azure > Active Directory > Enterprise Apps > Your App > Properties

现在您只需要 Microsoft Graph 标头中的不记名身份验证令牌和正确的权限,我认为读/写所有目录数据就足够了。

【讨论】:

  • 属性中的 ID 不是 Object Id 而不是 Group ID
  • @juunas 你说得对,我不知道我为什么要写 Object ID,一定是分心了。我当然在考虑对象 ID,甚至根本不认为组 ID 在这种情况下是一个东西。已更新我的回复。谢谢!
  • 您还应该只需要 Directory.Read.All 来执行此 GET 操作。
猜你喜欢
  • 1970-01-01
  • 2023-01-14
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多