В чем разница между OAuth, OpenID Connect и SAML?
Перевод документации OKTA
Многие затрудняются провести различие между OAuth 2.0, OpenID Connect и Security Assertion Markup Language (SAML), каждый из которых привносит структуру в процесс федерации. Эта статья вносит ясность в то, что означают эти стандарты, как они сопоставляются и для каких целей компаниям следует их использовать.
Различия между стандартами
Основное различие между этими тремя игроками заключается в том, что OAuth 2.0 - это фреймворк, управляющий авторизацией на защищенном ресурсе, например приложении или наборе файлов, а OpenID Connect и SAML - это отраслевые стандарты федеративной аутентификации. Это означает, что OAuth 2.0 используется в принципиально иных ситуациях, чем два других стандарта (примеры которых приведены ниже), и может применяться одновременно с OpenID Connect или SAML.
Используя OpenID Connect или SAML независимо друг от друга, предприятия могут обеспечить аутентификацию пользователей и развернуть систему единого входа. Несмотря на то, что оба они работают с логинами, у них разные достоинства и недостатки.
-
OpenID Connect (OIDC) построен на базе протокола OAuth 2.0 и использует дополнительный JSON Web Token (JWT), называемый ID-токеном, для стандартизации областей, которые OAuth 2.0 оставляет на выбор, таких как диапазоны и обнаружение конечных точек. Он ориентирован на аутентификацию пользователей и широко используется для обеспечения входа в систему на потребительских веб-сайтах и в мобильных приложениях.
-
SAML не зависит от OAuth, полагаясь на обмен сообщениями для аутентификации в формате XML SAML, в отличие от JWT. Чаще всего он используется для того, чтобы помочь корпоративным пользователям войти в несколько приложений с помощью одного логина.
OAuth 2.0 vs OpenID Connect vs SAML
Помните, что речь идет не о том, какую структуру следует использовать, а о том, когда следует развертывать каждую из них. Сильное решение для идентификации будет использовать эти три структуры для достижения различных целей, в зависимости от того, какие операции предприятию необходимо защитить. Ниже приведены примеры их использования:
-
OAuth 2.0: Если вы когда-либо регистрировались в новом приложении и соглашались с тем, чтобы оно автоматически получало новые контакты через Facebook или телефонные контакты, то, скорее всего, вы использовали OAuth 2.0. Этот стандарт обеспечивает безопасный делегированный доступ. Это означает, что приложение может выполнять действия или получать доступ к ресурсам сервера от имени пользователя без необходимости сообщать ему свои учетные данные. Для этого поставщик идентификационных данных (IdP) может выдавать токены сторонним приложениям с разрешения пользователя.
-
OpenID Connect: Если вы использовали свой Google для входа в такие приложения, как YouTube, или Facebook для входа в корзину интернет-магазина, то вы знакомы с этим вариантом аутентификации. OpenID Connect - это открытый стандарт, который организации используют для аутентификации пользователей. IdP используют его для того, чтобы пользователи могли войти в систему IdP, а затем получить доступ к другим веб-сайтам и приложениям без необходимости входить в систему или передавать свою регистрационную информацию.
-
SAML: Скорее всего, вы сталкивались с аутентификацией SAML в рабочей среде. Например, она позволяет войти в корпоративную интрасеть или IdP, а затем получить доступ к многочисленным дополнительным сервисам, таким как Salesforce, Box или Workday, без необходимости повторного ввода учетных данных. SAML - это основанный на XML стандарт обмена данными аутентификации и авторизации между IdP и поставщиками услуг для проверки личности пользователя и его полномочий, а также предоставления или отказа в доступе к услугам.