В чем разница между WS-Trust, OpenID и SAML Passive?

Кажется, что Microsoft ADFSv2 поддерживает WS-Trust и SAML Passive, но стек WIF, на котором он построен, не поддерживает SAML.

В чем разница между WS-Trust и SAML-P? Имеют ли они одинаковые уязвимости в безопасности, если да, то каковы они?

Примечание: здесь есть похожий, но другой вопрос:

SAML против OAuth

3 ответа

Я полагаю, вы имеете в виду [недавно выпущенный] ADFS v2?

Да, ADFS v2 поддерживает WS-Trust (и WS-Federation) и SAML2 пассивный, а WIF поддерживает только WS-Trust (и WS-Federation), но не SAML2 (ни пассивный, ни активный).

WS-Federation использует WS-Trust для выполнения [основанной на браузере] пассивной федерации и во многих отношениях аналогична пассивной SAML2, а во многих отношениях нет. Существенным отличием WS-Federation от пассивного SAML2 является то, что WS-Federation v1.1 (новая версия, поддерживаемая ADFS v2) поддерживает автоматическое обнаружение метаданных. Вам нужно только предоставить конечную точку метаданных (URL) в WS-Federation, тогда как в SAML вы должны обмениваться документами метаданных некоторым выбранным методом (флешка, почта и т. Д.).

Я не знаю ни одной реальной уязвимости безопасности ни в одном протоколе, но подход к обмену метаданными может обсуждаться вечно. Подход WS-Federation значительно упрощает многие вещи, такие как откат сертификатов, автоматическое обновление, автоматическое предоставление новых членов в федерацию "бесплатно" и т. Д. Однако процедура "ручного" обмена в SAML2 может по крайней мере в теории быть более безопасным.

Относительно того, почему поддержка SAML не включена в WIF, я могу только предполагать. Достойным предположением может быть то, что кто-то хочет, чтобы сайты, использующие WIF, объединялись с ADFS, а не напрямую с каким-либо другим [третьим лицом] IdP:-)

Обновленный и исправленный ответ за 2015 год

  • OpenID-Connect (или OIDC) - новый протокол единого входа
    • OpenID версии 3, обратно не совместим,
    • Построен по технологии OAuth
    • Использует JWT (для токенов, а также других веб-технологий и определений JSON)
  • WS-Federation (или WS-Fed) - старый протокол единого входа
    • Использует SAML для своих токенов

Определения:

  • JWT - определение JSON для токенов безопасности (в OAuth и OIDC)
    • Произносится как слово "йот".
  • SAML - XML-схема и определения токенов безопасности (в WS-Fed)

OAuth

  • OAuth - это набор спецификаций для делегирования авторизации от запрашивающего приложения (клиента) сервису авторизации.
    • Разрешенное использование дано в "объеме"
    • Область действия состоит из набора "требований" безопасности и необходимых "ресурсов"
    • Авторизованные области возвращаются в маркере ресурсов JWT
    • Жетоны могут быть возвращены несколькими способами. Наиболее распространенными являются:
      • Токен возвращается напрямую: в неявном потоке - используется для приложений на основе браузера (javascript)
      • Токен возвращается в два этапа после получения "кода доступа" - используется для вызовов на основе сервера (REST или веб-API).
    • В некоторых случаях пользователю предоставляется пользовательский интерфейс, чтобы согласиться авторизовать все или некоторые из запрошенных "ресурсов".
    • Токены могут содержать фактическую информацию или быть ссылкой на сервер, содержащий информацию.

OIDC (Open ID Connect)

  • Запускается при запросе области действия OAth с заявкой типа OpenID-Connect
  • Поставщик OP - OIDC - это сервер OAuth, соответствующий протоколу OIDC.
  • Идентификационный токен возвращается OP - провайдером OIDC.
    • Идентификационные токены содержат информацию (претензии) о пользователе
    • В определенных случаях пользователю будет показан пользовательский интерфейс для авторизации части или всей запрашиваемой информации и ресурсов.

См. Статью OAuth и OIDC Трэвиса Спенсера - ее легко прочитать.

Если в этом нет исправлений, отметьте это как ответ. Благодарю.

От Академии ССО, очень простая разница,

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

OpenID – single sign-on for consumers
SAML – single sign-on for enterprise users
OAuth – API authorization between applications
Другие вопросы по тегам