我正在尝试构建一个AzureAD访问应用程序。我必须为外部租户启用此应用程序。我已在此应用上启用了外部访问权限,并且还配置为使用Graph API。我已经在创建它的租户中测试了应用程序,并且所有内容(auth + graph api access)都能正常工作。现在这里是外部租户的流程
现在我想获得此用户的授权令牌,因此我将用户通过正常的Oauth流程
https://login.windows.net/common/oauth2/authorize
接着是
https://login.windows.net/common/oauth2/token/
此时Azure会抛出以下错误
{"error":"invalid_grant","error_description":"AADSTS50000: There was an error issuing a
token. AADSTS65005: No permission to access \u0027https://graph.windows.net\u0027
resource is configured for \u0027d2037ff7-24e4-4cac-8e5e-16e370b36238\u0027 application,
or it is expired or revoked.\r\nTrace ID: 472aa92f-35a2-4ed9-ab07-
12488cc9e6f5\r\nCorrelation ID: b163dde5-eac5-4c82-99ad-0e1100487cb9\r\nTimestamp: 2013-
09-23 05:28:41Z","error_codes":[50000,65005],"timestamp":"2013-09-23
05:28:41Z","trace_id":"472aa92f-35a2-4ed9-ab07-12488cc9e6f5","correlation_id":"b163dde5-
eac5-4c82-99ad-0e1100487cb9"}
即使应用已被授予访问权限,为什么会出现此错误。我试图查找STS
错误
但没有找到解释。有什么想法吗?
[更新]
SAML流程继续为外部租户工作,但我可以使用该应用程序为此外部租户进行SAML(SSO)登录。问题似乎只是访问图API。
答案 0 :(得分:1)
尝试将&prompt=consent
或&prompt=admin_consent
添加到完整的authorize
网址,以重新请求用户同意。我的经验是,同意将被随机撤销(可能是一个错误),并且不会被自动重新请求(绝对是一个错误)。