Impersonating the windows identity

Windows Identity. Impersonate Метод

Определение

Позволяет олицетворять различных пользователей Windows с помощью кода. Allows code to impersonate a different Windows user.

Перегрузки

Олицетворяет пользователя, представленного объектом WindowsIdentity. Impersonates the user represented by the WindowsIdentity object.

Олицетворяет пользователя, представленного заданным токеном. Impersonates the user represented by the specified user token.

Impersonate()

Олицетворяет пользователя, представленного объектом WindowsIdentity. Impersonates the user represented by the WindowsIdentity object.

Возвращаемое значение

Объект, представляющий пользователя Windows до олицетворения; может использоваться для возврата к исходному контексту пользователя. An object that represents the Windows user prior to impersonation; this can be used to revert to the original user’s context.

Исключения

Попытка выполнить олицетворение с использованием анонимного удостоверения. An anonymous identity attempted to perform an impersonation.

Произошла ошибка Win32. A Win32 error occurred.

Примеры

В следующем примере показано, как получить маркер учетной записи Windows путем вызова неуправляемой LogonUser функции Win32 и как использовать этот маркер для олицетворения другого пользователя, а затем вернуться к исходному удостоверению. The following example demonstrates how to obtain a Windows account token by calling the unmanaged Win32 LogonUser function, and how to use that token to impersonate another user and then revert to the original identity.

Комментарии

На платформах Windows NT текущий пользователь должен иметь достаточные права для разрешения олицетворения. On Windows NT platforms, the current user must have sufficient rights to allow impersonation.

Избегайте использования этого метода с шаблоном async/await. Avoid using this method with the async/await pattern. В некоторых случаях это может привести к проблемам с надежностью из-за того, что олицетворение не будет отменено, даже если полученный результат WindowsImpersonationContext удален. In some cases it may lead to reliability issues due to impersonation not being reverted even if the resulting WindowsImpersonationContext is disposed. Взамен рекомендуется использовать RunImpersonated . Use RunImpersonated instead.

Примечания для тех, кто вызывает этот метод

После использования Impersonate() метода важно вызвать Undo() метод для завершения олицетворения. After using Impersonate(), it is important to call the Undo() method to end the impersonation.

Применяется к

Impersonate(IntPtr)

Олицетворяет пользователя, представленного заданным токеном. Impersonates the user represented by the specified user token.

Параметры

Дескриптор токена учетной записи Windows. The handle of a Windows account token. Этот токен обычно извлекается путем вызова неуправляемого кода, например вызова функции LogonUser API Windows. This token is usually retrieved through a call to unmanaged code, such as a call to the Windows API LogonUser function.

Возвращаемое значение

Объект, представляющий пользователя Windows до олицетворения; может использоваться для возврата к исходному контексту пользователя. An object that represents the Windows user prior to impersonation; this object can be used to revert to the original user’s context.

Исключения

Система Windows вернула код состояния STATUS_ACCESS_DENIED Windows NT. Windows returned the Windows NT status code STATUS_ACCESS_DENIED.

Не хватает памяти. There is insufficient memory available.

У вызывающего объекта нет нужных разрешений. The caller does not have the correct permissions.

Примеры

В следующем примере показано, как получить маркер учетной записи Windows путем вызова неуправляемой LogonUser функции Win32 и как использовать этот маркер для олицетворения другого пользователя, а затем вернуться к исходному удостоверению. The following example demonstrates how to obtain a Windows account token by calling the unmanaged Win32 LogonUser function, and how to use that token to impersonate another user and then revert to the original identity.

Читайте также:  Гаджеты android для windows

Комментарии

На платформах Windows NT текущий пользователь должен иметь достаточные права для разрешения олицетворения. On Windows NT platforms, the current user must have sufficient rights to allow impersonation.

Вызов Impersonate(IntPtr) метода со userToken значением Zero эквивалентен вызову RevertToSelf функции Win32. Calling the Impersonate(IntPtr) method with a userToken value of Zero is equivalent to calling the Win32 RevertToSelf function. Если в настоящее время выполняется олицетворение другого пользователя, управление возвращается к исходному пользователю. If another user is currently being impersonated, control reverts to the original user.

Дополнительные сведения о вызовах неуправляемого кода см. в разделе Использование неуправляемых функций DLL. For more information about calls to unmanaged code, see Consuming Unmanaged DLL Functions.

Избегайте использования этого метода с шаблоном async/await. Avoid using this method with the async/await pattern. В некоторых случаях это может привести к проблемам с надежностью из-за того, что олицетворение не будет отменено, даже если полученный результат WindowsImpersonationContext удален. In some cases it may lead to reliability issues due to impersonation not being reverted even if the resulting WindowsImpersonationContext is disposed. Взамен рекомендуется использовать RunImpersonated . Use RunImpersonated instead.

