Microsoft Graph API返回"访问令牌验证错误"

时间:2017-01-04 20:33:37

标签: azure angular oauth jwt azure-ad-graph-api

我已经向Microsoft注册了一个Angular2应用程序,该应用程序完全是客户端访问Graph API。我已启用隐式授权流程,并且我能够在登录和首次授权后成功获得JWT。

网址片段甚至表示它是持票人令牌,如下所示:

http://localhost:4200/loginRedirect#access_token={JWT_TOKEN_HERE}&token_type=Bearer&expires_in=3600&session_state={state_guid}

我的重定向进行身份验证,供参考,如下所示:

window.location.href = "https://login.microsoftonline.com/common/oauth2/authorize?resource=" + encodeURIComponent('https://graph.windows.net') + "&response_type=token&client_id=" + this._config.clientId + "&redirect_uri=" + encodeURIComponent(this._config.redirectUri);

尽管在我的Graph API请求的标题中包含了已获取的JWT:

Authorization: Bearer {JWT_TOKEN_HERE}

我得到401:Access Token Validation Error

我认为自从我成功检索到该令牌后,它告诉我的是Bearer,它会起作用,但事实并非如此。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

错误的资源URI。 Azure AD Graph API为https://graph.windows.net

Microsoft Graph API资源URI为https://graph.microsoft.com/,请尝试使用。

Azure AD Graph API是AAD的API,而Microsoft Graph API也涵盖Office 365服务。令人困惑的命名。