Роли OAuth2:
- Владелец ресурса: Конечный пользователь.
- Клиент: приложение, обращающееся к ресурсу.
- Сервер авторизации: выдает токены.
- Сервер ресурсов: размещает защищенные ресурсы.
Общие потоки:
- Поток кода авторизации: безопасный, используется веб-приложениями.
- Поток учетных данных клиента: между серверами, без пользователя.
- Предоставление пароля: устарело, не используйте.
- Последовательность действий на устройствах: для устройств без браузеров.
- Обновить поток токенов: получите новый токен доступа без входа в систему.
Последовательность кода авторизации:
- Клиент перенаправляет пользователя на сервер аутентификации.
- Пользователь входит в систему и предоставляет разрешение.
- Сервер аутентификации перенаправляет с помощью кода.
- Клиент обменивает код на токен доступа.
Лучшие практики:
- Используйте HTTPS.
- Храните токены в надежном месте.
- Используйте PKCE (ключ подтверждения для обмена кодами) для SPA/мобильных устройств.
- Используйте области для ограничения доступа.
Итог
Ключевой вывод для интервью: опишите, как работает OAuth2 и потоки, поддерживаемые в серверных системах.