Требования к конфигурации сервера SharePoint для поддержки шифрования Kerberos AES в случае возникновения ошибок

Исходный номер КБ:   4501051

Симптомы

Вы получаете ошибки после изменения параметра Сетевой безопасности: настройка типов шифрования, разрешенных для Kerberos с помощью локальной политики или GPO, из значений по умолчанию в значение, которое позволяет использовать только следующие типы шифрования:

  • AES128_HMAC_SHA1
  • AES256_HMAC_SHA1
  • Будущие типы шифрования

Если ошибки написаны в журналах универсальной системы ведения журнала SharePoint, они указывают на то, что запрашиваемая тип шифрования не поддерживается KDC. Действия, которые вызывают эти ошибки, включают (но не ограничиваются):

  • Доступ к странице Управление учетной записью службы в центре администрирования
  • Доступ к странице администрирования поиска (топология поиска может не отображаться)
  • Внесение изменений в конфигурацию поиска

В журналы ULS SharePoint записано обычное сообщение об ошибке:

Исключение: System.ServiceModel.Security.SecurityNegotiationException: вызов на SSPI не удалось, см. внутреннее исключение.
---> System.Security.Authentication.AuthenticationException: вызов в SSPI не удалось, см. внутреннее исключение.
---> System.ComponentModel.Win32Exception: запрашиваемая типа шифрования не поддерживается KDC
--- Конец трассировки внутреннего стека исключений ---

Приложение-служба Project Server также может входить в систему аналогичного сообщения:

PWA: https://<SharePoint>/<Site> , ServiceApp:PWA, User:i:0#.w| Domain\UserId,
PSI: не удалось отправить уведомление о работе в очередь для <Guid> сайта, исключение System.ServiceModel. Security.SecurityNegotiationException: вызов sSPI не удалось, см. внутреннее исключение.
---> System.Security.Authentication.AuthenticationException: вызов в SSPI не удалось, см. внутреннее исключение.
---> System.ComponentModel.Win32Exception: запрашиваемая типа шифрования не поддерживается KDC

В процессе создания служб профилей пользователей вы не можете запустить службу синхронизации профилей пользователей.

При запуске службы профилей пользователей в центре администрирования служба запускается и немедленно прекращается. Проверка ULS SharePoint указывает на то, что сбой в запуске является результатом следующих:

"UserProfileApplication.SynchronizeMIIS: не удалось настроить ILM, будет пытаться повторно.
Исключение: System.Security.SecurityException: запрашиваемая тип шифрования не поддерживается KDC".

Другие компоненты могут писать сообщения об ошибках, указывающие, что запрашиваемая типа шифрования не поддерживается KDC.

Причина

Такое поведение возникает из-за конфликта между настраиваемой локальной политикой или групповой политикой и свойствами учетной записи службы в Active Directory. При настройке параметра свойства Network Security: Настройка типов шифрования, разрешенных для Kerberos, чтобы сервер поддерживает только типы шифрования AES и будущие типы шифрования, сервер не будет поддерживать старые типы шифрования Kerberos в билетах Kerberos. Важно также отметить, что объекты учетных записей пользователей, созданные в Active Directory, не настроены для поддержки шифрования Kerberos AES по умолчанию.

Если сервер настроен на то, чтобы требовать типы шифрования AES для Kerberos, но свойства учетной записи службы в Active Directory не были обновлены для поддержки шифрования AES, в результате сервер не может согласовать общий тип шифрования для билетов Kerberos.

Решение

Чтобы устранить эту проблему, выполните следующие действия:

  1. Определите все учетные записи, используемые в SharePoint в качестве учетных записей пула приложений и учетных записей служб.

  2. Найдите учетные записи пользователей и компьютеров Active Directory.

  3. Выбор свойств.

  4. Выберите вкладку Учетная запись.

  5. В разделе Параметры учетной записи убедитесь, что выбран один или оба следующих варианта. Это позволит поддерживать шифрование Kerberos AES на этих объектах пользователя:

    • Эта учетная запись поддерживает шифрование 128-битных файлов Kerberos AES
    • Эта учетная запись поддерживает шифрование kerberos AES 256
  6. Выполните на серверах и перезапустите все службы, связанные с SharePoint, которые выполняются в контексте iisreset измененных учетных записей служб.

Дополнительные сведения

Чтобы проверить, настроен ли сервер SharePoint только для поддержки типов шифрования AES или более новых типов:

  1. На сервере запустите редактор локальной политики безопасности (secpol.msc).
  2. Расширение параметров безопасности > Локальные политики > Параметры безопасности.
  3. Найдите службу сетевой безопасности: настройка типов шифрования, разрешенных для Kerberos.
  4. Выбор свойств.

Если выбраны только следующие параметры:

  • AES128_HMAC_SHA1
  • AES256_HMAC_SHA1
  • Будущие типы шифрования

Снимок экрана типов шифрования, разрешенных для Kerberos.

Затем необходимо включить службу поддержки шифрования Kerberos AES на объектах пользователей Active Directory, которые используются для запуска служб и пулов приложений SharePoint.

Вы можете использовать следующий скрипт PowerShell для определения учетных записей службы SharePoint и проверки их настройки для поддержки типов шифрования AES:

Add-PSSnapin Microsoft.SharePoint.Powershell
$AES_128 = 0x8
$AES_256 = 0x10
$Separator="\"
$option = [System.StringSplitOptions]::RemoveEmptyEntries
Write-Host "Retrieving SharePoint Managed Accounts" -ForegroundColor White
$SharePointAccounts=""
$ManagedAccounts=Get-SPManagedAccount
foreach ($ManagedAccount in $ManagedAccounts)
{
Write-Host "Checking Account: "$ManagedAccount.Username
$temp=$ManagedAccount.Username
$samaccountName=$temp.Split($separator,2, $option)[1]
$userobj=([adsisearcher]"samAccountName=$samaccountName").FindOne()
$EncryptionTypes=$userobj.properties.Item('msds-supportedencryptiontypes')[0]
#$EncryptionTypes
$HexValue='{0:X}' -f $EncryptionTypes
if ($EncryptionTypes -band $AES_128)
{
Write-Host "Account Supports AES128 bit encryption " -ForegroundColor Green
}
Else
{
Write-Host "Account Does Not have AES128 bit encryption support enabled" -ForegroundColor Red
}
if ($EncryptionTypes -band $AES_256)
{
Write-Host "Account Supports AES256 bit encryption " -ForegroundColor Green
}
Else
{ Write-Host "Account Does Not have AES256 bit encryption support enabled" -ForegroundColor Red
}
}
====================== END SCRIPT ========================================================