Event ID 4821: A Kerberos service ticket was denied — аудит и решение сбоя
Симптомы отказа в выдаче сервисного билета TGS (Event ID 4821)
Событие Event ID 4821 появляется на контроллере домена, когда клиент уже имеет действительный билет TGT, но при попытке запроса сервисного билета (Ticket Granting Service, TGS) к конкретной целевой службе (например, файловому серверу SMB, MSSQL или веб-серверу IIS) получает отказ контроллера домена.
Внешние проявления сбоя
- Пользователи не могут подключиться к общей сетевой папке, SQL-серверу или внутреннему сайту с ошибкой Access Denied.
- Событие фиксируется с кодом
0x12 (KDC_ERR_CLIENT_REVOKED)или0x24 (KDC_ERR_POLICY). - В теле события указан целевой SPN (Service Principal Name) сервиса и имя запрашивающего пользователя.
Порядок исправления ошибки выдачи билета TGS
Важно: Отказ в сервисном билете часто связан с тем, что целевой сервер включен в Authentication Silo, доступ к которому запрещен учетной записи клиента.
- Идентификация целевого сервиса и имени SPN:
Откройте событие в Event Viewer и найдите полеService Name(например,MSSQLSvc/db01.corp.local:1433). - Проверка ограничений сервиса в политиках Active Directory:
Проверьте, не включена ли целевая учетная запись сервиса в изолированный бункер:Get-ADServiceAccount -Identity "svc_sql" -Properties msDS-AssignedAuthNPolicySilo Get-ADUser -Identity "svc_sql" -Properties msDS-AssignedAuthNPolicySilo - Анализ контроля доступа к ресурсу (Compound Authentication):
Если настроен Dynamic Access Control (DAC), убедитесь, что компьютер и пользователь соответствуют заданным Claims в правиле выдачи билета. - Диагностика дубликатов SPN:
Проверьте уникальность SPN целевой службы в лесу Active Directory:setspn -X setspn -Q MSSQLSvc/db01.corp.local:1433 - Перевыпуск билета на стороне клиента:
Выполните команду для сброса сервисных тикетов:klist purge klist get MSSQLSvc/db01.corp.local:1433
Частые вопросы (FAQ)
В чем разница между Event ID 4820 и Event ID 4821?
Событие 4820 фиксирует отказ в получении начального удостоверения TGT, а 4821 — отказ в получении билета доступа к конкретной целевой службе (TGS) при уже имеющемся TGT.
Может ли событие 4821 быть вызвано устаревшим паролем сервисной учетной записи?
Да, если пароль учетной записи сервиса был изменен, а сам сервис не был перезапущен, KDC не сможет зашифровать TGS ключ и отклонит запрос.
Как проверить список текущих билетов TGS на компьютере пользователя?
Откройте командную строку и введите klist. В списке отобразятся все выданные тикеты с их SPN и сроками действия.
Какая подкатегория аудита отвечает за появление события 4821?
Событие регистрируется при включенной подкатегории 'Audit Kerberos Service Ticket Operations' (Аудит операций с билетами службы Kerberos).