我正在开发一个管理邮件,联系人和用户日历的多租户Web应用程序 .
在AzureAd管理门户网站上,我将我的应用程序注册为多租户,并设法为我的租户内外的人员获取OAuth令牌,在查询身份验证代码和令牌 endpoints 时将“tennantId”替换为“common” .
现在,我想访问已登录并同意为我的应用授予权限的人的日历,邮件和联系信息 .
我开始很简单,通过查询用户的基本用户信息 inside tenancy ,如下所示:
GET https://graph.windows.net/-tennantId-/me?api-version=2013-11-08或GET https://graph.windows.net/-tennantId-/users/myAdress@company.com?api-version=2013-11-08 {headers:{授权:"Bearer -accessToken-"}}
有用!
现在,我如何才能访问我租用的用户信息?我试过了
GET https://graph.windows.net/-tennantId-/me?api-version=2013-11-08
GET https://graph.windows.net/-tennantId-/users/address@outside.com?api-version=2013-11-08
GET https://graph.windows.net/common/me?api-version=2013-11-08
GET https://graph.windows.net/common/users/address@outside.com?api-version=2013-11-08,
我总是最终得到400错误:{“odata.error”:{“code”:“Request_BadRequest”,“message”:{“lang”:“en”,“value”:“请求中的域名无效网址 . “}}}
知道我做错了什么吗?
1 回答
啊啊!
如果您使用OAuth开发多租户应用,请在与Graph API交谈时忘记使用您的租户ID!
在您的租赁期间或之外为用户请求令牌时,相当于“通用”是......“myorganization”!
这将有效:
https://graph.windows.net/myorganisation/me?api-version=2013-11-08
哦,显然是written in the doc,但是......但是...... MICROSOOOOOFT !!!