Сертификаты
Для передачи информации между порталом и пользователями в зашифрованном виде необходимо использовать сертификаты. В случае использования сертификатов внутренней 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 необходимо:
- Завести на контроллере домена служебного пользователя, который будет использоваться для работы Kerberos на серверах приложений.
-
Выполнить сопоставление для сервисного пользователя AD SPN.
setspn -A HTTP/portal.example.ru EXAMPLE.RU\"{имя сервисного пользователя AD}"
Сгенерировать на контроллере домена keytab файл. Пример команды генерации:
ktpass –princ {тип службы}/{FQDN имя узла службы}@{FQDN домена в верхнем регистре} –mapuser {имя сервисного пользователя AD} -pass "{пароль сервисного пользователя AD}" -crypto All -ptype KRB5_NT_PRINCIPAL –out {полный путь к создаваемому keytab-файлу}
- Переписать полученный keytab файл на сервера приложений.
- Установить необходимые пакеты для работы с Kerberos.
Выполнить настройку 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
- Установить модуль на сервера приложений Apache
mod_auth_kerb
. В конфигурационных файлах 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 - Для автоматического входа через SSO по протоколу Kerberos необходимо модифицировать
формы входа портала. При загрузке форм должен выполниться запрос на
/local/kerberos
. Если пользователь прошел идентификацию и аутентификацию, то в переменнуюREMOTE_USER
придет имя пользователя, с помощью которого можно будет выполнить вход на портал.
NTLM
Если на серверах приложений используется BitrixVM, то настройка SSO по протоколу NTLM выполняется в конфигурационных файлах Apache. В случае, когда используется стороннее окружение, необходимо произвести установку и настройку модулей Apache.
Настройка NTLM подробно описана в инструкции.
Microsoft рекомендует отказаться от протокола NTLM и не использовать его для удаленной аутентификации пользователей.