Использование делегирования удостоверений

Что такое делегирование удостоверений?

Делегирование удостоверений — это функция службы федерации Active Directory (AD FS) (AD FS), которая позволяет учетным записям, указанным администратором, олицетворить пользователей. Учетная запись, которая олицетворяет пользователя, называется делегатом. Делегирование имеет важное значение для многих распределенных приложений с рядом проверок контроля доступа, которые должны выполняться последовательно для каждого приложения, базы данных или службы, находящейся в цепочке авторизации для исходящего запроса. Во многих реальных сценариях, в которых веб-приложение "интерфейс" должно получать данные из более безопасной серверной части, например веб-службы, подключенной к базе данных Microsoft SQL Server.

Например, существующий веб-сайт по заказу необходимых компонентов можно усовершенствовать программным образом так, что партнерские организации смогут просматривать свои журналы покупок и отслеживать состояние счетов. По соображениям безопасности все финансовые данные партнера хранятся в защищенную базе данных на выделенном сервере SQL. В этой ситуации код в интерфейсном приложении ничего не знает о финансовых данных партнерской организации. Поэтому он должен извлекать данные с другого компьютера в сети, на котором размещена (в данном случае) веб-служба для базы данных компонентов (серверная) .

Для успешного выполнения этого процесса извлечения данных необходимо выполнить некоторое успешное завершение авторизации "рукопожатие" между веб-приложением и веб-службой для базы данных частей, как показано на следующем рисунке.

identity delegation

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

Как работает делегирование удостоверений?

Веб-приложения в многоуровневых архитектурах приложений часто вызывают веб-службы для доступа к общим данным или функциональным возможностям. Этим веб-службам должно быть известно удостоверение исходного пользователя, чтобы они могли принимать решения об авторизации и упрощать процедуры проверки. В этом случае интерфейсное веб-приложения представляет пользователя веб-службе в качестве делегата. AD FS упрощает этот сценарий, позволяя учетным записям Active Directory выступать в качестве пользователя другой проверяющей стороне. На следующем рисунке показан сценарий делегирования удостоверения.

Illustration that shows an identity delegation scenario.

  1. Алексей пытается получить доступ к журналу заказов из веб-приложения в другой организации. Его клиентский компьютер запрашивает и получает маркер от AD FS для веб-приложения внешнего заказа частей.

  2. Клиентский компьютер отправляет запрос веб-приложению, включая маркер, полученный на шаге 1, для подтверждения удостоверения клиента.

  3. Веб-приложение должно связаться с веб-службой, чтобы завершить транзакцию для клиента. Веб-приложение обращается к AD FS, чтобы получить маркер делегирования для взаимодействия с веб-службой. Маркеры делегирования являются маркерами безопасности, которые выдаются делегату для работы в качестве пользователя. AD FS возвращает маркер делегирования с утверждениями о клиенте, предназначенным для веб-службы.

  4. Веб-приложение использует маркер, полученный от AD FS на шаге 3, для доступа к веб-службе, которая выступает в качестве клиента. При изучении маркера делегирования веб-служба может определить, что веб-приложение работает в качестве клиента. Веб-служба выполняет политику авторизации, регистрирует запроса и предоставляет необходимые данные журнала заказов, первоначально запрошенные пользователем, в веб-приложение, и, следовательно, данному пользователю.

Для конкретного делегата AD FS может ограничить веб-службы, для которых веб-приложение может запросить маркер делегирования. Клиентский компьютер не имеет учетной записи Active Directory для выполнения данной операции. И, наконец, как было отмечено ранее, веб-служба может легко определить удостоверение делегата, который выступает в качестве пользователя. Поведение веб-служб зависит от того, взаимодействуют ли они с клиентским компьютером напрямую или через делегата.

Настройка службы федерации Active Directory для делегирования удостоверений

Вы можете использовать оснастку управления AD FS для настройки AD FS для делегирования удостоверений всякий раз, когда необходимо упростить процесс извлечения данных. После настройки AD FS может создать новые маркеры безопасности, которые будут включать контекст авторизации, который может потребоваться внутренней службе, прежде чем он сможет предоставить доступ к защищенным данным.

AD FS не ограничивает, какие пользователи могут быть олицетворены. После настройки AD FS для делегирования удостоверений выполняется следующее:

  • Определение серверов, которым можно делегировать полномочия для запроса маркеров на олицетворение пользователей.

  • Формирование и изолированное хранение контекста удостоверения для учетной записи клиента, которая является делегированной, и сервера, который выступает в качестве делегата.

Вы можете настроить делегирование удостоверений, добавив правила авторизации делегирования в доверие проверяющей стороны в оснастке управления AD FS. Дополнительные инструкции по решению этой задачи см. в разделе Checklist: Creating Claim Rules for a Relying Party Trust.

Настройка интерфейсного веб-приложения для делегирования удостоверений

Разработчики могут использовать несколько вариантов, которые можно использовать для соответствующей программы веб-приложения или службы для перенаправления запросов делегирования на компьютер AD FS. Дополнительные сведения о настройке веб-приложения для работы с делегированием удостоверений см. в разделе Пакет SDK Windows Identity Foundation.

См. также

Руководство по разработке служб федерации Active Directory в Windows Server 2012