Настройка аутентификации Kerberos в IGA

Документация Avanpost IDM 7 : 5.6. Настройка аутентификации Kerberos в IGA

Навигатор по разделу:

1. Подготовка к настройке

Центральной частью схемы аутентификации Kerberos является третья доверенная сторона – Key Distribution Center (KDC), которая является централизованным хранилищем информации о пользователях. Перед разворачиванием Kerberos должен быть выбран сервер, который будет выполнять роль KDC. Физическая и сетевая безопасность критичны для этого сервера, так как его компрометация ведет к компрометации всего realm.

Имя realm (среда, в которой будет производиться аутентификация) должно быть доменным именем сайта в верхнем регистре. Например, для сайта или доменной зоны "example.com" рекомендуется выбрать "EXAMPLE.COM" в качестве имени realm.
Все серверы и клиенты, которые входят в realm Kerberos должны иметь возможность взаимодействовать между собой. Время между устройствами в realm должно быть синхронизировано.

Каждый сервер внутри Kerberos realm должен иметь Fully Qualified Domain Name (FQDN).
Kerberos ожидает, что FQDN сервера является reverse-resolvable. Если выяснение доменного имени по IP недоступно, то требуется на всех клиентах в конфигурационном файле "krb5.conf" переменной "rdns" установить значение "false".

Перед настройкой необходимо привести имя сервера к виду "servername.example.com".

В качестве примера в инструкции будут использоваться сервера:

HostnameIPНазначение
AD.EXAMPLE.LOCAL

10.10.180.11

MS Windows Server. Контроллер AD, DNS сервер.
IGA.EXAMPLE.LOCAL

10.10.180.22

Сервер Avanpost IGA. Сервер НЕ В ДОМЕНЕ.

2. Настройка аутентификации Kerberos

Для настройки аутентификации Kerberos в IGA требуется выполнить шаги:

Шаг 1. Добавить на контроллер домена Microsoft AD DNS-запись до сервера Avanpost  IGA.

Для этого требуется:

1.1. Открыть оснастку DNS.

1.2. Нажать "ServerName" → "Forward Lookup Zones" → "domain.name" → "New Host (A or AAAA)...".

1.3. Указать данные до сервера Avanpost IGA. В качестве имени требуется использовать домен 3 уровня сервера Avanpost IGA. (Например, для FQDN "IGA.EXAMPLE.LOCAL" требуется указать имя "IGA")

Шаг 2. Создать сервисную учетную запись.

Для этого требуется:

2.1. Создать сервисную учетную запись в Microsoft AD и задать ей пароль. В качестве логина требуется использовать домен 3 уровня сервера Avanpost IGA. (Например, для FQDN "IGA.EXAMPLE.LOCAL" требуется указать имя "IGA")

2.2. Включить для созданной сервисной УЗ опции “User cannot change password” и “Password never expires“.

Шаг 3. Создать keytab-файл для Kerberos-аутентификации.

Для этого требуется на контроллере домена Microsoft AD выполнить в командной строке от имени Администратора команду по примеру:

Пример команды
ktpass -out c:\temp\web_host.keytab -princ HTTP/iga.example.local@EXAMPLE.LOCAL -mapUser EXAMPLE\iga -mapOp set -pass Avanp0st -crypto All -pType KRB5_NT_PRINCIPAL

Команда из примера создает keytab-файл (c:\temp\web_host.keytab) для SPN-записи сервиса "HTTP/iga.example.local@EXAMPLE.LOCAL". SPN-запись привязывается к учетной записи "IGA" с паролем "Avanp0st".
Требуется подставить в команду свои значения.

Шаг 4. Поместить keytab-файл на сервер Avanpost IGA.

Требуется поместить файл "c:\temp\web_host.keytab" на сервер Avanpost IGA. Например, в каталог "/opt/avanpost/".

Шаг 5. Установить клиент Kerberos на сервере Avanpost IGA.

Для этого требуется выполнить команду:

yum -y install krb5-workstation

Шаг 6. Настроить конфигурационный файл Kerberos.

Требуется настроить конфигурационный файл "/etc/krb5.conf" на сервере Avanpost IGA в соответствии с примером:

Пример "/etc/krb5.conf"
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
 
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log
 
