У меня есть приложения WinForms и ASP.Net, которым требуется доступ к веб-службам и службам данных WCF с помощью токена SAML.
Я искал Windows Identity Foundation (WIF), чтобы позволить службе WCF использовать токены SAML из STS-IP.
Могу ли я позвонить в STS на клиенте и получить токен SAML, а затем передать токен службе WCF? Если да, то как мне получить токен и передать его в WCF?
or
Передает ли клиент учетные данные (имя пользователя / пароль) пользователя веб-службе WCF, которая получает токен SAML и выполняет свои функции?
Насколько я понимаю, службы данных WCF используют REST. Итак, как SAML работает с REST?
Ответ 1 · рейтинг 1 · spa
Токен SAML можно получить через WS-Trust в сценарии активного клиента (WinForms). WS-Trust описывает некоторые услуги, которые STS предлагает для получения токена (Request for Security Token, RST). Маркер подписывается для проверяющей стороны (служба WCF) и может быть передан ей через заголовок WS-Securtiy. Конечно, чтобы получить действительный токен из первых рук, в STS должны быть переданы какие-то учетные данные.
В пассивном сценарии (ASP.Net) все несколько иначе. Чаще всего веб-приложение обрабатывает аутентификацию пользователя с помощью STS. Итак, у пользователя есть действующий связанный токен SAML. WS-Trust используется для получения токена, действительного для проверяющей стороны. Затем выполните ту же процедуру, что и выше.
Проверяющая сторона (служба WCF) обрабатывает запросы только с допустимым токеном SAML. Он никогда не получает токен для пользователя. После передачи имени пользователя / пароля и обработки аутентификации есть именно то, чего вы хотите избежать с идентификацией на основе утверждений ;-)
Думаю, вы посмотрите "Руководство по идентификации на основе утверждений и контролю доступа от MS. Конечно, WS-Trust / WS-Security используются с веб-службами SOAP.