【发布时间】:2017-09-07 10:15:38
【问题描述】:
是否可以获得资源或范围为 https://graph.microsoft.com/ 的 Azure AD 的仅应用令牌?
我阅读了文章Service to service calls using client credentials (shared secret or certificate),但是我无法获得访问令牌,错误是“未能在租户xxx 中找到资源https://graph.microsoft.com/”。
如果我把resource改成scope,我可以得到一个访问令牌,但是这个令牌不能用来获取web api。我收到 401 未经授权的错误。但我已授予所有权限,包括应用程序和图形 api 的委派权限。
POST /contoso.com/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=625bc9f6-3bf6-4b6d-94ba-e97cf07a22de&client_secret=qkDwDJlDfig2IpeuUZYKH1Wb8q1V0ju6sILxQQqhJ+s=&resource=https%3A%2F%2Fservice.contoso.com%2F
【问题讨论】:
-
您的调用似乎是正确的,但客户端密码需要进行 URL 编码。 (就像资源 URI 一样)
-
谢谢,我找到了原因。我使用一个库来处理这个问题,它对参数进行编码,但我再编码一次。我删除了我的,它可以工作。
标签: azure azure-active-directory microsoft-graph-api