Basic Auth: логин и пароль передаются в заголовке в формате base64 Bearer Token: токен доступа указывается в заголовке Authorization OAuth 2.0: делегирование доступа с использованием access- и refresh-токенов API Key: уникальный ключ, который часто передаётся в параметрах запроса JWT (JSON Web Token): самодостаточный токен, содержащий сведения о пользователе Digest Auth: усовершенствованный вариант Basic Auth с хэшированием пароля OpenID Connect: протокол идентификации поверх OAuth 2.0 Конкретный вариант выбирают с учётом требований к безопасности и удобства интеграции
Какие виды авторизации API вы можете назвать на собеседовании?
Basic Auth: логин и пароль передаются в заголовке в формате base64 Bearer Token: токен доступа указывается в заголовке Authorization OAuth 2.0: делегирование доступа с использованием access- и refresh-токенов API Key:…
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Виды авторизации для API
- Basic Auth: логин и пароль передаются в заголовке в формате base64
- Bearer Token: токен доступа указывается в заголовке Authorization
- OAuth 2.0: делегирование доступа с использованием access- и refresh-токенов
- API Key: уникальный ключ, который часто передаётся в параметрах запроса
- JWT (JSON Web Token): самодостаточный токен, содержащий сведения о пользователе
- Digest Auth: усовершенствованный вариант Basic Auth с хэшированием пароля
- OpenID Connect: протокол идентификации поверх OAuth 2.0
- Конкретный вариант выбирают с учётом требований к безопасности и удобства интеграции
Развёрнутый ответ
Краткий ответ
Для авторизации API применяют несколько основных подходов, различающихся возможностями и типичными сценариями использования. К наиболее распространённым относятся Basic Auth, Token-based Auth (например, JWT), OAuth 2.0 и API ключи. Авторизация определяет, есть ли у пользователя или системы права на доступ к ресурсу после прохождения аутентификации.
Основные особенности
- При использовании Basic Auth логин и пароль помещаются в HTTP-заголовки. Такой вариант подходит для простых сценариев с невысокими требованиями к безопасности, однако обязательно требует HTTPS, поскольку сами данные не шифруются.
- При Token-based авторизации (JWT) сервер после успешной аутентификации формирует JSON Web Token, а клиент передаёт его в последующих запросах. Этот подход удобен для stateless-архитектуры RESTful API, хорошо масштабируется и позволяет использовать embeded claims и expiry.
- OAuth 2.0 предназначен для делегирования доступа и особенно востребован при работе со сторонними приложениями. Он позволяет выдавать временные токены с ограниченным набором прав, не раскрывая приложению пароль пользователя.
- API Keys представляют собой простой способ идентифицировать клиента с помощью уникального ключа. Его обычно передают в заголовке либо в query-параметре. Такой механизм подходит сервисам с умеренными требованиями к безопасности и несложными ограничениями.
Пример применения на практике
В современных системах для управления доступом к микросервисам нередко объединяют OAuth 2.0 с JWT. Во внутреннем API можно применять API ключи, дополняя их ограничением частоты запросов через Redis. В React-приложениях и мобильных приложениях для аутентификации часто используют Token-based авторизацию с refresh tokens, чтобы поддерживать длительную сессию.