SAML
SAML используется, чтобы позволить поставщикам единого входа веб-приложений передавать и перемещать учетные данные между поставщиком удостоверений (IDP), который содержит учетные данные, и поставщиком услуг (SP), который является ресурсом, нуждающимся в этих учетных данных. SAML - это стандартный язык протокола авторизации и аутентификации, который в основном используется для выполнения федерации и управления идентификацией, а также для управления единой регистрацией. В SAML, Документы метаданных XML используются в качестве токена для представления личности клиента. Процесс аутентификации и авторизации SAML составляет:
- Пользователь запрашивает авторизацию в сервисе через браузер.
- Служба сообщает браузеру, что он аутентифицируется у определенного поставщика удостоверений (IdP), зарегистрированного в службе.
- Браузер передает запрос аутентификации зарегистрированным поставщикам удостоверений для входа в систему и аутентификации.
- После успешной проверки учетных данных / аутентификации IdP генерирует подтверждающий документ на основе XML, подтверждающий личность пользователя, и передает его в браузер.
- Браузер передает утверждение поставщику услуг.
- Поставщик услуг (SP) принимает утверждение для входа и разрешает пользователю доступ к услуге, войдя в систему.
А теперь давайте посмотрим на реальный пример. Предположим, пользователь нажимает кнопку Авторизоваться опция в сервисе обмена изображениями на сайте abc.ком. Для аутентификации пользователя abc выполняет зашифрованный запрос аутентификации SAML.ком. Запрос будет отправлен с сайта напрямую на сервер авторизации (IdP). Здесь поставщик услуг перенаправит пользователя к IdP для авторизации. IdP проверит полученный запрос аутентификации SAML, и, если запрос окажется действительным, он представит пользователю форму входа в систему для ввода учетных данных. После того, как пользователь введет учетные данные, IdP сгенерирует утверждение SAML или токен SAML, содержащий данные и личность пользователя, и отправит его поставщику услуг. Поставщик услуг (SP) проверяет утверждение SAML и извлекает данные и личность пользователя, назначает правильные разрешения пользователю и регистрирует пользователя в службе.
Разработчики веб-приложений могут использовать плагины SAML, чтобы гарантировать, что приложение и ресурс соответствуют необходимым методам единого входа. Это обеспечит лучший пользовательский вход в систему и более эффективные методы обеспечения безопасности, использующие общую стратегию идентификации. При наличии SAML только пользователи с правильным идентификатором и токеном утверждения могут получить доступ к ресурсу.
OAUTH
OAUTH используется, когда необходимо передать авторизацию из одной службы в другую, не передавая фактические учетные данные, такие как пароль и имя пользователя. С использованием OAUTH, пользователи могут входить в одну службу, получать доступ к ресурсам других служб и выполнять действия с этой службой. OAUTH - лучший метод, используемый для передачи авторизации с платформы единого входа на другую службу или платформу или между любыми двумя веб-приложениями. В OAUTH рабочий процесс выглядит следующим образом:
- Пользователь нажимает кнопку входа в службу совместного использования ресурсов.
- Сервер ресурсов показывает пользователю разрешение на авторизацию и перенаправляет пользователя на сервер авторизации.
- Пользователь запрашивает токен доступа у сервера авторизации, используя код разрешения авторизации.
- Если код действителен после входа на сервер авторизации, пользователь получит токен доступа, который можно использовать для получения или доступа к защищенному ресурсу с сервера ресурсов.
- При получении запроса на защищенный ресурс с токеном предоставления доступа, действительность токена доступа проверяется сервером ресурсов с помощью сервера авторизации.
- Если токен действителен и проходит все проверки, защищенный ресурс предоставляется сервером ресурсов.
Одним из распространенных способов использования OAUTH является предоставление веб-приложению доступа к платформе социальных сетей или другой онлайн-учетной записи. Учетные записи пользователей Google могут использоваться со многими потребительскими приложениями по разным причинам, таким как ведение блогов, онлайн-игры, вход в учетные записи социальных сетей и чтение статей на новостных сайтах. В этих случаях OAUTH работает в фоновом режиме, так что эти внешние объекты могут быть связаны и могут получить доступ к необходимым данным.
OAUTH является необходимостью, поскольку должен быть способ отправки информации об авторизации между различными приложениями без совместного использования или раскрытия учетных данных пользователя. OAUTH также используется в бизнесе. Например, предположим, что пользователю необходимо получить доступ к системе единого входа компании, указав свое имя пользователя и пароль. SSO дает ему доступ ко всем необходимым ресурсам, передавая токены авторизации OAUTH этим приложениям или ресурсам.
Заключение
OAUTH и SAML очень важны с точки зрения разработчика веб-приложений или системного администратора, в то время как оба они представляют собой очень разные инструменты с разными функциями. OAUTH - это протокол для авторизации доступа, а SAML - это дополнительное место, которое анализирует ввод и предоставляет авторизацию пользователю.