Разница между протоколами WS-Trust, WS-Fed и SAML 1.1/ 2.0

В чем разница между протоколами WS-Trust, WS-Fed и SAML 1.1/ 2.0?

Мое понимание этих протоколов сбивается с толку, когда SAML используется в качестве маркера безопасности в протоколах WS-Trust и WS-Fed.

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

2 ответа

Решение

На высоком уровне протоколы WS-* традиционно использовались Microsoft.

SAML-P (P для протокола) использовалось движением с открытым исходным кодом и, следовательно, Java.

WS-Fed имеет два профиля - активный и пассивный. Активен для WCF (WS-Trust), пассивен на основе браузера (WS-Fed через страницу входа).

Оба они используют токены SAML.

Функционально WS-Fed и SAML делают одно и то же. федерация

Если вы объединяете две ADFS (Microsoft IDP) вместе, вы используете WS-Fed. Если вы добавите в Sharepoint, он также использует WS-Fed. Переданные токены находятся в формате токенов SAML.

Если у вас есть Java-приложение, использующее Spring, оно подключится к ADFS через SAML-P. Переданные токены находятся в формате токенов SAML.

Этот вопрос старый, но я изо всех сил пытался найти правильный ответ в Интернете.

Во многих онлайн-публикациях говорится, что клиенты "пассивных / браузерных" используют WS-Fed, а "активные / умные" используют WS-Trust. Вероятно, это связано с тем, что в активном сценарии использования по умолчанию используется URL-адрес типа "/ws-trust/2005" или "/ws-trust/v1.x/". Это не похоже на 100% точность. Великолепная и бесплатная книга "Идентичность на основе утверждений", второе издание, помогла мне решить эту проблему, и я наконец нашел удовлетворительный ответ:

Целью многих из этих архитектур является включение федерации с помощью браузера или интеллектуального клиента. Федерация с интеллектуальным клиентом основана на WS-Trust и WS-Federation Active Requestor Profile.

Эти протоколы описывают поток связи между интеллектуальными клиентами (такими как приложения на базе Windows) и службами (такими как службы WCF), чтобы запросить токен у эмитента, а затем передать этот токен службе для авторизации.

Федерация с браузером основана на профиле пассивного запросчика WS-Federation, который описывает один и тот же поток связи между браузером и веб-приложениями. Он использует перенаправления браузера, HTTP GET и POST для запроса и передачи токенов.

SAMLP - это просто другой протокол, когда речь идет о том, как об этом сообщается, например URL перенаправления и т. Д., Но различия не имеют значения (в большинстве случаев) и просто зависят от того, что клиент поддерживает (например, Java будет использовать SAML). На мой взгляд, самое большое различие заключается в том, что SAMLP допускает вариант использования, инициированный провайдером идентификации (который, на мой взгляд, является наиболее безопасным), когда пользователь запускает провайдер идентификации (например, веб-прокси сервера ADFS, = провайдер утверждений в Термины MS), вместо того, чтобы начинать с веб-службы, а затем перенаправлять ее к поставщику услуг (= ретранслирующая сторона в терминах MS). Также, когда мы говорим о SAML, мы обычно имеем в виду SAML 2.0, в то время как WS-Fed использует токены SAML 1.x (а MS называет их токенами, SAML называет их Assertion... это просто подписанный и, возможно, зашифрованный XML, я думаю, теоретически вы могли бы используйте другие токены в WS-Fed, а затем SAML, но я никогда не слышал, чтобы кто-то делал это на самом деле).

Другие вопросы по тегам