Примечания для тех, кто вызывает этот метод

После использования Impersonate(IntPtr) метода важно вызвать Undo() метод для завершения олицетворения. After using Impersonate(IntPtr), it is important to call the Undo() method to end the impersonation.

Имитация клиента после проверки подлинности Impersonate a client after authentication

Относится к: Applies to

Описывает наиболее оптимальные методы, расположение, значения, управление политикой и соображения безопасности для клиента Impersonate после настройки политики безопасности проверки подлинности. Describes the best practices, location, values, policy management, and security considerations for the Impersonate a client after authentication security policy setting.

Справочные материалы Reference

Этот параметр политики определяет, какие программы могут выдать себя за пользователя или другую указанную учетную запись и действовать от имени пользователя. This policy setting determines which programs are allowed to impersonate a user or another specified account and act on behalf of the user. Если для этого типа обезличения требуется такое право пользователя, несанкционированный пользователь не может вызвать подключение клиента (например, с помощью удаленного вызова процедуры (RPC) или с именем труб) к службе, созданной им для выдания себя за этого клиента. If this user right is required for this type of impersonation, an unauthorized user cannot cause a client to connect (for example, by remote procedure call (RPC) or named pipes) to a service that they have created to impersonate that client. (Такое действие может привести к повышению разрешений неавторизованной пользователя до административных или системных уровней.) (Such an action could elevate the unauthorized user’s permissions to administrative or system levels.)

Impersonation — это возможность потока выполняться в контексте безопасности, который отличается от контекста процесса, владеющем потоком. Impersonation is the ability of a thread to run in a security context that is different from the context of the process that owns the thread. Обезличение предназначено для удовлетворения требований безопасности клиентских и серверных приложений. Impersonation is designed to meet the security requirements of client/server applications. При работе в контексте безопасности клиента служба в определенной степени «является» клиентом. When running in a client’s security context, a service «is» the client, to some degree. Один из потоков службы использует маркер доступа, представляющий учетные данные клиента, для получения доступа к объектам, к которым клиент имеет доступ. One of the service’s threads uses an access token representing the client’s credentials to obtain access to the objects to which the client has access. Основная причина, по которой выполняется вымысление, заключается в том, что проверка доступа выполняется в отношении удостоверения клиента. The primary reason for impersonation is to cause access checks to be performed against the client’s identity. Использование удостоверения клиента для проверки доступа может привести к ограничению доступа или расширению доступа в зависимости от того, что клиент имеет разрешение. Using the client’s identity for access checks can cause access to be either restricted or expanded, depending on what the client has permission to do.

Читайте также:  Отключить конфигурация усиленной безопасности internet explorer windows server

Службы, запущенные диспетчером управления службами, имеют встроенную группу служб, добавленную по умолчанию в маркеры доступа. Services that are started by the Service Control Manager have the built-in Service group added by default to their access tokens. Com-серверы, запущенные инфраструктурой COM и настроенные для работы под определенной учетной записью, также добавляют группу Service в маркеры доступа. COM servers that are started by the COM infrastructure and configured to run under a specific account also have the Service group added to their access tokens. В результате эти процессы назначены этому пользователю сразу после их начала. As a result, these processes are assigned this user right when they are started.

Constant: SeImpersonatePrivilege Constant: SeImpersonatePrivilege

Возможные значения Possible values

  • Определяемый пользователей список учетных записей User-defined list of accounts
  • Значения по умолчанию Default values
  • Не определено Not defined

Рекомендации Best practices

Пользователь может выдать себя за маркер доступа, если существует любое из следующих условий: A user can impersonate an access token if any of the following conditions exist:

  • Маркер доступа, который выдвигается, является для этого пользователя. The access token that is being impersonated is for this user.
  • Пользователь в этом сеансе вошел в сеть с явными учетными данными для создания маркера доступа. The user in this session logged on to the network with explicit credentials to create the access token.
  • Запрашиваемая степень меньше, чем безлимитная, например Anonymous или Identify. The requested level is less than Impersonate, such as Anonymous or Identify.

Из-за этих факторов пользователям обычно не требуется иметь это право пользователя. Because of these factors, users do not usually need to have this user right assigned.

Location Location

Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment

Значения по умолчанию Default values

По умолчанию этот параметр — администраторы, локализованные службы, сетевые службы и службы на контроллерах доменов и автономных серверах. By default, this setting is Administrators, Local Service, Network Service, and Service on domain controllers and stand-alone servers.

В следующей таблице приведены фактические и действующие значения по умолчанию для этой политики. The following table lists the actual and effective default policy values. Значения по умолчанию также можно найти на странице свойств политики. Default values are also listed on the policy’s property page.

