使用Azure用户供应的Microsoft Graph API

时间:2017-09-09 08:58:17

标签: microsoft-graph azure-management-api

我想要做的很简单:从我的Web App配置Office 365和Azure帐户。我希望它不仅适用于我,也适用于所有登录我的应用程序的IT部门(也来自其他组织)。

根据我的理解,我必须采取的步骤是:

  • apps.dev.microsoft.com上注册应用并获取ID和密码。
  • 启用我感兴趣的范围(在我的情况下为Directory.ReadWrite.AllUser.ReadWrite.All) - 从委派权限和应用程序权限启用
  • 通过登录过程

    https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=[My客户端]& response_type = code& redirect_uri = [我的帐户] /Account/Office&response_mode=query&scope=openid%20User.Read%20offline_access%20Directory.ReadWrite.All

  • 确认我在回复网址上收到的代码

POST https://login.microsoftonline.com/common/oauth2/v2.0/token?...secret and so on...

现在我得到的是具有访问令牌,续订令牌等的对象,等等。

如果我用它来吸引用户,那就完全可以了:

https://graph.microsoft.com/v1.0/users

但是当我尝试执行其他操作时,令牌似乎无效。

例如:

  • 获取Azure订阅(该帐户是多个订阅的管理员):

https://management.core.windows.net/subscriptions ==> UNAUTHORIZED

我做错了什么? IDEA背后是否正确?

我真的需要在“全局”级别完成,而不需要在每次订阅时配置手动步骤或手动输入一些“TenantID”。

1 个答案:

答案 0 :(得分:1)

您已为Microsoft Graph API请求了一个带有作用域的令牌,这就是为什么您可以使用由https://graph.microsoft.com/浮出水面的API端点的原因。

https://management.core.windows.net/subscriptions的调用是Microsoft Graph API的一部分,因此您的令牌对该资源无效。该电话是Service Management REST API。对此API进行身份验证的是documented here