Windows Azure:用于外部访问的AD应用程序会在令牌问题上引发错误

时间:2013-09-23 06:16:17

标签: windows azure active-directory

我正在尝试构建一个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。

1 个答案:

答案 0 :(得分:1)

尝试将&prompt=consent&prompt=admin_consent添加到完整的authorize网址,以重新请求用户同意。我的经验是,同意将被随机撤销(可能是一个错误),并且不会被自动重新请求(绝对是一个错误)。