我想要做的很简单:从我的Web App配置Office 365和Azure帐户。我希望它不仅适用于我,也适用于所有登录我的应用程序的IT部门(也来自其他组织)。
根据我的理解,我必须采取的步骤是:
apps.dev.microsoft.com
上注册应用并获取ID和密码。 Directory.ReadWrite.All
和User.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
但是当我尝试执行其他操作时,令牌似乎无效。
例如:
https://management.core.windows.net/subscriptions
==> UNAUTHORIZED
我做错了什么? IDEA背后是否正确?
我真的需要在“全局”级别完成,而不需要在每次订阅时配置手动步骤或手动输入一些“TenantID”。
答案 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。