Подходит ли 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, который поддерживает любой из этих протоколов.
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 с этими другими продуктами? Любые комментарии?