В чем разница между WS-Trust, OpenID и SAML Passive?
Кажется, что Microsoft ADFSv2 поддерживает WS-Trust и SAML Passive, но стек WIF, на котором он построен, не поддерживает SAML.
В чем разница между WS-Trust и SAML-P? Имеют ли они одинаковые уязвимости в безопасности, если да, то каковы они?
Примечание: здесь есть похожий, но другой вопрос:
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