Описание
OAuth (Open Authorization)
OAuth — это открытый протокол авторизации, позволяющий приложениям получать ограниченный доступ к ресурсам пользователя без передачи пароля, используя токены.
OAuth разработан в 2006-2007 годах для замены небезопасных методов аутентификации в веб-приложениях, чтобы упростить интеграцию сервисов вроде соцсетей и избежать хранения credentials.
Преимущества OAuth
-
Повышает безопасность, не раскрывая credentials, и стандартизирует доступ.
-
Поддерживает scopes для гранулярного контроля прав.
Недостатки OAuth
-
Сложен в реализации и уязвим к атакам, если не настроен правильно (e.g., token hijacking).
-
Требует HTTPS для защиты токенов.
Технические термины
-
Access Token: Короткоживущий токен для доступа к API.
-
Refresh Token: Долгоживущий токен для обновления access token.
-
Authorization Code Flow: Безопасный поток для веб-приложений.
-
Client Credentials Flow: Для machine-to-machine авторизации.
-
PKCE (Proof Key for Code Exchange): Защита от interception в mobile apps.
Уровень OSI и связанные технологии
OAuth работает на уровне 7 (Прикладной) модели OSI, интегрируясь с HTTP/HTTPS. Не затрагивает нижние уровни напрямую. Связанные технологии: OpenID Connect (OIDC) для аутентификации поверх OAuth; JWT (JSON Web Tokens) для формата токенов; SAML для enterprise; интегрируется с API как Google OAuth или Facebook Login.
В IT OAuth используется для входа через Google в мобильные apps, например, в Spotify для интеграции с Facebook, или в API GitHub для авторизованного доступа к репозиториям без полного логина, обеспечивая SSO (Single Sign-On).