2013-05-06 4 views
3

Я знаю, этот вопрос, кажется, похож на другой сын, но я попробовал ответы, размещенные здесь: Securing WCF 4.5 service using Azure ACS 2.0Azure службы WCF с Azure аутентификацией Active Directory

И вот: Federated authentication (single-sign-on) for a WCF REST/HTML-service on Azure

Ans ни, кажется, актуальны ,

Вот что у меня есть.

  • лазурь облачный сервис с различными ролями рабочих, а также веб-роли WCF с REST и SOAP Endpoints
  • лазурь активный счет каталога с парой пользователей
  • ACS пространства имен.

Служба WCF будет использоваться несколькими различными компаниями, кроме закрытых. Мы выбрали активный каталог azure для предоставления SSO для службы wcf и других приложений.

Вот что я хочу сделать:

  • Создание пользователей/паролей для каждой компании с помощью службы WCF в Azure Active Directory.
  • Разрешить только компании с действительным именем пользователя и паролем для получения доступа к токену
  • Чтобы каждая компания использовала свой токен для доступа к методам WCF.

Я не думал, что этого было бы трудно выполнить, но все учебные пособия, похоже, предназначены для размещенных или размещенных служб IIS с консольным приложением.

То, что я сделал до сих пор:

  • Добавлен службу WCF как интегрированное приложение в лазурной активной директории
  • новый провайдер, удостоверяющий личность с именем testAAD в ACS и добавил метаданных WS-Federation от интегрированное приложение к этому провайдеру
  • Добавлено приложение-приложение, использующее только что созданный поставщик идентификационных данных testAAD
  • Добавлена ​​группа правил с правилом передачи, использующим поставщик идентификации идентификатора testAAD и значения по умолчанию.

Для получения более подробной информации см. Опцию 1 here. Мне нужно знать, было ли то, что я сделал, где-то близко к правильному, и если бы это было так, как мне заставить WCFservice начать использовать эти настройки.

Другая информация:

  • WIF 4,5
  • VS2012 Pro
  • C#

Любые соответствующие учебные ссылки или общие рекомендации было бы здорово. Заранее спасибо.

Обновление: Чтобы добавить дополнительную информацию, служба WCF публикуется на нескольких разных сайтах. Каждый из наших клиентов будет собирать данные из своих собственных веб-форм, а затем либо добавлять ссылку на службу с помощью кода C#, либо публиковать данные в URL-адресе через что-то вроде завитка, если они используют php. Служба имеет как остальные, так и конечные точки мыла. Так, например, они отправили бы запрос XML или SOAP в mynamespace.cloudapp.net/myservice.svc/servicemethod. Я либо хочу, чтобы они отправили свое имя пользователя и пароль с этим запросом и подтвердили эти учетные данные в фактическом методе WCF или попросили их указать токен аутентификации, а затем отправить этот токен аутентификации с их запросом.

Обновление 2 Я думаю, что нашел недостающую деталь. Чтобы использовать активный каталог в качестве поставщика удостоверений, похоже, мне нужно настроить сервер ADFS. Я думал, что сервер ADFS был настроен уже с активной учетной записью azure active, но, видимо, это не так? Есть ли способ сделать это без сервера ADFS?

ответ

0

Главный вопрос, который вы не рассмотрели, - how will these companies use that WCF service?. Через ваш веб-портал или через богатый клиент (например, WinForms/WPF)?

Если это богатый клиент, вы можете взглянуть на this blog post? Он показывает вам, как защитить службу WCF с помощью токена и получить доступ к этой службе из приложения WPF.

Если вы планируете разрешать доступ только к службе WCF через ваш веб-портал, тогда изображение немного отличается. Вы можете сначала защитить свой портал от Azure AD и получить токен пользователя. Затем используйте этот токен для аутентификации против WCF.

Но в подлинно веб-сценарии client, который совершит звонки в службу, на самом деле your web server. Если это так, я просто защищу свой веб-портал с помощью Azure AD. Затем защитите мой WCF с помощью одного токена доступа. Я могу получить этот токен из службы Identity в моем Azure AD Access Control. И предоставить этот «Сервисный токен» как часть каждого вызова WCF из моего web server. Для дополнительного аудита (и соответствия) я также отправлю оригинальный токен пользователя, чтобы отслеживать, кто к кому обращался, что и когда.

+0

Спасибо за быстрый ответ, см. Мои обновления. Я не уверен, что какой-либо из описанных вами сценариев соответствовал моей ситуации. –

Смежные вопросы