Я пытаюсь создать первое приложение с офисным 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 имеет максимальные разрешения на все (извините за русский):
Я делаю все как здесь: 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).
Большое спасибо! Оно работает! – KardanovIR
Это разрешение будет удалено или переименовано? В настоящее время это немного вводит в заблуждение! –
Привет, Бенджамин Фокс, мы переименуем разрешение, чтобы сделать его более ясным. И мы изучаем, можем ли мы внести изменения в сервисную сторону, чтобы игнорировать это разрешение и не возвращать ошибку Access Denied при получении запроса API REST с помощью токена, включая разрешение «Полный доступ». Надеюсь, это поможет. Спасибо, Venkat –