Служба федерации - это служба роли служб федерации Active Directory (AD FS), которая может быть установлена независимо от остальных служб ролей AD FS. Служба федерации работает как служба токенов безопасности. Компьютер, на котором установлена служба роли «Служба федерации», становится сервером федерации. При этом на данном компьютере также становится доступной оснастка «Службы федерации Active Directory» в меню Администрирование. Дополнительные сведения об оснастке «Службы федерации Active Directory» см. в разделе Использование оснастки «Службы федерации Active Directory».

Служба федерации использует доменные службы Active Directory (AD DS) для предоставления токенов в ответ на запросы о токенах безопасности. Это позволяет доменам и лесам Active Directory функционировать как:

Как партнер по учетным записям служба федерации позволяет пользователям обращаться к ресурсам в организациях-партнерах. В ответ на запрос от партнера по ресурсам служба федерации собирает и проверяет учетные данные пользователя в доменных службах Active Directory (AD DS) или в экземпляре служб Active Directory облегченного доступа к каталогам. Служба федерации может заполнить набор утверждений организации, которые основаны на атрибутах протокола LDAP учетной записи пользователя. Утверждения организации затем сопоставляются с соответствующими утверждениями партнера по ресурсам и упаковываются в токен безопасности, который подписывается сертификатом для подписи токена службы федерации. Итоговый токен безопасности отправляется как ответ на исходный запрос партнера по ресурсам. Партнер по ресурсам затем использует данный токен для разрешения доступа пользователю.

Как партнер по ресурсам служба федерации выполняет противоположные функции. Когда пользователь пытается обратиться к приложению, защищенному AD FS, служба федерации определяет, какой партнер по учетным записям должен проверить подлинность пользователя. После этого она отправляет этому партнеру запрос на проверку подлинности. Когда пользовательские учетные данные возвращаются с токеном безопасности, служба федерации проверяет, правильно ли токен был подписан партнером. Затем она извлекает утверждения из токена. Утверждения сопоставляются с утверждениями организации, и к ним применяется политика фильтрации для определенного приложения. Отфильтрованные утверждения организации упаковываются в токен безопасности, который либо подписывается сертификатом для подписи токена службы федерации, либо защищается ключом Kerberos для сеанса веб-приложения. Итоговый токен безопасности отправляется по исходному URL-адресу приложения. Приложение затем использует данный токен для разрешения доступа пользователю.

Для переноса утверждений в токенах безопасности, создаваемых службой федерации для веб-приложения, AD FS использует протокол WS-F PRP. Дополнительные сведения о спецификации WS-F PRP см. в разделе Службы федерации Active Directory: ресурсы.

Первоначально эти утверждения заполняются из хранилищ учетных записей AD DS или AD LDS. Служба федерации создает токены на основании предоставленных учетных данных. После проверки учетных данных пользователя средствами хранилища учетных записей утверждения для пользователя создаются согласно правилам политики доверия. Служба федерации сопоставляет входящие утверждения с исходящими утверждениями, которые являются подходящими для партнера по ресурсам. Результирующие сопоставления утверждений добавляются к токену безопасности, созданному для партнера по ресурсам. Дополнительные сведения об утверждениях см. в разделе Общее представление об утверждениях.

После того как токен проверен службой федерации, для браузера клиента создается и записывается файл «cookie» для проверки подлинности. Этот файл «cookie» используется службой федерации каждый раз, когда требуется проверка подлинности клиента, чтобы клиенту для входа не нужно было повторно вводить свои учетные данные. Таким образом обеспечивается механизм единого входа. Дополнительные сведения о файлах «cookie» см. в разделе Общее представление о файлах «cookie», используемых службами федерации Active Directory.

Веб-страницы службы федерации

Служба федерации открывает веб-страницу, где пользователю предлагается выбрать партнера по учетным записям, для доступа к которому пользователь может отправить свои учетные данные. Кроме того, в службе федерации имеется веб-страница, которая запрашивает такие учетные данные пользователя, как имя пользователя и пароль, для проверки подлинности в формах. Есть также веб-страница, поддерживающая встроенную проверку подлинности Windows.

Работу этих веб-страниц службы федерации обеспечивает веб-служба Microsoft ASP.NET, которая обрабатывает запросы клиента или прокси-сервера федерации. Прокси-сервер федерации находится в демилитаризованной зоне. Он действует как посредник между интернет-клиентом и службой федерации в интрасети. Дополнительные сведения о роли прокси-сервера федерации см. в разделе Общее представление о службе роли «Прокси-агент службы федерации».

Служба федерации отвечает на запросы двух базовых типов:

  • запросы о создании токенов безопасности;

  • запросы об отборе данных политики доверия.

Обнаружение партнера по учетным записям

Обнаружение партнера по учетным записям - процесс определения пользователями партнера по учетным записям, предпочтительного для проверки подлинности, если настроено более одного партнера по учетным записям. Сервер федерации предоставляет этот выбор в браузере клиента в виде раскрывающегося списка, содержащего имена партнеров по учетным записям, настроенные в политике доверия.

Чтобы избежать необходимости обнаружения партнера по учетным записям, можно в строку запроса ресурса, к которому выполняется обращение, включить параметр whr, например

https://webserver/testapp/testpage.aspx?whr=urn:federation:<accountpartner>

, где <accountpartner> определяет сферу партнера по учетным записям клиента.

Когда используется параметр whr, сервер федерации ресурсов удаляет параметр и записывает в браузер клиента файл «сookie», чтобы использовать эту настройку для будущих запросов. После этого запрос действует таким же образом, как если бы этот параметр не вводился.