【发布时间】:2016-04-18 22:26:12
【问题描述】:
我正在尝试让 OAuth2 工作流为 Azure AD 正确执行。我正在遵循此来源的指示:https://msdn.microsoft.com/en-us/library/azure/dn645542.aspx
我可以通过使用此请求成功获得授权码响应:
https://login.microsoftonline.com/[app-endpoint-id]/oauth2/authorize?response_type=code&client_id=[client-id]&redirect_uri=[redirect-uri]
然后,我使用授权代码通过 http 帖子请求访问令牌,如下所示(我正在使用 Postman 进行测试):
POST /[app-endpoint-id]/oauth2/token HTTP/1.1 Host: login.microsoftonline.com Cache-Control: no-cache Postman-Token: ed098281-9aa4-6e5f-915d-0253d9a876d3 Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&client_id=[client-id]&code=[authorization_code]&redirect_uri=[redirect_uri]&client_secret=[client-secret]&resource=[app-url]
我从 POST 请求中收到以下错误消息:
{"error":"invalid_grant","error_description":"AADSTS65001: 用户或 管理员未同意使用带有 ID 的应用程序 '应用程序 ID'。为该用户发送交互式授权请求,并 资源。\r\n跟踪 ID: trace-di\r\n相关 ID: 相关 ID\r\n时间戳:2016-01-13 17:18:39Z","error_codes":[65001],"timestamp":"2016-01-13 17:18:39Z","trace_id":"trace-id","correlation_id":"correlation-id"}
如果我清除缓存并首次请求授权码,我将被重定向到登录。但是,登录后我没有任何方法可以授权我的应用程序,就像它在本文档中所说的那样:
//azure.microsoft.com/en-us/documentation/articles/active-directory-integrating-applications/
我在这里做错了什么?我正在尝试获取访问令牌。
【问题讨论】:
-
你具体想做什么?即,您是否尝试让 WebAPI 应用程序与 AAD 或移动应用程序一起使用,使用什么语言?
-
我正在尝试让 WebAPI 应用程序在 Java 中与 AAD 一起工作。
-
我遇到了同样的问题,但我使用的是 PHP。
标签: azure oauth active-directory