首页 文章

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

提问于
浏览
3

我正在尝试使用Office 365 API构建我的第一个应用程序并且有一个大问题 .

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

1)获取访问令牌 . 对于令牌的https://login.windows.net/common/oauth2/token的http post请求:

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

发布数据:

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 回答

  • 5

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

    enter image description here

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

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

    谢谢,

    Venkat

相关问题