[libdefaults]
 dns_lookup_realm = true
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
 default_realm = IGATEST.LOCAL
 default_ccache_name = KEYRING:persistent:%{uid}
 default_keytab_name = /opt/avanpost/web_host.keytab
 
[realms]
EXAMPLE.LOCAL = {
kdc = ad.example.local
admin_server = ad.example.local
default_domain = example
kpasswd_server = ad.example.local
}
 
[domain_realm]
iga.example.local = EXAMPLE.LOCAL
.EXAMPLE.local = EXAMPLE.LOCAL
EXAMPLE.local = EXAMPLE.LOCAL

Шаг 7. Добавить записи в файл "/etc/hosts" на сервере Avanpost IGA.

Требуется на сервере Avanpost IGA добавить в файл "/etc/hosts" строки:

#ip_сервера_Avanpost_IGA  FQDN
10.10.180.22 iga.EXAMPLE.LOCAL
 
#ip_сервера_MS_AD  domain_name
10.10.180.11   EXAMPLE.LOCAL
 
#ip_сервера_MS_AD  FQDN
10.10.180.11   AD.EXAMPLE.LOCAL

Шаг 8. Настроить конфигурационный файл "iga.config" на сервере Avanpost IGA.

Для этого требуется изменить секцию "kerberos" в соответствии с примером:

"kerberos": {
    "KeytabPath": "/opt/avanpost/web_host.keytab",
     "Aliases": {
      "example.local": "example"
        }
    }

В большинстве случаев при настройке Iga пользователь ожидается с сокращенным доменным именем, например "example\administrator". Но при аутентификации Kerberos используется полное доменное имя, например "example.local\administrator".
Для устранения несоответствия требуется настроить алиас в секции "Aliases" по примеру: "example.local": "example".

Шаг 9. Настроить сквозную аутентификацию пользователей в параметрах браузера.

Данная настройка применяется, если необходимо обеспечить сквозную аутентификацию пользователя в приложениях без дополнительного ввода логина и пароля. Настройку можно выполнить глобально с использованием политик Microsoft Active Directory Group Policy Management.
Для настройки браузера Internet Explorer требуется:

9.1. В свойствах браузера на вкладке "Security" выбрать зону "Local Intranet"и добавить в нее запись вида "*.домен", например "*.example.local".

9.2. Открыть расширенные настройки зоны, нажав кнопку "Custom level...".

9.3. В секции "User Authentication"→"Logon" установить значение "Automatic logon only in Intranet zone" и применить изменения.

9.4. На вкладке "Advanced" в секции "Security" установить флаг "Enable Integrated Windows Authentication".

9.5. Применить настройки и перезапустить браузер.

Шаг 10. Проверить настройку.

Для этого требуется:

10.1. Создать билет kerberos на сервере Avanpost IGA с помощью команды:

kinit -k -t /opt/avanpost/web_host.keytab HTTP/iga.igatest.local

10.2. Проверить созданный билет с помощью команды:

klist
Пример вывода команды
[root@tntidm tmp]# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: HTTP/iga.example.local@EXAMPLE.LOCAL

Valid starting       Expires              Service principal
04/16/2026 15:41:54  04/17/2026 01:41:54  krbtgt/EXAMPLE.LOCAL@EXAMPLE.LOCAL
        renew until 04/23/2026 15:41:54

10.3. Уничтожить созданный тикет с помощью команды:

kdestroy

10.4. Аутентифицироваться в IGA.

В случае успешной настройки аутентификация для пользователей из домена происходит прозрачно, аутентификация для пользователей не из домена не происходит прозрачно.

Требуется отменить приглашение входа от браузера, чтобы открылось стандартное окно входа IGA. Необходимо использовать только окно входа IGA.

Приложение. Настройка альтернативных браузеров для Kerberos аутентификации

1. Google Chrome

Для настройки требуется создать в реестре Windows по пути "HKLM\Software\Policies\Google\Chrome" ключ "AuthServerAllowlist" формата "String Value", в значение которого указать адрес портала (например, http://iga.example.local).

2. Mozilla Firefox

Для настройки требуется:

  1. Открыть "about:config" в строке браузера.
  2. Указать в параметре "network.negotiate-auth.trusted-uris" адрес портала, на котором должна проходить авторизация (например, http://iga.example.local).

Обсуждение