Windows® Identity Foundation (WIF) — это платформа для построения приложений, поддерживающих удостоверения. Платформа поддерживает на уровне абстракций протоколы WS-Trust и WS-Federation и предоставляет разработчикам программные интерфейсы (API) для построения служб маркеров безопасности (STS) и приложений, поддерживающих утверждения. Приложения могут использовать WIF для обработки маркеров, выданных службами STS, и принятия решений на основе удостоверений на уровне веб-приложения или веб-службы.
Ниже перечислены основные возможности WIF.
- Создание приложений, поддерживающих
утверждения (приложений проверяющей стороны). WIF помогает
разработчикам создавать приложения, поддерживающие утверждения.
Помимо новой модели утверждений эта платформа предлагает
разработчикам богатый набор программных интерфейсов, позволяющих
принимать решения по доступу пользователей на основании
утверждений. WIF также предлагает разработчикам единый интерфейс
программирования, если они создают свои приложения в средах ASP.NET
или WCF. Дополнительные сведения см. в разделе Потребление утверждений
- приложения проверяющей стороны.
- Шаблоны Visual Studio WIF предлагает
встроенные шаблоны Visual Studio для поддерживающих утверждения
приложений веб-сайтов ASP.NET и веб-служб WCF и сокращает время на
знакомство с моделью программирования на основе утверждений.
Дополнительные сведения см. в разделе Шаблоны Visual
Studio.
- Установление отношений доверия между
приложением, поддерживающим утверждения, и службой STS WIF
предлагает служебную программу под названием FedUtil, которая
позволяет легко устанавливать отношения доверия между приложениями,
поддерживающими утверждения, и службой STS, например между службами
федерации Active Directory2.0 и службой STS LiveID. FedUtil
поддерживает приложения ASP.NET и WCF. Также эта программа
интегрирована с Visual Studio, поэтому ее можно вызывать из
обозревателя решений, щелкнув правой кнопкой проект и затем выбрав
пункт "Добавить ссылку на службу STS", или из меню "Сервис" в
Visual Studio. Дополнительные сведения см. в разделе FedUtil — служебная
программа федерации для установления отношения доверия между
проверяющей стороной и службой STS.
- Элементы управления ASP.NET. Элементы
управления ASP.NET упрощают разработку страниц ASP.NET для
построения веб-приложений, поддерживающих утверждения.
Дополнительные сведения см. в разделе Установление отношения
доверия между приложением проверяющей стороны ASP.NET и службой STS
с помощью элемента управления FederatedPassiveSignIn.
- Преобразование утверждений в маркеры NT.
WIF включает службу Windows под названием Служба c2WTS (Claims to
Windows Token Service), которая выступает в роли посредника между
поддерживающими утверждения приложениями и приложениями на основе
маркеров NT. Она предоставляет разработчикам простой способ
преобразования утверждений в удостоверение на основе маркера NT и
позволяет регулировать доступ к ресурсам, которые запрашивают
удостоверение на основе маркера NT у приложения, поддерживающего
утверждения. Дополнительные сведения см. в разделе Общие сведения о службе
c2WTS (Claims to Windows Token Service).
- Добавление поддержки делегирования
удостоверений в приложения, поддерживающие утверждения WIF
предоставляет возможность поддерживать удостоверения исходных
запрашивающих сторон в пределах нескольких служб. Эта возможность
достигается за счет использования либо функции "ActAs", либо
"OnBehalfOf" данной платформы и позволяет разработчикам добавлять
поддержку делегирования удостоверений в приложения, поддерживающие
удостоверения. Дополнительные сведения см. в разделах Интеграция с IIdentity и
IPrincipal и Сценарий делегирования
удостоверения.
- Создание пользовательских служб маркеров
безопасности (STS). WIF значительно облегчает создание
пользовательской службы STS, которая поддерживает протокол
WS-Trust. Такая служба также называется "активной службой STS".
Кроме того, платформа также обеспечивает возможности для создания служб STS, которые поддерживают протокол WS-Federation для включения клиентов веб-браузеров. Такие службы также называются "пассивными службами STS".
Платформа включает встроенные шаблоны Visual Studio для создания служб STS ASP.NET и WCF. Эти шаблоны позволяют создавать простые службы STS, а разработчики могут расширять их и реализовывать производственные службы, соответствующие их потребностям. Дополнительные сведения см. в разделах Инструкции: создание службы STS ASP.NET и Инструкции: создание службы STS WCF.
WIF поддерживает следующие основные сценарии.
- Федерация. WIF позволяет создать федерацию
между двумя или более партнерами. Поддержка построения приложений,
поддерживающих утверждения (проверяющей стороны), и служб STS
помогает реализовывать такие сценарии. Дополнительные сведения см.
в разделе Сценарий
федерации.
- Делегирование удостоверений. WIF позволяет
поддерживать удостоверения сразу для нескольких служб, поэтому
разработчики могут реализовать сценарий делегирования
удостоверений. Дополнительные сведения см. в разделе Сценарий делегирования
удостоверения.
- Многоэтапная проверка подлинности. Требования
к проверке подлинности для доступа к различным ресурсам в рамках
одного приложения могут различаться. WIF предоставляет
разработчикам возможность создания приложений, которые могут
предъявлять возрастающие требования к проверке подлинности
(например, начальный вход с проверкой подлинности с помощью имени
пользователя и пароля, после чего используется проверка подлинности
на основе смарт-карты). Дополнительные сведения см. в разделе
Сценарий
многоэтапной проверки подлинности.
WIF упрощает использование преимуществ модели удостоверений на основе утверждений, описанной в этой теме. В этой теме приводится обзор новых возможностей, предлагаемых в Windows® Identity Foundation (WIF) для обработки утверждений. Дополнительные сведения см. в Техническом документе по Windows Identity Foundation для разработчиков.
Доступ к утверждениям через Thread.CurrentPrincipal
Для доступа к набору утверждений текущего пользователя
в приложении проверяющей стороны используйте
Thread.CurrentPrincipal
.
В следующем примере кода показано использование этого метода для получения интерфейса IClaimsIdentity:
Копировать код | |
---|---|
IClaimsIdentity claimsIdentity = ((IClaimsPrincipal)Thread.CurrentPrincipal).Identities[0]; |
Дополнительные сведения см. в разделе Инструкции: доступ к утверждениям на странице ASP.NET.
Тип утверждения роли
Частью настройки приложения проверяющей стороны
является определение типа утверждения роли. Этот тип утверждения
используется методом IsInRole. Тип утверждения по умолчанию
—
http://schemas.microsoft.com/ws/2008/06/identity/claims/role
.
Утверждения, извлеченные компонентом Windows Identity Foundation из маркеров различных типов
WIF поддерживает ряд сочетаний готовых механизмов проверки подлинности. В следующей таблице приводится список утверждений, которые WIF извлекает из маркеров различных типов.
Тип маркера |
Создаваемое утверждение |
Сопоставление с маркером доступа Windows |
SAML 1.1 |
|
В дополнение к утверждениям в разделе "SAML 1.1", кроме
утверждений типа
|
SAML 2.0 |
См. "SAML 1.1". |
См. "SAML 1.1, сопоставление с учетной записью Windows". |
X509 |
|
|
UPN |
|
|
Windows (Kerberos или NTLM) |
|
|
Пара ключей RSA |
|
Тип проверки подлинности |
Коды URI, выпущенные в утверждении "AuthenticationMethod" |
Пароль |
|
Kerberos |
|
SecureRemotePassword |
|
TLSClient |
|
X509 |
|
PGP |
|
Spki |
|
XmlDSig |
|
Не указано |
|