Pull to refresh

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

Level of difficultyEasy

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

Протокол

Цель

Тип данных

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

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-сервер, он может получать доступ к различным сервисам без повторного ввода учетных данных.

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

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.