Поделиться через


Контексты безопасности и службы домен Active Directory

Когда приложение привязывается к контроллеру домен Active Directory (DC), оно делает это в контексте безопасности субъекта безопасности, который может быть пользователем или сущностью, например компьютером или системной службой. Контекст безопасности — это учетная запись пользователя, которая используется системой для обеспечения безопасности при попытке потока получить доступ к защищаемому объекту. Эти данные включают идентификатор безопасности пользователя (SID), членство в группах и привилегии.

Пользователь устанавливает контекст безопасности, предоставляя учетные данные для проверки подлинности. Если учетные данные проходят проверку подлинности, система создает маркер доступа, определяющий членство в группах и привилегии, связанные с учетной записью пользователя. Система проверяет маркер доступа при попытке доступа к объекту каталога. Он сравнивает данные в маркере доступа с учетными записями и группами, предоставленными или отказано в доступе дескриптором безопасности объекта.

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

  • Привязка с помощью параметра ADS_SECURE_AUTHENTICATION с помощью функции ADsOpenObject или метода IADsOpenDSObject::OpenDSObject и явно укажите имя пользователя и пароль. Система выполняет проверку подлинности этих учетных данных и создает маркер доступа, который он использует для проверки доступа в течение этой привязки. Дополнительные сведения см. в разделе Authenticate to the Speech API (Аутентификация в API речи).
  • Привязка с помощью параметра ADS_SECURE_AUTHENTICATION , но без указания учетных данных. Если вы не олицетворяете пользователя, система использует основной контекст безопасности приложения, то есть контекст безопасности пользователя, запускающего приложение. В случае системной службы это контекст безопасности учетной записи службы или учетной записи LocalSystem.
  • Олицетворение пользователя и привязка к ADS_SECURE_AUTHENTICATION, но без указания учетных данных. В этом случае система использует контекст безопасности клиента, олицетворенного. Дополнительные сведения см. в разделе олицетворение клиента.
  • Привязка с помощью ADsOpenObject или IADsOpenDSObject::OpenDSObject с параметром ADS_NO_AUTHENTICATION. Этот метод привязывается без проверки подлинности и приводит к "Все" в качестве контекста безопасности. Этот параметр поддерживается только поставщиком LDAP.

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

Некоторые контексты безопасности являются более мощными, чем другие. Например, учетная запись LocalSystem на контроллере домена имеет полный доступ к службам домен Active Directory, в то время как обычный пользователь имеет только ограниченный доступ к некоторым объектам в каталоге. Как правило, приложение не должно работать в мощном контексте безопасности, например LocalSystem, если для выполнения операций достаточно менее мощный контекст безопасности. Это означает, что вы можете разделить приложение на отдельные компоненты, каждый из которых выполняется в контексте безопасности, подходящем для выполнения операций. Например, настройка приложения может быть разделена следующим образом:

  • Выполните изменения схемы и расширения в контексте пользователя, являющегося членом группы схем Администратор istrators.
  • Изменение контейнера конфигурации в контексте пользователя, являющегося членом группы корпоративных Администратор istratorов.
  • Изменение контейнера домена в контексте пользователя, являющегося членом группы доменных Администратор istrators.