OAuth2, Graph API и пароли приложений: о чём говорят объявления Outlook
Microsoft прекратил поддержку обычного входа по паролю для личных учетных записей Outlook в сентябре 2024 года, поэтому теперь в каждом объявлении указаны теги OAuth2. Вот что дает каждый тег, а также одно упущение, которое незаметно дает о себе знать спустя недели.
Avery BennettКаждое объявление с Outlook и Hotmail несёт пометку вроде OAuth2 [Graph] или OAuth2 [IMAP/POP3], а в комплекте поставки вместо пароля идут поля refresh_token и client_id. Это не выдумка продавца. Microsoft изменила способ доступа к таким аккаунтам.
Небольшое примечание перед подробностями: условия большинства платформ запрещают передачу аккаунтов, и ничто здесь не должно читаться как одобрение Microsoft торговли аккаунтами. Этот текст объясняет, что означают технические пометки, — это отдельный вопрос от того, разрешена ли та или иная сделка.
Что изменилось и когда
16 сентября 2024 года базовая аутентификация завершилась для личных аккаунтов Outlook.com, Hotmail и Live.com. Базовая аутентификация — это схема, при которой почтовый клиент отправляет логин и пароль напрямую на почтовый сервер. После этой даты сторонние клиенты и скрипты, обращающиеся к этим ящикам, обязаны использовать OAuth2, который Microsoft называет современной аутентификацией.
Именно это изменение объясняет, как выглядит витрина. Объявление, предлагающее просто логин и пароль для личного ящика Outlook, описывает то, что больше не подключается, так что пометки — следствие, а не маркетинговый ход.
OAuth2 против пароля приложения — вот сравнение, которое люди на самом деле делают
В англоязычных поисковых подсказках OAuth2 сравнивают с паролем приложения гораздо чаще, чем с обычным паролем, и это правильный вопрос. Оба варианта — ответ на «мой пароль больше не работает», и ведут они себя совершенно по-разному.
| Пароль приложения | OAuth2 | |
|---|---|---|
| Что у вас на руках | Одна сгенерированная строка | Refresh-токен плюс учётные данные клиента, под которые он выдан |
| Настройка | Сгенерировать в настройках аккаунта | Зарегистрировать приложение, пройти согласие |
| Права | Всё, что позволяет протокол, без разделения | Ограниченные, так что возможен доступ только на чтение |
| Обновление | Действует, пока не отозван | Обмен refresh-токена на новые access-токены |
| Если не работает | Сгенерировать новый | Полностью зависит от того, что вам выдали |
Последняя строка — та, что важна при покупке, и именно ради неё существует следующий раздел.
Неполнота, которая молча выходит из строя
Refresh-токен не самодостаточен. Для обмена на новый access-токен нужен client id и часто client secret, под которые он был выдан. Получите только refresh-токен — и у вас на руках то, что работает ровно до истечения текущего access-токена, а затем навсегда останавливается без возможности обновления.
При доставке всё выглядит правильно — в этом и ловушка. Подключение проходит, почта приходит, покупка кажется удачной. Сбой наступает через дни или недели, когда гарантийный срок давно закрыт.
Поэтому проверка при получении — не «подключается ли». Она в том, «могу ли я выполнить refresh». Принудительно выполните обмен токена с теми учётными данными, что вам выдали, и убедитесь, что получили новый access-токен. Это другое действие, нежели чтение почты, и единственное, которое показывает, что вы на самом деле купили.
Как читать пометки
- OAuth2 [IMAP/POP3]: токен авторизует почтовые протоколы. Обычные почтовые клиенты и почтовые библиотеки работают, если поддерживают OAuth2, а не только пароли. Старые клиенты часто не поддерживают — это реальное ограничение.
- OAuth2 [Graph]: токен авторизует Microsoft Graph — программный интерфейс для почты, календаря и контактов. Подходит для того, что вы разрабатываете; не работает в почтовом клиенте, который говорит на IMAP, а не на Graph.
- Обе: область действия токена покрывает оба пути. Гибче, но области всё равно стоит прочитать, а не предполагать.
Выбор между ними — то же решение, что и в любом другом месте этого каталога: покупайте то, на чём говорит ваш инструмент. Грант Graph не поможет почтовому клиенту, а грант IMAP не поможет софту, написанному под Graph.
Та же схема на стороне Google
Об этом стоит упомянуть, чтобы это не читалось как особенность Microsoft. Google сделал аналогичный шаг: пароли аккаунтов перестали работать в почтовых клиентах, пароли приложений стали лёгким путём, а Gmail API с OAuth2 — программным. Другие названия, та же форма.
Общая тенденция такова: пароли повсеместно выводятся из употребления как машинные учётные данные. Passkeys, которые тоже встречаются в поисковых подсказках здесь, — то же движение, применённое ко входу человека. Если вы выбираете, на что положиться, эту тенденцию стоит взвесить.
Перед покупкой
- Убедитесь, что ваш инструмент вообще поддерживает OAuth2. Многие старые почтовые клиенты не поддерживают, и никакое объявление это не исправит.
- Убедитесь, что в поставке есть client id и secret вместе с refresh-токеном, а не только токен.
- По прибытии выполните refresh, а не чтение. Это единственная проверка, которая отличает полный грант от того, что истечёт в ничто.
Объявления Outlook и Hotmail с фильтром по пометкам OAuth2 — на витрине Outlook и витрине Hotmail.
