我想在广告中查看有关我的用户的完整信息(组中的用户等)。 我已经有一个登录到AD的应用程序,然后获得了承载令牌,该令牌可以访问我的Azure区块链工作台API,并且一切正常。 Workbench API有一个用户端点,但是信息有限,它具有名字,姓氏,电子邮件等...,我想了解更多。
当尝试使用已经拥有的承载令牌调用https://graph.microsoft.com/v1.0/me端点时,它无效并且得到:
{
"odata.error": {
"code": "Authentication_MissingOrMalformed",
"message": {
"lang": "en",
"value": "Access Token missing or malformed."
},
"requestId": "47322d1e-24d5-4170-ace5-947a8725ec1c",
"date": "2019-03-13T08:14:37"
}
}
我也尝试了另一种方法。我有一个服务主体,并为该服务主体提供了Windows Active Directory用户基本信息特权。我还给了它Microsoft Graph特权,还给了mu区块链应用程序特权(不确定是否需要)。
我使用客户端凭据主体调用https://login.microsoftonline.com/ {{tenant-id}} / oauth2 / token,我得到了一个承载令牌。现在有了这个承载令牌,我得到了:
{
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"request-id": "2a7febaa-a6db-4770-a323-1971fa0bf863",
"date": "2019-03-17T13:54:57"
}
}
}
答案 0 :(得分:3)
需要为Microsoft Graph API获取访问令牌作为资源。
在第一种方法中,您已经为Workbench api拥有的令牌不适用于Microsoft Graph,因为该令牌是针对Workbench API的。您可以通过查看该令牌的aud
声明来进行检查。您可以使用https://jwt.ms
在第二种方法中,只要您指定要为其获取令牌的资源是https://graph.microsoft.com
而不是工作台API,令牌就应该起作用。如果仍然遇到问题,请共享用于获取令牌或已解码令牌本身的代码(减去任何敏感信息)