Каким образом OpenID Connect является протоколом аутентификации, а OAuth2 — нет, когда оба возвращают информацию о пользователе (адрес электронной почты и т.д.)?

#oauth-2.0 #openid-connect

#oauth-2.0 #OpenID-connect

Вопрос:

Например, facebook, OAuth2 возвращает информацию о пользователе, такую как электронная почта, имя и т.д. Так почему говорят, что OAuth2 — это просто протокол авторизации, а OpenIdConnect — это уровень идентификации поверх OAuth2. Разве мы не можем использовать этот идентификатор электронной почты (возвращаемый из OAuth2) для идентификации пользователей и создания их в базе данных нашего приложения? Также какую дополнительную информацию OpenIdConnect отправляет приложениям? Когда использовать OAuth2 и когда использовать OpenIdConnect?

Ответ №1:

OpenID Connect выводит в таблицу стандартизированный токен идентификации, чтобы клиент мог стандартизированным способом получить подробную информацию о пользователе, а затем с помощью этого id-токена создать сеанс локального входа.

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

Этот вопрос может дать вам более подробную информацию.

Ответ №2:

Границы часто размыты, как вы говорите, и обычно мы хотим практичности, а не жаргона безопасности, так что, надеюсь, это поможет.

OAUTH И ДЕЛЕГИРОВАНИЕ

OAuth позволяет пользователю дать согласие на доступ третьей стороны к ресурсам пользователя, после чего третьей стороне предоставляется токен доступа.

OAUTH И КОМПАНИИ-РАЗРАБОТЧИКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

OAuth OIDC используется в подавляющем большинстве программных сценариев, поскольку он удобен для Интернета, мобильных устройств и API. В корпоративном программном обеспечении обычно не задействована третья сторона, поэтому вам не нужно использовать OAuth для делегирования.

OAUTH И АУТЕНТИФИКАЦИЯ

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

OPEN ID CONNECT

Это обеспечивает подтверждение аутентификации в пользовательском интерфейсе в виде проверяемого токена id. Токен id может включать дополнительные проверки безопасности, как описано здесь.

OIDC также предоставляет некоторую желанную стандартизацию с точки зрения конечных точек и форматов сообщений / токенов, чтобы упростить код вашего приложения.

ЧТО ДЕЛАТЬ?

Всегда стремитесь использовать OIDC для обеспечения безопасности вашего пользовательского интерфейса — в наши дни это требуется большинству провайдеров. Если некоторые поставщики входа / удостоверения личности это не поддерживают, вы можете заставить свой пользовательский интерфейс делать это, что в любом случае является предпочтительным шаблоном:

  • Перенаправление на ваш сервер авторизации с использованием OIDC
  • Подключитесь к поставщику удостоверений, используя все, что они поддерживают