Тип сервера или объект групповой политики Server type or GPO Значение по умолчанию Default value
Default Domain Policy Default Domain Policy Не определено Not defined
Политика контроллера домена по умолчанию Default Domain Controller Policy Администраторы Administrators
Локализованная служба Local Service
Служба сети Network Service
Обслуживание Service
Параметры по умолчанию для автономного сервера Stand-Alone Server Default Settings Администраторы Administrators
Локализованная служба Local Service
Служба сети Network Service
Обслуживание Service
Действующие параметры по умолчанию для контроллера домена Domain Controller Effective Default Settings Администраторы Administrators
Локализованная служба Local Service
Служба сети Network Service
Обслуживание Service
Действующие параметры по умолчанию для рядового сервера Member Server Effective Default Settings Администраторы Administrators
Локализованная служба Local Service
Служба сети Network Service
Обслуживание Service
Действующие параметры по умолчанию для клиентского компьютера Client Computer Effective Default Settings Администраторы Administrators
Локализованная служба Local Service
Служба сети Network Service
Обслуживание Service

Управление политикой Policy management

В этом разделе описаны компоненты, средства и рекомендации, которые помогут в управлении этой политикой. This section describes features, tools, and guidance to help you manage this policy.

Для активации этого параметра политики не требуется перезагрузка компьютера. A restart of the computer is not required for this policy setting to be effective.

Изменения прав пользователя вступают в силу при его следующем входе в учетную запись. Any change to the user rights assignment for an account becomes effective the next time the owner of the account logs on.

Групповая политика Group Policy

Параметры применяются в следующем порядке с помощью объекта групповой политики (GPO), который перезаписывал параметры на локальном компьютере при следующем обновлении групповой политики: Settings are applied in the following order through a Group Policy Object (GPO), which will overwrite settings on the local computer at the next Group Policy update:

  1. Параметры локальной политики Local policy settings
  2. Параметры политики сайта Site policy settings
  3. Параметры политики домена Domain policy settings
  4. Параметры политики подразделения OU policy settings

Когда локальный параметр серый, он указывает, что GPO в настоящее время контролирует этот параметр. When a local setting is greyed out, it indicates that a GPO currently controls that setting.

Вопросы безопасности Security considerations

В этом разделе описывается, каким образом злоумышленник может использовать компонент или его конфигурацию, как реализовать меры противодействия, а также рассматриваются возможные отрицательные последствия их реализации. This section describes how an attacker might exploit a feature or its configuration, how to implement the countermeasure, and the possible negative consequences of countermeasure implementation.

Уязвимость Vulnerability

Злоумышленник, выдающий себя за клиента после правильной проверки подлинности, может создать службу, ввести клиента в заблуждение при подключении к службе, а затем выдать себя за компьютер, чтобы повысить уровень доступа злоумышленника к уровню доступа к устройству. **** An attacker with the Impersonate a client after authentication user right could create a service, mislead a client into connecting to the service, and then impersonate that computer to elevate the attacker’s level of access to that of the device.

Противодействие Countermeasure

На серверах-членах убедитесь, что только администраторы и группы служб (местная служба, служба сети и служба) имеют право пользователя на проверку подлинности после присвоения им права на идентификацию. **** On member servers, ensure that only the Administrators and Service groups (Local Service, Network Service, and Service) have the Impersonate a client after authentication user right assigned to them.

Возможное влияние Potential impact

В большинстве случаев эта конфигурация не влияет. In most cases, this configuration has no impact. Если установлены необязательные компоненты, такие как ASP.NET или IIS, может потребоваться назначить клиенту после проверки подлинности право пользователя на дополнительные учетные записи, необходимые для таких компонентов, как IUSR_ **** * IIS_WPG, ASP.NET или IWAM_ *. If you have installed optional components such as ASP.NET or IIS, you may need to assign the Impersonate a client after authentication user right to additional accounts that are required by those components, such as IUSR_ , IIS_WPG, ASP.NET, or IWAM_ .

В IIS 7.0 и более поздней степени встроенная учетная запись (IUSR) заменяет IUSR_MachineName учетную запись. In IIS 7.0 and later, a built-in account (IUSR) replaces the IUSR_MachineName account. Кроме того, группа с именем IIS_IUSRS заменяет IIS_WPG группу. Additionally, a group that is named IIS_IUSRS replaces the IIS_WPG group. Так как учетная запись IUSR является встроенной учетной записью, для учетной записи IUSR больше не требуется пароль. Because the IUSR account is a built-in account, the IUSR account no longer requires a password. Учетная запись IUSR похожа на учетную запись сетевой или локальной службы. The IUSR account resembles a network or local service account. Дополнительные сведения см. в материале Разрешения по умолчанию и права пользователя для IIS 7.0 и более поздней. For more details, see Default permissions and user rights for IIS 7.0 and later.

Читайте также:  Browser automation studio mac os
Оцените статью