Использование Identity Foundation с веб-интерфейсом WCF - PullRequest
3 голосов
/ 20 июля 2011

У меня есть несколько сайтов, которые настроены одинаково для использования провайдера идентификации WIF. Недавно я переместил бизнес-логику из веб-приложений в приложение-службу Web Api. Это выполняется в другом виртуальном каталоге для других сайтов. Идея в том, что браузер поместит данные на страницу AJAXy.

У меня проблема с защитой веб-API. Кажется, что единый вход WIF работает нормально с традиционными сайтами Пользователь может получить доступ к одному веб-сайту, перенаправиться к провайдеру идентификации, войти в систему и вернуться на нужный веб-сайт. Когда они получают доступ к другому сайту, они также перенаправляются обратно провайдеру идентификации, но им не нужно входить в систему, поскольку существует файл cookie FEDAUTH, поэтому они автоматически проходят проверку подлинности и перенаправляются на второй сайт.

Это не работает для сценария Web Api, потому что, когда браузер, возможно, выполняет GET, Api вернет перенаправление на вызывающий javascript, когда он должен ожидать JSON.

Можно ли даже защитить Web Api с помощью WIF?

1 Ответ

6 голосов
/ 21 июля 2011

Не уверен, правильно ли я вас понял, но, похоже, главная проблема в том, что javascript / ajax не поддерживает перенаправления http.Возможным решением может быть симуляция перенаправления с помощью последовательности отдельных вызовов в ajax:

  1. Проверьте, аутентифицированы ли вы на своем веб-сайте API (с помощью фиктивного вызова AJAX).

Если это не так:

  1. Позвоните своим sts через ajax и извлеките токен безопасности из поля формы "wresult".
  2. Позвоните на сайт авторизации наваш веб-интерфейс API и передайте маркер безопасности в качестве данных «wresult».

Доминик Байер написал несколько постов в блоге о безопасности остальных сервисов.Для дальнейшего чтения взгляните на http://www.leastprivilege.com/. (особенно http://leastprivilege.com/2009/09/11/adding-a-rest-endpoint-to-a-wif-token-service/ и http://leastprivilege.com/2010/05/05/thinktecture-identitymodel-wif-support-for-wcf-rest-services-and-odata/).

Следующая презентация от TechDays также может быть интересной: http://www.microsoft.com/showcase/sv/se/details/ffc61019-9756-4175-adf4-7bdbc6dee400(примерно через 30 минут).

...