Я работаю над интеграцией REST API календаря Outlook с моей личной системой.
Используя поток разрешения кода авторизации, я могу заставить пользователя войти в приложение, которое я зарегистрировал в https://apps.dev.microsoft.com.. Как только пользователь успешно вошел в систему, я получаю код на своем URL перенаправления. Используя код, я извлекаю его токен на предъявителя (основной поток кода oAuth).
Теперь, путаница с их документацией. У них есть 3 типа API, o365, outlook.office и graph. Я использую их API графа для ресурса календаря.
Я использую https://graph.microsoft.com/v1.0/me/calendarview для извлечения событий из основного календаря, https://graph.microsoft.com/v1.0/me/events для создания событий в основном календаре и https://graph.microsoft.com/beta/$batch для пакетных запросов.
Есть несколько сценариев, которые я хочу осветить здесь. Когда пользователь меняет свой пароль Outlook, мне необходимо повторно войти в приложение, чтобы я мог использовать действительный токен на предъявителя. Из outlook документации похоже, что токен обновления становится недействительным, как только пользователь меняет пароль (поиск токенов обновления становится недействительным ); Это означает, что в худшем случае я могу использовать токен на один час (по умолчанию) для аутентификации API.
Это нормально для потока oAuth? Я всегда думал, что токен на предъявителя станет недействительным, когда пользователь изменит пароль.
Поскольку я работаю в организации, я хочу, чтобы мое приложение было доступно только пользователям AD в моей организации. В манифесте приложения есть поле с именем availableToOtherTenants, которое по умолчанию имеет значение true. Я изменил поле на false, чтобы к нему могли получить доступ только пользователи, принадлежащие организации AD. Но похоже, что я могу войти в приложение и с моей личной учетной записью outlook; несмотря на это изменение.
Что я здесь не так делаю? Я делаю это правильно, регистрируясь
заявление в https://apps.dev.microsoft.com?