Настройка аутентификации Kerberos для сервера Exchange

 https://www.alitajran.com/kerberos-authentication-exchange-server/


Настройка аутентификации Kerberos для сервера Exchange

Если вы сталкиваетесь с частыми запросами аутентификации или низкой производительностью Outlook и Exchange Server, включение аутентификации Kerberos исправит это. Кроме того, Kerberos обеспечивает более высокий уровень безопасности и лучшую производительность по сравнению с аутентификацией NTLM. В этой статье вы узнаете, как настроить аутентификацию Kerberos для Exchange Server.

Аутентификация Kerberos на сервере Exchange

Проверка подлинности Kerberos — это безопасный и эффективный протокол, используемый Exchange Server для проверки личности пользователя без необходимости повторного ввода пароля. Он работает на основе системы билетов, где пользователи проходят аутентификацию один раз и получают билет на предоставление билета (TGT). Этот TGT затем используется для запроса билетов на обслуживание для доступа к службам Exchange Server, таким как Outlook и веб-приложения.

Внедрив аутентификацию Kerberos в Exchange Server, организации могут добиться более безопасного, бесперебойного и эффективного процесса аутентификации, одновременно снижая зависимость от NTLM или базовых методов аутентификации.

Примечание: Kerberos Authentication for Exchange Server не включена по умолчанию. Она требует дополнительной настройки после установки, включая создание альтернативной учетной записи службы (ASA) и правильную настройку имен участников службы (SPN).

Многие администраторы упускают из виду эту конфигурацию, потенциально упуская преимущества безопасности и эффективности, которые предлагает Kerberos.

Как настроить аутентификацию Kerberos на сервере Exchange

Microsoft рекомендует использовать записи A вместо записей CNAME. Это гарантирует, что клиент правильно выдаст запрос билета Kerberos на основе общего имени, а не полного доменного имени сервера.

В нашей организации используются следующие настройки внутреннего DNS для сервера Exchange :

  • mail.exoip.com для MAPI через HTTP и Outlook Anywhere
  • autodiscover.exoip.com для служб Autodiscover

Вот как это выглядит в DNS для mail.exoip.com .

DNS MAPI через HTTP и Outlook Anywhere (OA)

Вот как это выглядит в DNS для autodiscover.exoip.com .

Автообнаружение DNS

На основе приведенных выше полных доменных имен мы должны связать следующие SPN с учетными данными ASA:

  • http/mail.exoip.com
  • http/autodiscover.exoip.com

Мы выполним следующие шаги и настроим аутентификацию Kerberos для Exchange Server.

Шаг 1: Создайте альтернативную учетную запись службы (ASA)

Все серверы Exchange, на которых запущены службы клиентского доступа, которые совместно используют одни и те же пространства имен и URL-адреса, должны использовать одни и те же учетные данные альтернативной учетной записи службы или (учетные данные ASA). В общем случае достаточно иметь одну учетную запись для леса для каждой версии Exchange.

Примечание: Вы можете использовать те же учетные данные ASA из Exchange Server 2013 и выше. Таким образом, вам не нужно создавать новые, если вы хотите перейти с Exchange Server 2016 на Exchange Server 2019.

  1. Запуск Active Directory — пользователи и компьютеры
  2. Перейдите в организационное подразделение , где находится объект компьютера Exchange Server.
  3. Щелкните правой кнопкой мыши по нему и выберите «Свойства».
Настройка аутентификации Kerberos для свойств подразделения Exchange Server
  1. Нажмите на вкладку «Редактор атрибутов».
  2. Дважды щелкните атрибут distinctName .
  3. Скопировать значение
Настройте аутентификацию Kerberos для Exchange Server OU distinctName
  1. Запустите Exchange Management Shell как администратор
  2. Создайте объект компьютера AD с именем EXCH2019ASA и используйте значение OU, скопированное на предыдущем шаге, для параметра -Path.
