Kerberos SSO
SSO (Single Sign-On) позволяет пользователю один раз авторизоваться в домене (AD/YOU_REALM) и без повторного ввода пароля получать доступ к АРХИВА. Это удобно (меньше паролей), безопасно (пароли не хранятся в приложениях, используется Kerberos Ticket) и упрощает администрирование (все учётные записи и права управляются централизованно в Active Directory).
Как работает Kerberos SSO
1. Что такое сервисная учётная запись
Сервисная учётная запись — это специальная учётная запись Active Directory (AD), используемая АРХИВА для аутентификации в домене.
2. Подготовка среды
Перед созданием keytab-файла и настройкой АРХИВА убедитесь, что:
У вас есть Windows Server (2008 или новее).
Active Directory (AD) установлен и настроен.
Клиенты Windows, которые будут использовать SSO, входят в домен.
Время на клиентах и сервере синхронизировано (Kerberos чувствителен к времени).
3. Создание сервисной учётной записи в AD
Через графический интерфейс (ADUC)
Откройте Active Directory Users and Computers.
Перейдите в контейнер Users (или свой OU).
Правый клик → New → User.
Введите:
Full Name: SVC Kerberos AR
User logon name: svc-kerberos-ar
Установите пароль и снимите галочку “User must change password at next logon”.
Перейдите на вкладку Account → отметьте “This account supports Kerberos AES 256 bit encryption”.
Через PowerShell
4. Создание и проверка SPN
Проверка SPN
Создание SPN
ar.yourealm.com
→ FQDN сервера, где установлен АРХИВА.HTTP/ar.yourealm.com
→ principal, который будет использовать АРХИВА.SPN должен быть уникальным в AD.
5. Генерация keytab файла
Генерация keytab
Сгенерированный файл krb5_service.keytab
скопируйте в директорию приложения:
/etc/opt/mailarchiva/ROOT/krb5_service.keytab
C:\ProgramData\MailArchiva\ROOT\conf\krb5_service.keytab
6. Проверка содержимого keytab
На Linux/Windows
Ожидаемый вывод:
Vno
→ Key Version Number (KVNO)Type
→ тип шифрования (AES256)Principal
→ SPN, привязанный к ключу
7. Тестирование аутентификации через keytab
Убедитесь, что
Ticket etype
=aes256-cts-hmac-sha1-96
.KVNO должен совпадать с keytab.
8. Настройка клиентов (браузеров)
Internet Explorer / Edge
Добавьте сайт в Доверенные сайты через Control Panel → Internet Options.
Убедитесь, что HTTPS не обязателен (если используется HTTP).
Настройте уровень безопасности зоны.
Edge
Перейдите в Настройки → Конфиденциальность, поиск и службы.
Разрешите Windows Authentication.
Перезапустите браузер.
Проверка
Попробуйте зайти на АРХИВА с доменного ПК.
Аутентификация должна пройти без ввода пароля.
Для диагностики используйте
klist
и журналы событий.
9. Настройка Tomcat для SSO (опционально)
При переходе с версии ниже 10 для корректной работы SSO, необходимо отредактировать server.xml
Остановить сервис АРХИВА
Отредактируйте файл
server.xml
в любом текстовом редакторе/var/opt/mailarchiva/tomcat/server.xml
C:\ProgramData\MailArchiva\Tomcat\conf\server.xml
Найдите блок
<Connector port="8080"
и\или<Connector port="443"
в данном блоке замените или добавьте строкуmaxHttpHeaderSize="65536"
, это увеличит размер заголовков.<Connector port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="65536" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000"/> <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="65536" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/> <SSLHostConfig> <Certificate certificateKeystoreFile="/path/to/keystore.jks" certificateKeystorePassword="password" keyAlias="alias" keyPass="password" type="RSA"/> </SSLHostConfig> </Connector>Запустите сервис АРХИВА
Итог
Сервисная учётная запись → идентификация АРХИВА в AD.
SPN → привязка к сетевому сервису.
Keytab → содержит секретный ключ (AES256) для SSO.
KVNO должен соответствовать текущему ключу в AD.
При смене пароля keytab необходимо сгенерировать заново.
Tomcat требует увеличенного
maxHttpHeaderSize
.Клиенты должны быть в домене и правильно настроены.