«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > SAML, OAuth и OpenID Connect

SAML, OAuth и OpenID Connect

Опубликовано 6 ноября 2024 г.
Просматривать:450

Этот пост изначально был опубликован в моем блоге. Ознакомьтесь с первоисточником, перейдя по ссылке ниже:

SAML vs. OAuth vs. OpenID Connect

SAML, OAuth и OpenID Connect

В этой статье будут рассмотрены SAML, OAuth и OpenID Connect, варианты их использования и то, как они взаимодействуют друг с другом.

SAML vs. OAuth vs. OpenID Connect rahulvijayvergiya.hashnode.dev

Аутентификация и авторизация имеют решающее значение для обеспечения безопасности приложений и данных. Три широко используемых протокола для управления этими процессами — это OAuth, SAML и OpenID.

Когда вы используете такие приложения, как Facebook, Google или LinkedIn, для входа на другие веб-сайты, вы сталкиваетесь с некоторыми важными протоколами: OAuth, SAML и OpenID Connect . Эти протоколы помогают обеспечить безопасность вашей информации, обеспечивая при этом доступ к различным сервисам.

1. SAML (язык разметки утверждений безопасности)

SAML — это открытый стандарт обмена данными аутентификации и авторизации между сторонами, в частности между поставщиком удостоверений (IdP) и поставщиком услуг (SP). Он в основном используется для сценариев единого входа (SSO), позволяя пользователям пройти аутентификацию один раз и получить доступ к нескольким приложениям.

Как работает SAML

Роли/актеры:

  • Пользователь: Лицо, имеющее доступ к приложениям.

  • Поставщик удостоверений (IdP): Служба, которая аутентифицирует пользователя и предоставляет подтверждения личности.

  • Поставщик услуг (SP): Приложение или служба, к которым пытается получить доступ пользователь.

Блок-схема запроса:

SAML vs. OAuth vs. OpenID Connect

Ключевые особенности SAML

  • Единый вход (SSO): Пользователи проходят аутентификацию один раз для доступа к нескольким сервисам.

  • На основе XML: Использует XML для сообщений, что делает его надежным.

  • Безопасные утверждения: Безопасно передает идентификаторы и атрибуты пользователя.


2. OAuth (открытая авторизация)

OAuth — это открытый стандарт делегирования доступа, обычно используемый для аутентификации и авторизации на основе токенов. Это позволяет сторонним приложениям получать доступ к пользовательским данным, не раскрывая их учетные данные. OAuth в основном используется для авторизации, позволяя пользователям предоставлять ограниченный доступ к своим ресурсам, размещенным на одном сайте, другому сайту.

Как работает OAuth

Роли/актеры:

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

  • Ресурсный сервер: Сервер, на котором размещаются данные пользователя (например, Google, Facebook).

  • Клиент: Стороннее приложение, запрашивающее доступ к данным пользователя.

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

Блок-схема запроса:

SAML vs. OAuth vs. OpenID Connect

Ключевые особенности OAuth

  • Делегированный доступ: Пользователи могут предоставлять доступ, не передавая учетные данные.

  • Токены доступа: Кратковременные токены, ограничивающие продолжительность доступа.

  • Области: Определите степень доступа, предоставленного клиенту.


3. OpenID подключение

OpenID Connect — это уровень аутентификации, построенный на основе OAuth 2.0. Он добавляет проверку личности и предоставляет клиентам возможность проверять личность пользователя на основе аутентификации, выполняемой сервером авторизации.

Как работает OpenID Connect

Роли/актеры:

  • Конечный пользователь: Пользователь, который хочет пройти аутентификацию.

  • Клиент: Приложение, запрашивающее аутентификацию пользователя.

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

Блок-схема запроса:

SAML vs. OAuth vs. OpenID Connect

Ключевые особенности OpenID Connect

  • ID токены: JWT, которые предоставляют информацию о пользователе и утверждения.

  • Бесшовная интеграция с OAuth: Сочетает аутентификацию и авторизацию.

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

OpenID Connect и OAuth

Кажется похоже, но они оба служат разным, но взаимодополняющим целям:

  • OAuth: используется для авторизации. Он позволяет приложениям получать доступ к ресурсам (например, вашему профилю или фотографиям) из другой службы (например, Facebook или Google) без необходимости использования вашего пароля. Используйте OAuth, если вы хотите предоставить ограниченный доступ к вашим данным (например, стороннему приложению, имеющему доступ к вашему календарю).

  • OpenID Connect (OIDC): созданный на основе OAuth, он используется для аутентификации. Он проверяет вашу личность и позволяет приложениям узнать, кто вы. Используйте OpenID Connect, когда вам нужно войти на веб-сайт или в приложение с помощью такой службы, как Google, подтвердив, кто вы.

Когда использовать:

  • Использовать OAuth:

    • Когда вы хотите, чтобы приложение имело доступ к данным или ресурсам от вашего имени (например, публикация приложения в Твиттере от вашего имени).
    • "Может ли это приложение получить доступ к моим данным?" (Авторизация)
  • Использовать OpenID Connect:

    • Когда вам необходимо подтвердить личность пользователя (например, при входе на веб-сайт с помощью учетной записи Google).
    • "Кто этот пользователь?" (Аутентификация)

Быстрое сравнение OAuth, SAML и OpenID Connect

Особенность OAuth SAML Подключение OpenID
Цель Авторизация Аутентификация Аутентификация и авторизация
Формат JSON, токен XML JSON
Примеры использования Доступ к API, мобильные приложения Веб-приложения, единый вход Веб- и мобильные приложения
Сложность Умеренный Высокий Умеренный
Пользовательский опыт Перенаправление на IdP Перенаправление на IdP Перенаправление на сервер авторизации

Заключение

Понимание OAuth, SAML и OpenID Connect необходимо для создания безопасных приложений, которые эффективно обрабатывают аутентификацию и авторизацию пользователей. Каждый протокол имеет свою цель: гарантировать вам доступ к тому, что вам нужно, сохраняя при этом ваши данные в безопасности.

Ссылки

  1. Простое объяснение OAuth 2.0

  2. Что такое SAML?

  3. Обзор OpenID Connect

  4. Понимание различий: OAuth, SAML и OpenID Connect

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/rahulvijayvergiya/saml-vs-oauth-vs-openid-connect-29m4?1. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3