New-ADComputer -Name "EXCH2019ASA" -AccountPassword (Read-Host "Enter new password" -AsSecureString) -Description "Alternate Service Account credentials for Exchange" -Enabled:$True -SamAccountName "EXCH2019ASA" -Path "OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local"
  1. Введите новый пароль для объекта компьютера AD.
  2. Включить шифрование AES 256 для поддержки Kerberos
Set-ADComputer "EXCH2019ASA" -add @{"msDS-SupportedEncryptionTypes"="28"}
  1. Убедитесь, что объект компьютера AD создан успешно.
Get-ADComputer "EXCH2019ASA"

Появляется вывод.

DistinguishedName : CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
DNSHostName       :
Enabled           : True
Name              : EXCH2019ASA
ObjectClass       : computer
ObjectGUID        : 0779280f-c25b-431c-b37e-1bfc020ec72a
SamAccountName    : EXCH2019ASA$
SID               : S-1-5-21-813775357-375391071-1622867542-1150
UserPrincipalName :

Объект компьютера AD также можно найти в разделе «Пользователи и компьютеры Active Directory».

Настройка аутентификации Kerberos для объекта компьютера Exchange Server AD

Шаг 2. Репликация изменений на все контроллеры домена

После создания учетной записи реплицируйте изменения на все контроллеры домена AD DS.

repadmin /syncall /ADPe

Шаг 3. Разверните учетные данные ASA на первом сервере Exchange

Единственный поддерживаемый метод развертывания учетных данных ASA — использование скрипта RollAlternateServiceAcountPassword.ps1 из папки скриптов Exchange Server.

  1. Запустите Exchange Management Shell от имени администратора.
  2. Измените каталог на папку скриптов Exchange Server.
cd $exscripts
  1. Разверните учетные данные ASA на первом сервере Exchange, на котором запущены службы клиентского доступа.
.\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer "EX01-2019.exoip.local" -GenerateNewPasswordFor exoip\EXCH2019ASA$
  1. Когда вас спросят, хотите ли вы изменить пароль для альтернативной учетной записи службы, введите Y и нажмите Enter.
Настройка аутентификации Kerberos для скрипта Exchange Server

Шаг 4. Развертывание учетных данных ASA на другом сервере Exchange

Если в вашей организации работает несколько серверов Exchange, выполните команду ниже.

Примечание: Сделайте это для всех серверов Exchange. Просто замените назначение сервера Exchange ( EX02-2019 ).

.\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer "EX02-2019.exoip.local" -CopyFrom "EX01-2019.exoip.local"

Шаг 5. Проверка развертывания учетных данных ASA

Проверьте настройки учетных данных ASA на сервере Exchange.

Get-ClientAccessServer "EX01-2019" -IncludeAlternateServiceAccountCredentialStatus | Format-List Name, AlternateServiceAccountConfiguration

Появляется вывод.

Name                                 : EX01-2019
AlternateServiceAccountConfiguration : Latest: 3/4/2025 6:07:57 PM, exoip\EXCH2019ASA$
                                       Previous: <Not set>

Шаг 6. Убедитесь, что SPN еще не связан с учетной записью.

Прежде чем связать SPN с учетными данными ASA, необходимо убедиться, что целевые SPN еще не связаны с другой учетной записью в лесу. Учетные данные ASA должны быть единственной учетной записью в лесу, с которой связаны эти SPN.

Запустите командную строку и выполните команды, указанные ниже.

setspn -F -Q http/mail.exoip.com
setspn -F -Q http/autodiscover.exoip.com

Команды должны вернуть сообщение «Такого SPN не найдено», как показано ниже.

Checking forest DC=exoip,DC=local

No such SPN found.

Если он что-то вернет, значит, с SPN уже связана другая учетная запись.

Шаг 7. Свяжите имена участников службы (SPN) с учетными данными ASA

  1. Запустить командную строку
  2. Свяжите MAPI over HTTP и SPN Outlook Anywhere с учетными данными ASA
setspn -S http/mail.exoip.com exoip\EXCH2019ASA$

Появляется вывод.

