0

我想要做的很简单:从我的 Web 应用程序配置 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= [我的客户]&response_type=code&redirect_uri=[我的帐户]/Account/Office&response_mode=query&scope=openid%20User.Read%20offline_access%20Directory .ReadWrite.All

  • 确认我在返回 URL 上收到的代码

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 ==> 未经授权

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

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

4

1 回答 1

1

您已请求一个范围为Microsoft Graph API的令牌,这就是您可以使用https://graph.microsoft.com/.

调用https://management.core.windows.net/subscriptions不是Microsoft Graph API一部分,因此您的令牌对该资源无效。该调用进入服务管理 REST API此处记录了此 API 的身份验证。

于 2017-09-09T23:55:17.267 回答