Веб-служба WCF и служба данных с использованием SAML

У меня есть приложения WinForms и ASP.Net, которым требуется доступ к веб-службам и службам данных WCF с помощью токена SAML.

Я искал Windows Identity Foundation (WIF), чтобы позволить службе WCF использовать токены SAML из STS-IP.

Могу ли я позвонить в STS на клиенте и получить токен SAML, а затем передать токен службе WCF? Если да, то как мне получить токен и передать его в WCF?

or

Передает ли клиент учетные данные (имя пользователя / пароль) пользователя веб-службе WCF, которая получает токен SAML и выполняет свои функции?

Насколько я понимаю, службы данных WCF используют REST. Итак, как SAML работает с REST?


person Mike Therien    schedule 15.07.2010    source источник


Ответы (1)


Токен 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.

person spa    schedule 25.07.2010
comment
Спасибо за ссылку и информацию. Я до сих пор не понимаю, как клиент (веб-приложение WinForms или ASP.Net) передает токен веб-службе WCF. Кроме того, как это будет работать с REST и WCF Data Services. - person Mike Therien; 26.07.2010
comment
Согласно lessprivilege.com/SecuringWCFDataServicesUsingWIF.aspx, это скорее ручной процесс. - person spa; 27.07.2010