是否可以获取资源或范围为https://graph.microsoft.com/的Azure AD的应用程序标记?
我阅读了文章Service to service calls using client credentials (shared secret or certificate),但我无法获得访问令牌,错误是"无法在租户xxx"中找到资源https://graph.microsoft.com/
。
如果我将resource
更改为scope
,我可以获得访问令牌,但此令牌无法用于获取网络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
答案 0 :(得分:0)
如果您在Azure门户中注册Azure AD应用程序并希望使用客户端凭据流获取微软图api的令牌,则应使用https%3A%2F%2Fgraph.microsoft.com%2F
(网址编码)作为resource
,并且不要&# 39;忘记按照@juunas的建议将客户端秘密URL编码。
如果您为自己的受Azure AD保护的Web api获取令牌,则可以使用为api应用程序注册的App ID URI作为资源。代码示例here仅供参考。