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

Kar*_*vIR 3 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 post请求:

标题:内容类型: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/
Run Code Online (Sandbox Code Playgroud)

我得到了access_token,refresh_token,id_token,资源等的响应.

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

GET请求https://outlook.office365.com/api/v1.0/me

头:

    client-request-id: *some_random_id*
    return-client-request-id: true,
    authorization: 'Bearer ' + *access_token*
    Accept: '*/*'
Run Code Online (Sandbox Code Playgroud)

但我得到:

{ error: 
   { code: 'ErrorAccessDenied',
     message: 'Access is denied. Check credentials and try again.' } }
Run Code Online (Sandbox Code Playgroud)

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

我正在做这里的所有事情:http: //blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-交换在线在办公室,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).

Ven*_*SFT 5

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

在此输入图像描述

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

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

谢谢,

Venkat

  • 该权限将被删除还是重命名?目前有点误导! (2认同)