Что на самом деле представляет собой OAuth-авторизация
Когда вы нажимаете «Authorize» у стороннего приложения, GitHub фиксирует грант: теперь приложение может действовать от вашего имени в пределах одобренных вами разрешений. Этот грант — не сессия браузера, не SSH-ключ и не установленное GitHub App с собственными настройками установки. Каждый из них отзывается или удаляется в другом месте, поэтому первый шаг — определить, какой именно тип доступа вы видите.
| Что вы видите | Что это | Где управляется |
|---|---|---|
| Стороннее приложение со списком одобренных разрешений | OAuth-авторизация | Settings → Applications → Authorized OAuth Apps |
| Пара ключей, добавленная для Git по SSH | SSH-ключ | Settings → SSH and GPG keys |
| Вы вошли в систему в этом браузере | Сессия входа | Выход из системы или страница сессий |
| Приложение, установленное на репозиторий или организацию | Установка GitHub App | Настройки установки приложения или организации |
Если запись, которую вы видите, не является OAuth-авторизацией, отзыв из списка OAuth её не затронет.
Почему стоит проверить перед отзывом
Старая авторизация может всё ещё выполнять что-то, от чего вы зависите: инструмент развёртывания, плагин редактора или CI-интеграцию. Отзыв обрывает доступ этого приложения через грант — в этом и смысл, — но он также может сломать рабочий процесс, который всё ещё от него зависит. Перед действием проверьте название приложения, перечисленные разрешения и когда вы последний раз им пользовались.
GitHub рекомендует проверять авторизованные приложения, в том числе приложения с доступом к приватным репозиториям. Источник
Если вы не узнаёте приложение или его доступ шире, чем задача, которую оно выполняет, — это повод отозвать. Если вы его узнаёте и всё ещё пользуетесь им, подумайте, соответствуют ли текущие разрешения задаче, прежде чем решать.
Чек-лист до и после
Используйте его как короткую запись, чтобы понимать, что изменилось, и при необходимости отменить ошибку.
Перед отзывом
- Запишите название приложения и показанные для него разрешения, чтобы потом узнать ту же запись.
- Проверьте, не зависит ли что-то из того, чем вы сейчас пользуетесь, от этого приложения: сборка, развёртывание, вход в редактор, запланированная задача.
- Убедитесь, что вы смотрите на Authorized OAuth Apps, а не на SSH-ключи, сессии или установленные приложения.
- Решите, хотите ли вы отозвать одну конкретную авторизацию или все.
После отзыва
- Перезагрузите страницу Authorized OAuth Apps и убедитесь, что запись исчезла.
- Запустите рабочий процесс, который использовал приложение, один раз и отметьте, просит ли он теперь повторной авторизации. Этот запрос — ожидаемый признак того, что грант удалён.
- Если рабочий процесс сломался, а он вам всё ещё нужен, авторизуйте заново осознанно и проверьте запрашиваемые разрешения.
- Не убирайте способ восстановления аккаунта, пока не убедитесь, что от отозванного доступа больше ничего не зависело.
Как отозвать авторизацию
Откройте настройки аккаунта Settings, затем Applications в разделе Integrations, затем Authorized OAuth Apps, чтобы просмотреть доступ. Источник
В списке откройте меню для конкретного приложения, которое хотите удалить.
Неизвестную или устаревшую авторизацию можно отозвать из меню приложения; на странице также есть кнопка Revoke all. Источник
Отзывайте одну запись, если хотите удалить только одно приложение. Опция Revoke all предназначена для случая, когда вы просмотрели список и хотите очистить все авторизации; она затронет каждое приложение на этой странице, а не только то, которое вы смотрели.
Границы, о которых стоит помнить
- Отзыв — это не удаление. Удаление гранта прекращает будущий доступ через него. Оно не удаляет данные, которые приложение уже сохранило или скопировало за пределами GitHub, и не гарантирует стирание.
- Отзыв — это не выход из системы. Ваша сессия браузера на GitHub отдельна; отзыв приложения не выводит вас из системы, а выход из системы не отзывает авторизации приложений.
- SSH-ключ — это не OAuth-приложение. Если вас беспокоит доступ по ключу, удаление происходит в настройках SSH and GPG keys, а не в Authorized OAuth Apps.
- Установленное GitHub App — это другая запись. Доступ на уровне установки управляется там, где установлено приложение, поэтому проверьте там, если приложение не отображается в списке OAuth.
- Совпадение публичного имени пользователя — не доказательство. Если вы проверяете, встречается ли ник где-то ещё, совпадение в публичном профиле — это зацепка, а не доказательство принадлежности. TraceSeek может искать известные публичные имена пользователей по 3 000+ платформам, но не может просматривать или отзывать настройки GitHub за вас.
Когда считать авторизацию подозрительной
Вам не нужна драматическая история, чтобы действовать. Практические признаки: вы не узнаёте приложение, разрешения шире, чем задача, которую оно выполняет, или вы не помните, что авторизовали его. В таких случаях отзыв конкретной записи — разумный шаг, после которого стоит проверить, не перестало ли работать что-то, от чего вы зависите. Если рабочий процесс действительно сломался, авторизуйте заново только после того, как убедитесь, что это то самое приложение и разрешения соответствуют его потребностям.