Office 365 API ErrorAccessDenied(拒绝访问。检查凭据,然后重试。)

时间:2014-11-13 08:56:23

标签: api ms-office office365 azure-active-directory

我正在尝试使用Office 365 API构建第一个应用程序并且遇到一个大问题。

我正在尝试使用Office 365 API和Azure Active Directory获取有关用户的主要信息,我正在这样做:

1)获取访问令牌。向https://login.windows.net/common/oauth2/token发送有关令牌的http帖子请求:

标头: 内容类型:application / x-www-form-urlencoded

POST DATA:

    grant_type = authorization_code
    client_id = *my_client_id*
    client_secret = *my_client_secret*
    session_state = e5fb6cd5-28f7-4dfc-b793-9ce8522534ac
    code = *code_that_i_got_to_my_callback_url*
    resource = https://outlook.office365.com/

我通过access_token,refresh_token,id_token,资源等获得响应。

2)我正在尝试获取有关访问令牌的用户的主要信息:

使用

获取https://outlook.office365.com/api/v1.0/me的请求

头:

    client-request-id: *some_random_id*
    return-client-request-id: true,
    authorization: 'Bearer ' + *access_token*
    Accept: '*/*'

但我明白了:

{ error: 
   { code: 'ErrorAccessDenied',
     message: 'Access is denied. Check credentials and try again.' } }

我在AAD的应用拥有一切的最大权限(对不起俄语): Permissions for app

我正在做这里的一切: http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-exchange-online-in-office-365.aspx

最有趣的时刻是,一周前一切运行良好(除了有时响应时间约为30秒),我可以获得有关用户的信息。

最后一件事。 在该页面(http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-exchange-online-in-office-365.aspx)上,您可以使用参数prompt = admin_consent向https://login.windows.net/common/oauth2/token发送请求。它也在一周前工作,但现在如果你尝试你会得到错误的请求(400)。

1 个答案:

答案 0 :(得分:5)

感谢您提出的问题,很遗憾听到您使用第一个应用时出现的问题。是否可以检查Office 365 Exchange Online的权限,并确保权限"拥有对用户邮箱的完全访问权限#34;没有被选中?有关详细信息,请参见附图。

enter image description here

这是为了使用名为Exchange Web Services的旧API访问用户的邮箱,而不是用于Office 365 REST API。我认为你正在接受“拒绝访问”#34;您的REST API请求,因为您可能已选择此权限。

如果您在删除此权限后仍然遇到问题,请告诉我们。如果您有任何疑问或需要更多信息,请与我们联系。

谢谢,

Venkat