Перенаправление привязки ADAM

Перенаправление привязки ADAM (Active Directory Application Mode) в первую очередь предназначено для устаревших приложений, неспособных выполнять проверку подлинности непосредственно в Active Directory, которым, тем не менее, нужно использовать ADAM в качестве хранилища данных приложения. С помощью перенаправления привязки ADAM может принять запрос на привязку от приложения и направить этот запрос в Active Directory, основываясь на содержимом объекта-посредника. Объект-посредник представляет в ADAM участника безопасности Active Directory. Его можно расширить с целью хранения дополнительных данных, связанных с этим участником безопасности, которые относятся только к данному приложению. Посредством перенаправления привязки приложения могут использовать преимущества хранилища подлинников Active Directory без дополнительных затрат ресурсов. Например, если администратор отключает учетную запись в Active Directory, эту учетную запись больше нельзя использовать для привязки к ADAM. Кроме того, остается возможность выбора для приложений разных способов применения ADAM в качестве хранилища данных приложений.

Объекты-посредники для перенаправления привязки

Перенаправление привязки основано на имеющихся в ADAM объектах-заглушках или объектах-посредниках, каждый из которых представляет участника безопасности Active Directory. Чтобы реализовать перенаправление привязок, следует предварительно создать определение схемы объекта посредника для хранения данных, относящихся к данному приложению. В это определение следует включить вспомогательный класс msDS-bindProxy. Класс msds-BindProxy имеет единственный обязательный атрибут ObjectSid, который содержит код безопасности (SID) связанного участника безопасности Active Directory. Первоначально объекты-посредники, представляющие пользователей Active Directory, можно включить в ADAM, используя механизм синхронизации, например Microsoft Identity Integration Server 2003, или путем создания и импорта в ADAM LDF-файлов.

Обработка запросов на привязку

Когда пользователь отсылает в ADAM запрос на привязку, в зависимости от запроса выполняются следующие действия:

Для простых запросов на привязку:

  • Если класс объекта, для которого необходимо выполнить привязку, включает в качестве статического вспомогательного класса объект msDS-bindableObject, обработка запроса ведется непосредственно в ADAM, в результате чего создается контекст безопасности, основанный на коде безопасности пользователя ADAM.

  • Если же класс объекта, к которому требуется выполнить привязку, содержит в качестве вспомогательного класса объект msDS-bindProxy, запрос на привязку перенаправляется ADAM в Active Directory. Затем в ADAM создается контекст безопасности, который содержит маркер, возвращенный Active Directory в ответ на перенаправление, а также имена групп ADAM, куда входит данный участник.

Для запросов на привязку по протоколу простой проверки подлинности и безопасности (SASL):

  • Такой запрос на привязку направляется непосредственно как вызов интерфейса API AcceptSecurityContext. В ADAM создается контекст безопасности, основанный на маркере, возвращенном из AcceptSecurityContext.

Создание приложений с перенаправлением привязки

Хотя перенаправление привязки предназначено для устаревших приложений, ее можно использовать и в новых приложениях. Однако при создании новых и изменении уже созданных приложений рекомендуется ориентироваться на использование для проверки подлинности участников безопасности Windows, а не объектов-посредников. Такой подход позволяет создать решение с одиночной регистрацией (single sign on — SSO) и предотвратить дублирование учетных записей.

Новые и создаваемые приложения

Для приложений, находящихся в стадии разработки, а также приложений с возможностью обновления рекомендуется предусмотреть проверку подлинности непосредственно в Active Directory с использованием участников безопасности Windows. Этот подход обеспечивает наиболее высокую степень безопасности, так как пароль предоставляется клиентом непосредственно для Active Directory, минуя ADAM. Впоследствии ADAM можно использовать как хранилище данных приложения. Объекты-посредники в ADAM могут содержать данные приложения, относящиеся к определенным участникам безопасности Windows, а атрибут объекта-посредника в ADAM можно использовать для формирования уникальной связи между объектами-посредниками и конкретными участниками безопасности Windows. Для обеспечения такой связи применяется уникальный идентификатор участника безопасности Windows, например код безопасности (SID) или глобальный уникальный идентификатор (GUID). Если приложение не может выполнять проверку подлинности в Active Directory и требуется синхронизировать содержимое каталога между ADAM и Active Directory, для этого можно использовать службу синхронизации, например MIIS (Microsoft Identity Integration Server). Однако в этом случае возникает задержка между исходным обновлением и его синхронизацией.

Старые приложения

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

Безопасность пароля

Поскольку перенаправление привязки доступно только в сочетании с простыми запросами на привязку, любой пароль, отправленный в ADAM как часть перенаправления привязки, имеет вид простого незашифрованного текста. В связи с этим настоятельно рекомендуется использовать перенаправление привязки только при наличии шифрованного подключения, например по протоколу SSL, установленному в ADAM по умолчанию.

Примечания

  • ADAM следует использовать для хранения данных, относящихся к отдельному приложению, в то время как Active Directory служит для хранения данных более общего назначения.

  • Можно перенаправлять только простые запросы на привязку.

  • Перенаправление привязки не позволяет изменить пароль участника безопасности Active Directory.

  • Направление привязки поддерживается только для участников безопасности леса, к которому принадлежит данный компьютер, а также доверенных доменов и лесов.

  • Если в качестве вспомогательных классов для одного объекта указаны оба объекта — msDS-bindProxy и msDS-bindableObject, объект msDS-bindableObject имеет приоритет.