Создать событие календаря с помощью Microsoft Graph: ErrorAccessDenied - PullRequest
0 голосов
/ 17 октября 2018

Я использовал curl и Outlook REST API v1.0 (с базовой аутентификацией) для создания событий календаря в календарях Outlook.Базовая аутентификация вскоре устареет, поэтому я сейчас пытаюсь перейти на Microsoft Graph v1.0 с OAuth 2. У меня есть некоторый путь в будущем, но я застрял в «ErrorAccessDenied» при запуске POST для создания события.Это то, что я сделал до сих пор:

  1. Зарегистрировал мое приложение (curl) здесь: https://apps.dev.microsoft.com/#/appList, установка разрешений для приложений на Calendars.ReadWrite (и, если быть точным,Также делегированы разрешения для Calendars.ReadWrite.)

  2. Используя идентификатор клиента / приложения и секретный пароль / пароль клиента из шага 1 выше, я могу получить токен доступа с помощью этой команды:

curl -X POST -k -d "grant_type = client_credentials & client_id = [ApplicationID] & client_secret = [пароль] & resource = https% 3A% 2F% 2Fgraph.microsoft.com% 2F" https://login.microsoftonline.com/[TenantID]/oauth2/token

Затем я пытаюсь создать событие, используя следующую команду, но получаю ошибку ErrorAccessDenied ниже:

curl.exe -k -o "C: \ Temp \ output.txt" -X POST-H "Тип контента: application / json" -H "Авторизация: Носитель [TOKEN]" -d @ "C: \ Temp \ eventDetails.json" https://graph.microsoft.com/v1.0/users/[UserPrincipalName]/calendars/[CalendarID]/events?$select=Id,lastModifiedDateTime

{"error": {"code ":" ErrorAccessDenied "," message ":" Доступ запрещен. Проверьте учетные данные и повторите попытку. "," innerError ": {" request-id ":" 38b802b9-08b9-4e0b-8f91-66ef56c459f8 "," date ": "2018-10-17T01: 08: 22"}}}

Помимо настройки разрешений приложения зарегистрированного приложения для Calendars.ReadWrite (шаг 1 выше) Я не знаю, как разрешить доступ.Любая помощь будет принята с благодарностью.

Спасибо.

1 Ответ

0 голосов
/ 17 октября 2018

Что мне очень помогло, так это проверка токена на веб-сайте проверки JWT, например JWT.ms .Этот веб-сайт объяснит вам все подробности о токене (он создан Microsoft, токен анализируется только с помощью javascript и не передается).На этом веб-сайте также имеется вкладка Претензии , где объясняются все претензии в токене.

Вы говорите о правах доступа к приложениям, которые требуют дополнительного шага.Он также должен быть одобрен администратором Azure AD для каталога, к которому вы хотите получить доступ.

Это можно встроить в поток входа, но самый простой способ - через портал Azure.

  1. Перейдите на https://portal.azure.com -> Azure Active Directory -> [Имя AD] - регистрации приложений
  2. Найдите приложение, к которому вы хотите предоставить доступ.
  3. Нажмите Настройки
  4. Нажмите Необходимые разрешения
  5. Нажмите Предоставить разрешения

Для этого необходимо создать учетную запись приложения в своем клиенте с запрошенными вами разрешениями.

После этих шагов вы должны создать новый токен и сравнить его с токеном, который вы получили в первый раз, и вам следуетбыть в состоянии увидеть изменения.

...