Подходит ли Azure Access Control и WIF, если некоторые из проверяющих сторон не основаны на.Net

В настоящее время у нас есть несколько приложений.Net в разных доменах с отдельным членством в каждом. Мы переходим к федеративному входу в систему с единым входом (и, возможно, единым выходом) и централизованным членством, размещенным в Azure.

Нам показалось, что естественным выбором было создание нашего собственного Identity Provider для контроля доступа Azure, который на всех наших сайтах проходил бы проверку подлинности с помощью WIF, но в будущем это может быть связано с тем, что сайты, не являющиеся доменами.Net, должны будут проверять это.

Это все еще приемлемый путь?

3 ответа

Решение

ACS является "поставщиком федерации". Это в основном позволяет вашим "проверяющим сторонам" (вашим приложениям) делегировать ему аутентификацию.

ACS может сам доверять многим "провайдерам идентификации", в том числе и вашим, если хотите. В настоящее время (ACS V2) поддерживает WS-Federation и OpenID (для веб-сайтов), WS-Trust & OAuth (для веб-служб). Это "протоколы". ACS поддерживает 2 формата токенов: SAML (1.1 и 2.0) и SWT. Он также поставляется с предварительно настроенными Google, Yahoo!, Facebook и LiveID.

Если ваше приложение доверяет ACS, вы можете принимать пользователей с учетными записями в любой из этих служб. ACS может работать с "любым" IdP, который поддерживает любой из этих протоколов.

ACS Simple

WIF - это платформа для.NET, которая позволяет "утверждать, что" в вашем приложении, и работает в таких стеках, как ASP.NET (и ASP.NET MVC) и WCF. Он может работать с другими стеками приложений, но требует взаимодействия. Однако каждая платформа обычно имеет WIF-эквивалент, и, если она соответствует стандарту (например, WS-Fed, токены SAML и т. Д.), Она работает.

Взаимодействие тоже в обе стороны. Например: приложение не.NET, полагающееся на ACS / ACS, полагающееся на провайдера идентификации без MSFT.

Если вы хотите сохранить свои базы данных о членстве для аутентификации (это означает, что у вас все еще будут имена пользователей и пароли), вы можете заключить их в STS (созданный с WIF) и добавить его в список провайдеров идентификации. Тогда любое приложение (.NET или нет) может использовать аутентификацию на его основе:

Конечно, вы можете комбинировать оба: ваши приложения доверяют ACS, а затем ACS доверяют вашему IdP (в дополнение к другим IdP). Это дает вам дополнительную гибкость.

В общем, если вы используете WIF на своем веб-сайте.NET, вам не нужно писать много кода (если есть). Все просто работает.

Примеры всего этого доступны здесь:

  • Комплект для обучения личности
  • Руководство по идентификации на основе утверждений ( http://claimsid.codeplex.com/)

Для очень быстрого вступления, проверьте последнюю веб-трансляцию Скотта: http://scottdensmore.typepad.com/blog/talks.html

О, я увлекся и заметил часть доверяющих сторон ПОСЛЕ того, как я написал ответ! Последняя часть имеет место, хотя. ACS использует REST и выдает токены SAML или SWT, поэтому любое приложение, которое их понимает, может использовать ACS.

WIF и ACS не требуют.NET на сайте клиента. На самом деле самый простой способ его использования - через службы федерации AD, которые проверяют подлинность пользователей в их домене AD и передают токен SAML в ACS.

Фактически, ACS SDK содержит статьи о настройке ACS для использования Google, Facebook и Yahoo в качестве поставщиков удостоверений.

Если вам необходимо пройти аутентификацию в другой системе (например, во внутренней системе единого входа, в базе данных и т. Д.), Вы можете написать своего собственного провайдера идентификации, который будет аутентифицировать пользователя и отправлять соответствующие токены в ACS. Поскольку ACS использует REST API, вы можете использовать любую платформу или язык для создания своего провайдера.

Если под "не на основе NET" вы подразумеваете что-то вроде Java-приложений, вы можете объединить Java (например, используя OpenSSO или PingFederate) и ADFS.

ADFS может объединяться с ACS.

Существует ряд пошаговых руководств по ADFS 2.0 для обеспечения совместимости.

Я не уверен, что вы могли бы удалить ADFS и просто объединить ACS с этими другими продуктами? Любые комментарии?

Другие вопросы по тегам