我正在尝试构build一个AzureAD访问应用程序。 我必须为外部租户启用此应用程序。 我已经启用了这个应用程序的外部访问,它也被configuration为使用Graph API。 我已经在创build它的租户中testing了应用程序,并且所有内容(auth + graph api access)都可以正常工作。 现在这里是外部租户的stream程
现在我想获得这个用户的授权令牌,所以我通过正常的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
错误,但没有find解释。 有任何想法吗?
[更新]
SAML过程继续为外部租户工作,但也就是说,我可以使用应用程序SAML(SSO)login这个外部租户。 这个问题似乎只是要访问graphicsAPI。
尝试在完整authorize
URL中添加&prompt=consent
或&prompt=admin_consent
以重新请求用户同意。 我的经验是,同意将被随机撤销(也许是一个错误),不会被自动重新请求(绝对是一个错误)。