🔑 Вроде мы закончили с вами говорить про безопасность, но хочу ещё закинуть вам полезную шпаргалку-инфографику с видами аутентификации в REST API.
Это опять пост от Alex Xu в LinkedIn, который я перевёл с английского:
Аутентификация в REST API выступает важным гейтом, убеждающимся, что только авторизованные пользователи и приложения получают доступ к ресурсам API (кстати, тут даже у нашего Alex Xu мешаются понятия авторизации и аутентификации - см. различия между ними в моём недавнем видео по SSO).
Вот несколько популярных методов аутентификации для REST API:
1️⃣ Basic Authentication (базовая аутентификация):
Подразумевает отправку логина и пароля в каждом запросе. Может быть не очень безопасным способом без шифрования.
Когда использовать:
Подходит для простых приложений, где безопасность и шифрование не являются настолько критичными, или в случаях использования через защищённое соединение.
2️⃣ Токен:
Использует сгенерированные токены, такие как JSON Web Tokens (JWT), которыми обмениваются клиент и сервер, предоставляя расширенную безопасность без отправки логина/пароля в каждом запросе.
Когда использовать:
Идеален для большинства защищённых и масштабируемых приложений, особенно, если критично не отправлять с каждым запросом учётные данные (например, интеграции в банковских системах).
4️⃣ OAuth:
Предоставляет третьим лицам (приложениям) ограниченный доступ к ресурсам пользователя без раскрытия этому приложению учётных данных пользователя, т. к. работает через выпуск токена доступа при аутентификации (часто это как раз JWT). Часто работает через протокол OpenID Connect (OIDC).
Когда использовать:
Идеален для сценариев, когда нужно предоставить одной системе доступ к ресурсам пользователя из другой системы с согласия пользователя (например, приложение календаря, которое использует события из календаря Google пользователя).
4️⃣ API-ключ:
Назначает пользователю или приложению уникальный ключ, который отправляется в заголовке или в параметрах запросов. Способ достаточно простой, но менее безопасный, чем OAuth и другие методы, основанные на токенах.
Когда использовать:
Удобен для простого контроля доступа в менее чувствительных средах или для предоставления доступа к функционалу без необходимости разделять полномочия для разных пользователей.
Это опять пост от Alex Xu в LinkedIn, который я перевёл с английского:
Аутентификация в REST API выступает важным гейтом, убеждающимся, что только авторизованные пользователи и приложения получают доступ к ресурсам API (кстати, тут даже у нашего Alex Xu мешаются понятия авторизации и аутентификации - см. различия между ними в моём недавнем видео по SSO).
Вот несколько популярных методов аутентификации для REST API:
1️⃣ Basic Authentication (базовая аутентификация):
Подразумевает отправку логина и пароля в каждом запросе. Может быть не очень безопасным способом без шифрования.
Когда использовать:
Подходит для простых приложений, где безопасность и шифрование не являются настолько критичными, или в случаях использования через защищённое соединение.
2️⃣ Токен:
Использует сгенерированные токены, такие как JSON Web Tokens (JWT), которыми обмениваются клиент и сервер, предоставляя расширенную безопасность без отправки логина/пароля в каждом запросе.
Когда использовать:
Идеален для большинства защищённых и масштабируемых приложений, особенно, если критично не отправлять с каждым запросом учётные данные (например, интеграции в банковских системах).
4️⃣ OAuth:
Предоставляет третьим лицам (приложениям) ограниченный доступ к ресурсам пользователя без раскрытия этому приложению учётных данных пользователя, т. к. работает через выпуск токена доступа при аутентификации (часто это как раз JWT). Часто работает через протокол OpenID Connect (OIDC).
Когда использовать:
Идеален для сценариев, когда нужно предоставить одной системе доступ к ресурсам пользователя из другой системы с согласия пользователя (например, приложение календаря, которое использует события из календаря Google пользователя).
4️⃣ API-ключ:
Назначает пользователю или приложению уникальный ключ, который отправляется в заголовке или в параметрах запросов. Способ достаточно простой, но менее безопасный, чем OAuth и другие методы, основанные на токенах.
Когда использовать:
Удобен для простого контроля доступа в менее чувствительных средах или для предоставления доступа к функционалу без необходимости разделять полномочия для разных пользователей.