#wcf #azure #wcf-security #wif #acs
#wcf #azure #wcf-безопасность #с помощью #acs
Вопрос:
Я пытаюсь защитить службу WCF, размещенную в IIS, размещенную в Azure, с помощью WIF и ACS.
Я нашел здесь много практических рекомендаций:http://msdn.microsoft.com/en-us/library/gg185939.aspx
Меня особенно интересуют те, которые описывают, как создать безопасную службу WCF и пройти аутентификацию с использованием сертификата или имени пользователя / пароля.
Теперь часть определения ACS довольно понятна. Но когда дело доходит до защиты самой службы, я испытываю трудности. Я использую WebRole и SVC file для предоставления доступа к службе, а настройка в инструкции выполняется в коде, и я предполагаю, что это также не будет работать с Azure webrole.
Мы будем признательны за любую помощь в том, как заставить эту комбинацию работать!
Ответ №1:
Просто небольшое уточнение: если вы полагаетесь на ACS, то аутентификация (в любой форме: сертификаты / имя пользователя / пароль и т.д.) Будет происходить в ACS, а не в вашем приложении. Ваша служба WCF будет просто ожидать токен, выданный ACS, и останется в значительной степени неосведомленной о типе используемой аутентификации.
Кроме того, фактическая реализация зависит от того, создаете ли вы службу SOAP или REST. Обычно используются разные форматы токенов и протоколы (например, SAML против SWT и т.д.)
Помимо упомянутых вами инструкций, взгляните на примеры в этом руководстве. Особенно эти:
http://msdn.microsoft.com/en-us/library/hh446528.aspx
http://msdn.microsoft.com/en-us/library/hh446531.aspx
Надеюсь, это поможет
Комментарии:
1. Еще один отличный пример, если вы выполняете REST, находится здесь: msdn.microsoft.com/en-us/library/windowsazure/hh127795.aspx — это демонстрирует использование OAuth 2.0 через SWT для службы WCF.
2. кажется, что очень сложно найти полный пример службы SOAP WCF с использованием ACS
Ответ №2:
Скорее всего, вам нужно использовать HttpModule для защиты вашей службы. Основная задача этого модуля — прочитать заголовок авторизации и создать утверждения.
Также убедитесь, что в теге web.config должно содержаться
Вы можете получить код для HttpModule из приведенного ниже примера.
http://acs.codeplex.com/wikipage?title=ACS Windows Phone Sample
Посмотрите на ProtectedResourceModule.cs
Радость