Event ID 128 LSA Kerberos SSPI в Windows Server: причины и решение
Симптомы и описание ошибки Event ID 128 (LSA)
В журнале событий System (Система) на контроллерах домена или рядовых серверах под управлением Windows Server регистрируется предупреждение или информационное событие от источника LSA (LsaSrv) с кодом Event ID 128:
The Kerberos SSPI package generated an output token of size X bytes, which is larger than the configured maximum size of Y bytes.
Как проявляется проблема у пользователей:
- Пользователи с большим количеством доменных групп не могут авторизоваться на веб-ресурсах с Integrated Windows Authentication (IIS, SharePoint).
- Случайные сбои аутентификации при подключении по RDP к серверам приложений.
- Ошибка HTTP 400 (Bad Request — Request Header Too Long) при попытке доступа к корпоративным сайтам.
- Задержки при обработке запросов службой безопасности LSASS.
| Параметр | Значение по умолчанию (старые ОС) | Значение по умолчанию (Windows Server 2012–2022) |
|---|---|---|
| MaxTokenSize | 12 000 байт (12 KB) | 48 000 байт (48 KB) |
| HTTP Request Limits (IIS) | 16 KB | 16 KB / 64 KB |
Важно для новичков: Токен Kerberos — это виртуальный «пропуск» пользователя в сети Windows. Если сотрудник состоит в сотнях групп Active Directory или имеет сложную историю SID History, этот «пропуск» становится слишком тяжелым и не помещается в стандартный буфер памяти.
Пошаговое решение проблемы с размером токена Kerberos
Увеличение параметра MaxTokenSize через реестр
На проблемном сервере откройте PowerShell от имени Администратора и выполните команду, увеличивающую лимит размера билета Kerberos до максимальных 48 КБ (65535 байт):
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters" -Name "MaxTokenSize" -Value 65535 -PropertyType DWord -ForceНастройка групповой политики (GPO) для всех компьютеров домена
Чтобы не править реестр на каждом компьютере вручную, настройте политику домена:
- Откройте консоль
gpmc.msc(Управление групповыми политиками). - Перейдите по пути: Конфигурация компьютера → Административные шаблоны → Система → KDC (для контроллеров домена) и Система → Kerberos (для клиентов).
- Включите параметр Установить максимальный размер контекстного буфера токена SSPI Kerberos (Set maximum Kerberos SSPI context token buffer size) и задайте значение
65535.
# Принудительное обновление групповой политики на сервере: gpupdate /force- Откройте консоль
Очистка устаревших групп и истории SID (SID History)
Удалите пользователей из неиспользуемых доменных групп и выполните аудит атрибута
sIDHistoryс помощью PowerShell:Import-Module ActiveDirectory Get-ADUser -Identity "username" -Properties MemberOf, SIDHistory | Select-Object Name, @{N="GroupsCount";E={$_.MemberOf.Count}}, @{N="SIDHistoryCount";E={$_.SIDHistory.Count}}Корректировка лимитов веб-сервера IIS (если ошибка возникает на веб-узлах)
Если веб-сервер выдает ошибку HTTP 400 из-за большого заголовка авторизации, увеличьте параметры HTTP.sys:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\HTTP\Parameters" -Name "MaxFieldLength" -Value 65534 -PropertyType DWord -Force New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\HTTP\Parameters" -Name "MaxRequestBytes" -Value 16777216 -PropertyType DWord -Force net stop http /y net start w3svc
Частые вопросы (FAQ)
Почему токен Kerberos внезапно раздувается в размерах?
Каждая группа Active Directory, в которую входит пользователь (включая вложенные группы), добавляет свой идентификатор (SID) в тикет авторизации. Также сильное влияние оказывает атрибут SID History, возникающий при миграциях между доменами.
Требуется ли перезагрузка сервера после изменения MaxTokenSize в реестре?
Да, для полного применения параметров подсистемы LSA и службы Kerberos требуется перезагрузить клиентский компьютер или сервер.
Поможет ли команда klist purge уменьшить токен?
Команда klist purge удаляет текущие билеты из кэша памяти, заставляя клиент запросить новый билет у контроллера домена. Если состав групп пользователя не менялся, размер нового тикета будет таким же большим.
Может ли MaxTokenSize замедлить работу сервера?
Нет, увеличение максимального лимита лишь выделяет больше памяти при необходимости. Если токен пользователя маленький, память впустую не расходуется.