Checking domain DC=exoip,DC=local

Registering ServicePrincipalNames for CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
        http/mail.exoip.com
Updated object
  1. Свяжите SPN Autodiscover с учетными данными ASA
setspn -S http/autodiscover.exoip.com exoip\EXCH2019ASA$

Появляется вывод.

Checking domain DC=exoip,DC=local

Registering ServicePrincipalNames for CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
        http/autodiscover.exoip.com
Updated object

Шаг 8. Убедитесь, что вы связали SPN с учетными данными ASA.

Запустите командную строку и выполните команду ниже. Эту команду нужно выполнить только один раз.

setspn -L exoip\EXCH2019ASA$

Шаг 9. Включите аутентификацию Kerberos для клиентов Outlook

  1. Запустите Exchange Management Shell как администратор
  2. Включите проверку подлинности Kerberos для клиентов Outlook Anywhere на всех серверах Exchange, на которых вы хотите включить проверку подлинности Kerberos.
Get-OutlookAnywhere -Server "EX01-2019" | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate
  1. Убедитесь, что он успешно установлен.
Get-OutlookAnywhere -Server "EX01-2019" | Format-Table InternalClientAuthenticationMethod

Появляется вывод.

InternalClientAuthenticationMethod
----------------------------------
                         Negotiate
  1. Включите аутентификацию Kerberos для клиентов MAPI over HTTP для всех серверов Exchange, на которых вы хотите включить аутентификацию Kerberos.
Get-MapiVirtualDirectory -Server "EX01-2019" | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm,Negotiate
  1. Убедитесь, что он успешно установлен.
Get-MapiVirtualDirectory -Server "EX01-2019" | Format-List IISAuthenticationMethods

Появляется вывод.

IISAuthenticationMethods : {Ntlm, Negotiate}

В гибридных средах с Exchange Online или при внутреннем использовании OAuth.

$mapidir = Get-MapiVirtualDirectory -Server "EX01-2019"
$mapidir | Set-MapiVirtualDirectory -IISAuthenticationMethods ($mapidir.IISAuthenticationMethods +='Negotiate')

Шаг 10. Перезапустите службы Exchange Server.

Перезапустите службу Microsoft Exchange Service Host и MS Exchange Autodiscover Application Pool для ускорения процесса. Сделайте это на всех серверах Exchange.

Restart-Service MSExchangeServiceHost
Restart-WebAppPool -Name MSExchangeAutodiscoverAppPool

При желании вы также можете перезапустить все серверы Exchange.

Шаг 11. Проверка подлинности Kerberos клиента Exchange

После успешной настройки Kerberos и учетных данных ASA убедитесь, что клиенты могут успешно пройти аутентификацию.

  1. Запустите Outlook на клиентском компьютере.
  2. Запустите командную строку на клиентском компьютере.
  3. Выполните команду ниже
klist
  1. Убедитесь, что появились два билета с серверами HTTP/mail.exoip.com и HTTP/autodiscover.exoip.com
Настройка аутентификации Kerberos для Exchange Server klist

Вот и все!

Подробнее: Как восстановить базу данных почтовых ящиков Exchange Server »

Заключение

Вы узнали, как настроить аутентификацию Kerberos для Exchange Server. Kerberos более безопасен, чем NTLM, и он создает меньшую нагрузку на ваших клиентов, ваши серверы Exchange и контроллеры домена. Важно настроить это во всех организациях, которые используют Exchange Server.

Вам понравилась эта статья? Вам также может понравиться Create DAG Exchange Server шаг за шагом . Не забудьте подписаться на нас и поделиться этой статьей.



Комментарии

Популярные сообщения из этого блога

У вас нет прав для отправки сообщения вместо указанного пользователя. Ошибка: [0x80070005-0x0004dc-0x000524]

Пустое значение виртуального каталога Autodiscover - Object reference not set to an instance of an object (Get-AutodiscoverVirtualDirectory)

KSMG Подготовка конфигурационных файлов для подключения к LDAP