Интеграция портала с внутренней инфраструктурой

Урок 3 из 8

7 мин

Сертификаты

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

Microsoft Active Directory или LDAP

Для централизованного управления доступа пользователей к порталу дополнительно настраивают интеграцию с каталогом организации. Настройка интеграции осуществляется в административной панели портала в модуле (AD/LDAP интеграция).

Централизованное управление и интеграция с AD/LDAP являются полезными, но не обязательными. [прим. команды академии]

Настройка SSO

Прозрачный Single Sign-On настраивается для доменных пользователей на серверах приложений или на серверах балансировки.

Для настройки Single Sign-On на серверах приложений необходимо предварительно выполнить настройку интеграции с AD в модуле AD/LDAP интеграция. Для «прозрачного» SSO внутренних доменных пользователей необходимо настроить клиентские браузеры на корректную работу с порталом по протоколу Kerberos или NTLM.

Kerberos

Если на серверах приложений используется BitrixVM, то настройка SSO по протоколу Kerberos выполняется в конфигурационных файлах Apache. В случае, когда используется стороннее окружение, необходимо произвести установку и настройку Apache. В случае, если веб-сервер Apache на серверах приложений в проекте не используется, то возможно использовать nginx с модулем spnego-http-auth-nginx-module.

Для работы SSO по протоколу Kerberos необходимо:

  1. Завести на контроллере домена служебного пользователя, который будет использоваться для работы Kerberos на серверах приложений.
  2. Выполнить сопоставление для сервисного пользователя AD SPN.

    setspn -A HTTP/portal.example.ru EXAMPLE.RU\"{имя сервисного пользователя AD}"
    
  3. Сгенерировать на контроллере домена keytab файл. Пример команды генерации:

    ktpass –princ {тип службы}/{FQDN имя узла службы}@{FQDN домена в верхнем регистре} –mapuser {имя сервисного пользователя AD} -pass "{пароль сервисного пользователя AD}" -crypto All -ptype KRB5_NT_PRINCIPAL –out {полный путь к создаваемому keytab-файлу}
    
  4. Переписать полученный keytab файл на сервера приложений.
  5. Установить необходимые пакеты для работы с Kerberos.
  6. Выполнить настройку Kerberos в файле по пути /etc/krb5.conf. Пример настроек:

    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log
    [libdefaults]
    default_realm = EXAMPLE.RU
    dns_lookup_realm = false
    dns_lookup_kdc = false
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = yes
    udp_preference_limit = 0
    [realms]
    EXAMPLE.RU = {
    kdc = example.ru
    admin_server = example.ru
    }
    [domain_realm]
    .example.ru = EXAMPLE.RU
    
  7. Установить модуль на сервера приложений Apache mod_auth_kerb.
  8. В конфигурационных файлах Apache добавить настройки пути, по которому будет работать Kerberos. Для BitrixVM настройки для Apache следует вносить в файл z_bx_custom.conf по пути /etc/httpd/bx/custom/z_bx_custom.conf. Пример настроек:

    LoadModule auth_kerb_module modules/mod_auth_kerb.so
    
    # By default, allow access to anyone.
    Order allow,deny
    Allow from All
    # Require authentication for internal private network users.
    #Deny from 10.0.0.0/8
    # Enable Kerberos authentication using mod_auth_kerb.
    AuthType Kerberos
    AuthName "Kerberos Login"
    KrbMethodNegotiate On
    KrbMethodK5Passwd Off
    KrbAuthRealms EXAMPLE.RU
    Krb5KeyTab /etc/krb5.keytab
    KrbServiceName Any
    Require valid-user
    # Removing Require valid-user and adding Satisfy Any tells Apache to still attempt Kerberos authentication, but if that fails, allow access anyways.
    # Satisfy Any # Make reqired kerberos auth
    
  9. Для автоматического входа через SSO по протоколу Kerberos необходимо модифицировать формы входа портала. При загрузке форм должен выполниться запрос на /local/kerberos. Если пользователь прошел идентификацию и аутентификацию, то в переменную REMOTE_USER придет имя пользователя, с помощью которого можно будет выполнить вход на портал.

NTLM

Если на серверах приложений используется BitrixVM, то настройка SSO по протоколу NTLM выполняется в конфигурационных файлах Apache. В случае, когда используется стороннее окружение, необходимо произвести установку и настройку модулей Apache.

Настройка NTLM подробно описана в инструкции.

Microsoft рекомендует отказаться от протокола NTLM и не использовать его для удаленной аутентификации пользователей.