2014-11-13 1 views
3

Я пытаюсь создать первое приложение с офисным API 365 и иметь одну большую проблему.Office 365 API ErrorAccessDenied (доступ запрещен. Проверьте учетные данные и повторите попытку.)

Я пытаюсь получить основную информацию о пользователе с Office 365 API и Azure Active Directory и что я делаю:

1) Получить маркер доступа. Запрос HTTP POST для https://login.windows.net/common/oauth2/token для маркера:

HEADERS: Content-Type: применение/х-WWW-форм-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 с

HEADERS:

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) вы можете найти запрос к https://login.windows.net/common/oauth2/token с параметром prompt = admin_consent. Он работал еще неделю назад, но теперь, если вы попробуете, вы получите Bad Request (400).

ответ

5

Спасибо за ваш вопрос и извините за беспокойство, которое вы испытываете с помощью своего первого приложения. Можете ли вы проверить разрешения для Office 365 Exchange Online и убедиться, что разрешение «Полный доступ к почтовому ящику пользователя» НЕ выбрано? Дополнительную информацию см. В прилагаемом изображении.

enter image description here

Это предназначается для доступа к почтовому ящику пользователя, используя старую API под названием Exchange Web Services, и не предназначены для Office 365 REST API. Я думаю, что вы получаете «Access Denied» для вашего запроса API REST, потому что вы, возможно, выбрали это разрешение.

Сообщите мне, если вы все еще видите проблему после удаления этого разрешения. Дайте мне знать, если у вас есть вопросы или вам нужна дополнительная информация.

Спасибо,

Venkat

+0

Большое спасибо! Оно работает! – KardanovIR

+1

Это разрешение будет удалено или переименовано? В настоящее время это немного вводит в заблуждение! –

+1

Привет, Бенджамин Фокс, мы переименуем разрешение, чтобы сделать его более ясным. И мы изучаем, можем ли мы внести изменения в сервисную сторону, чтобы игнорировать это разрешение и не возвращать ошибку Access Denied при получении запроса API REST с помощью токена, включая разрешение «Полный доступ». Надеюсь, это поможет. Спасибо, Venkat –

Смежные вопросы