Как стать автором
Обновить

Протоколы авторизации

Уровень сложностиПростой

Существует несколько основных протоколов авторизации, которые используются для контроля доступа к ресурсам и сервисам. Они различаются по механике работы, безопасности и областям применения.

Протокол

Цель

Тип данных

Пример использования

OAuth 2.0

Авторизация, управление доступом

Токены (Access, Refresh)

Доступ к API, социальная авторизация

OpenID Connect

Аутентификация поверх OAuth

ID токен (JWT)

"Вход с Google", "Вход с Facebook"

SAML

Аутентификация и авторизация (SSO)

Утверждение (XML)

Корпоративные SSO системы

Kerberos

Аутентификация и шифрование

Билеты (Tickets)

Корпоративные сети (Active Directory)

LDAP

Аутентификация через директорию

Учетные данные

Корпоративные базы данных пользователей

RADIUS

Аутентификация и управление доступом

Учетные данные

Управление сетевыми ресурсами

CAS

Единый вход (SSO)

Токены SSO

Университетские или корпоративные системы

Рассмотрим каждый из них более детально:

1. OAuth 2.0

  • Тип: Протокол авторизации

  • Цель: Предоставить сторонним приложениям доступ к ресурсам пользователя без необходимости раскрывать его учетные данные.

  • Ключевая особенность: Использует токены доступа (access tokens) для предоставления ограниченного доступа к защищённым ресурсам.

  • Механизм: После успешной авторизации OAuth 2.0 сервер выдаёт токен доступа, который затем может быть использован для запросов к API от имени пользователя.

  • Пример использования: Авторизация через Google или Facebook (когда вы входите в стороннее приложение с помощью учетной записи Google/Facebook).

Основные этапы:

  1. Приложение направляет пользователя на сервер авторизации.

  2. Пользователь соглашается предоставить доступ к своим ресурсам.

  3. Сервер выдает токен доступа, который используется для доступа к API.

Потоки (grant types):

  • Authorization Code Grant (наиболее безопасный и популярный).

  • Implicit Grant (для клиентских приложений, но менее безопасный).

  • Client Credentials Grant (для серверных приложений, когда нужно авторизовать само приложение).

  • Password Grant (для получения токена доступа через передачу логина и пароля пользователя, используется редко).

2. OpenID Connect (OIDC)

  • Тип: Протокол аутентификации, построенный поверх OAuth 2.0

  • Цель: Авторизовать пользователя и получить его идентификационные данные.

  • Ключевая особенность: OpenID Connect расширяет OAuth 2.0 для поддержки аутентификации (проверки личности пользователя), предоставляя так называемый ID токен.

  • Механизм: Помимо токенов доступа, OpenID Connect предоставляет ID токен, который содержит информацию о пользователе, такую как его уникальный идентификатор, email и т.д.

  • Пример использования: "Вход с помощью Google" — это классический пример использования OIDC.

Основные этапы:

  1. OAuth 2.0 используется для получения токена доступа.

  2. OIDC добавляет получение ID токена, который содержит данные аутентификации пользователя.

3. SAML (Security Assertion Markup Language)

  • Тип: Протокол аутентификации и авторизации на основе XML.

  • Цель: Обеспечить единую точку входа (SSO) для доступа к нескольким приложениям.

  • Ключевая особенность: Использует формат XML для обмена данными между поставщиком идентификации (IdP) и поставщиком услуг (SP).

  • Механизм: Поставщик идентификации (например, корпоративный сервер) аутентифицирует пользователя, а затем выдает утверждение (assertion), которое передается на сайт или сервис для авторизации.

  • Пример использования: Корпоративные SSO системы, когда один логин дает доступ ко многим корпоративным приложениям (например, Microsoft Active Directory).

Основные этапы:

  1. Пользователь аутентифицируется на IdP (например, в корпоративной сети).

  2. IdP отправляет SAML утверждение поставщику услуг (например, веб-сайту).

  3. Поставщик услуг предоставляет доступ пользователю на основе полученного утверждения.

4. Kerberos

  • Тип: Протокол аутентификации с распределением секретных ключей.

  • Цель: Защищённая аутентификация и авторизация в сетевых системах.

  • Ключевая особенность: Использует симметричные ключи и требует наличия доверенного третьего лица — Центра распределения ключей (KDC).

  • Механизм: Клиент и сервер получают билеты от KDC, которые используются для подтверждения личности и авторизации доступа.

  • Пример использования: Используется в корпоративных сетях, например, в Microsoft Active Directory.

Основные этапы:

  1. Клиент запрашивает аутентификацию у KDC.

  2. KDC выдает билет для клиента, который клиент использует для доступа к серверу.

  3. Сервер проверяет билет и предоставляет доступ.

5. LDAP (Lightweight Directory Access Protocol)

  • Тип: Протокол доступа к каталогам данных.

  • Цель: Аутентификация и авторизация через централизованную базу данных, такую как директория пользователей.

  • Ключевая особенность: Использует древовидную структуру для хранения данных пользователей и прав доступа.

  • Механизм: Приложения и службы обращаются к LDAP-серверу для аутентификации пользователей и получения информации о них.

  • Пример использования: Корпоративные сети для централизованной аутентификации пользователей, управления доступом к сетевым ресурсам.

Основные этапы:

  1. Клиент запрашивает доступ к директории на сервере LDAP.

  2. Сервер проверяет учетные данные клиента и предоставляет соответствующие данные или разрешения.

6. RADIUS (Remote Authentication Dial-In User Service)

  • Тип: Протокол для централизованной аутентификации, авторизации и учёта.

  • Цель: Управление доступом к сетевым ресурсам через централизованный сервер.

  • Ключевая особенность: Часто используется для управления доступом в корпоративных сетях, обеспечивая аутентификацию пользователей и устройств.

  • Механизм: Клиенты отправляют запросы на доступ к серверу RADIUS, который проверяет учетные данные и отправляет ответ.

  • Пример использования: Сетевые компании используют RADIUS для управления доступом к Wi-Fi сетям, VPN и другим сетевым ресурсам.

7. CAS (Central Authentication Service)

  • Тип: Протокол единого входа (SSO).

  • Цель: Обеспечить единый вход для аутентификации пользователя через несколько приложений.

  • Ключевая особенность: После того как пользователь аутентифицируется один раз через CAS-сервер, он может получать доступ к различным сервисам без повторного ввода учетных данных.

  • Пример использования: Используется в университетах и крупных организациях для управления доступом к разным внутренним системам.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.