Этот пост изначально был опубликован в моем блоге. Ознакомьтесь с первоисточником, перейдя по ссылке ниже:
Аутентификация и авторизация имеют решающее значение для обеспечения безопасности приложений и данных. Три широко используемых протокола для управления этими процессами — это OAuth, SAML и OpenID.
Когда вы используете такие приложения, как Facebook, Google или LinkedIn, для входа на другие веб-сайты, вы сталкиваетесь с некоторыми важными протоколами: OAuth, SAML и OpenID Connect . Эти протоколы помогают обеспечить безопасность вашей информации, обеспечивая при этом доступ к различным сервисам.
SAML — это открытый стандарт обмена данными аутентификации и авторизации между сторонами, в частности между поставщиком удостоверений (IdP) и поставщиком услуг (SP). Он в основном используется для сценариев единого входа (SSO), позволяя пользователям пройти аутентификацию один раз и получить доступ к нескольким приложениям.
Роли/актеры:
Пользователь: Лицо, имеющее доступ к приложениям.
Поставщик удостоверений (IdP): Служба, которая аутентифицирует пользователя и предоставляет подтверждения личности.
Поставщик услуг (SP): Приложение или служба, к которым пытается получить доступ пользователь.
Блок-схема запроса:
Единый вход (SSO): Пользователи проходят аутентификацию один раз для доступа к нескольким сервисам.
На основе XML: Использует XML для сообщений, что делает его надежным.
Безопасные утверждения: Безопасно передает идентификаторы и атрибуты пользователя.
OAuth — это открытый стандарт делегирования доступа, обычно используемый для аутентификации и авторизации на основе токенов. Это позволяет сторонним приложениям получать доступ к пользовательским данным, не раскрывая их учетные данные. OAuth в основном используется для авторизации, позволяя пользователям предоставлять ограниченный доступ к своим ресурсам, размещенным на одном сайте, другому сайту.
Роли/актеры:
Владелец ресурса: Пользователь, который владеет данными и предоставляет к ним доступ.
Ресурсный сервер: Сервер, на котором размещаются данные пользователя (например, Google, Facebook).
Клиент: Стороннее приложение, запрашивающее доступ к данным пользователя.
Сервер авторизации: Сервер, ответственный за выдачу токенов доступа клиенту после аутентификации владельца ресурса.
Блок-схема запроса:
Делегированный доступ: Пользователи могут предоставлять доступ, не передавая учетные данные.
Токены доступа: Кратковременные токены, ограничивающие продолжительность доступа.
Области: Определите степень доступа, предоставленного клиенту.
OpenID Connect — это уровень аутентификации, построенный на основе OAuth 2.0. Он добавляет проверку личности и предоставляет клиентам возможность проверять личность пользователя на основе аутентификации, выполняемой сервером авторизации.
Роли/актеры:
Конечный пользователь: Пользователь, который хочет пройти аутентификацию.
Клиент: Приложение, запрашивающее аутентификацию пользователя.
Сервер авторизации: Сервер, который аутентифицирует пользователя и выдает токены.
Блок-схема запроса:
ID токены: JWT, которые предоставляют информацию о пользователе и утверждения.
Бесшовная интеграция с OAuth: Сочетает аутентификацию и авторизацию.
Конечная точка информации о пользователе: Позволяет получать дополнительную информацию о пользователе.
Кажется похоже, но они оба служат разным, но взаимодополняющим целям:
OAuth: используется для авторизации. Он позволяет приложениям получать доступ к ресурсам (например, вашему профилю или фотографиям) из другой службы (например, Facebook или Google) без необходимости использования вашего пароля. Используйте OAuth, если вы хотите предоставить ограниченный доступ к вашим данным (например, стороннему приложению, имеющему доступ к вашему календарю).
OpenID Connect (OIDC): созданный на основе OAuth, он используется для аутентификации. Он проверяет вашу личность и позволяет приложениям узнать, кто вы. Используйте OpenID Connect, когда вам нужно войти на веб-сайт или в приложение с помощью такой службы, как Google, подтвердив, кто вы.
Использовать OAuth:
Использовать OpenID Connect:
Особенность | OAuth | SAML | Подключение OpenID |
---|---|---|---|
Цель | Авторизация | Аутентификация | Аутентификация и авторизация |
Формат | JSON, токен | XML | JSON |
Примеры использования | Доступ к API, мобильные приложения | Веб-приложения, единый вход | Веб- и мобильные приложения |
Сложность | Умеренный | Высокий | Умеренный |
Пользовательский опыт | Перенаправление на IdP | Перенаправление на IdP | Перенаправление на сервер авторизации |
Понимание OAuth, SAML и OpenID Connect необходимо для создания безопасных приложений, которые эффективно обрабатывают аутентификацию и авторизацию пользователей. Каждый протокол имеет свою цель: гарантировать вам доступ к тому, что вам нужно, сохраняя при этом ваши данные в безопасности.
Простое объяснение OAuth 2.0
Что такое SAML?
Обзор OpenID Connect
Понимание различий: OAuth, SAML и OpenID Connect
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3