Что означает код ошибки Windows 1346 (ERROR_BAD_IMPERSONATION_LEVEL)?

 
Предыдущий Следующий
ERROR_INVALID_GROUP_ATTRIBUTES ERROR_CANT_OPEN_ANONYMOUS

ERROR_BAD_IMPERSONATION_LEVEL

ERROR_BAD_IMPERSONATION_LEVEL (1346, 0x00000542) означает, что токен клиента не предоставляет уровень олицетворения, необходимый для операции. Проблема заключается в разрешённых возможностях токена, а не просто в наличии токена.

Уровни олицетворения определяют, что сервер может делать

SecurityIdentification позволяет серверу исследовать идентичность и привилегии клиента для принятия решений о доступе, но не позволяет действовать от имени клиента. SecurityImpersonation разрешает локальное олицетворение, тогда как SecurityDelegation может поддерживать действия от имени клиента в удалённых системах. Анонимные токены и токены уровня идентификации нельзя использовать там, где требуется настоящее олицетворение.

Что следует проверить

  • Прочитайте TokenImpersonationLevel с GetTokenInformation для фактически используемого токена.
  • Для именованных каналов, RPC, DDE или COM проверьте параметры безопасности клиента и сервера, задающие запрашиваемый уровень.
  • Не подставляйте молча собственную идентичность службы вместо идентичности клиента без явного решения авторизации: это может выполнить работу с более широкими правами, чем предполагалось.
  • Обрабатывайте случай, когда доступно только исследование идентичности, а запрошенная работа требует олицетворения.

См. документацию Microsoft по уровни имперсонации и ImpersonateLoggedOnUser.


Нужно найти другой код? Найти другой код состояния или ошибки.