Настройка Центра Авторизации
Для настройки Центра Авторизации необходимо открыть файл serenity.cfg.json в корне Serenity.
Строки, представленные ниже, описывают типы аутентификации, для каждого из которых указывается класс, наименование базы данных, хост, логин и пароль. Для Ldap аутентификации указывается адрес сервера, через который будет происходить аутентификация.
"TestAuth": { //Вasic Authentication "class": "serenityImpl.SerenityTicketsProvider", "db_conn_string": "dbname= host=127.0.0.1 port=5430 user= password=" }, "CertAuth": { "class": "clientLoginCertAuthImpl.ClientLoginCertAuthTicketsProvider" }, "DigestAuth": { "class": "authentication.digest_auth.tickets_provider.DigestTicketsProvider", "db_conn_string": "dbname= host=127.0.0.1 port=5430 user= password=" }, "LdapAuth": { "class": "authentication.ldap_auth.tickets_provider.LDAPTicketsProvider", "ldap_conn_string": "ldap://192.168.10.27:389/" },
Далее следуют настройки для SSO (Технология единого входа) по протоколу Kerberos. Преимущественно используется для операционных систем Windows, основан на работе с Active Directory и Ldap серверами. Протокол Kerberos необходим для авторизации в системе, в частности на Центр Авторизации (получать тикет) через пользователей в операционной системе. Это позволяет хранить настройки для определенных пользователей Active Directory и получать информацию по ним через Центр Авторизации.
"KerberosAuth": { "class": "authentication.kerberos_auth.tickets_provider.KerberosTicketsProvider", "db_conn_string": "dbname= host=127.0.0.1 port=5430 user= password=", "ldap_conn_string": "ldap://192.168.10.179:389", "ldap_admin": "username password", "keytab_source": "serenity-app.keytab", "ad_realm": "INTEGRA-DOMAIN.RU", "kerberos_service": "HTTP", "auto_synch_users": true, "synch_groups": ["integras"], "synch_interval": 60 },
class - класс, к которому следует обращаться
db_conn_string - строка подключения к базе данных для получения пользователей, где dbname - название базы данных, host - ip адрес сервера, port - порт базы данных, user - логин администратора базы данных, password - пароль администратора базы данных
ldap_conn_string - адрес сервера Ldap для получения из Active Directory списка пользователей и групп
ldap_admin - пользователь, от которого происходит подключение к Ldap
keytab_source - путь до файла keytab, если Serenity развернуто на операционной системе Linux. Стоит учесть, что при любом изменении Active Directory, например, добавление пользователей, keytab необходимо пересобрать.
ad_realm - имя домена Active Directory
kerberos_service - сервис протокола kerberos (по умолчанию HTTP)
auto_synch_users - автоматическая синхронизация пользователей из Active Directory в Центр Авторизации. При синхронизации пользователи из указанных ниже групп (synch_groups) будут перенесены в Центр Авторизации со следующими полями:
- фио
- логин
- пароль (по умолчанию как логин)
- телефон. По приоритету типы телефонов располагаются следующим образом: рабочий, домашний, мобильный. То есть если, указаны все 3, то будет указан рабочий. Если определены домашний и мобильный телефоны, то - домашний и т.п.
- электронная почта.
Примечание: информация о фио считается неизменяемой. Следовательно, изменения фио в Active Directory не повлечет за собой изменения фио на Центре Авторизации. Также если фио будет изменено в Центре Авторизации, то эти данные не изменятся в Active Directory. Однако изменения контактной информации (телефон, электронная почта) влечет за собой изменения в Центре Авторизации.
synch_groups - список групп, из которых проводится синхронизация пользователей. Новый пользователь автоматически добавляется в Центр Авторизации.
synch_interval - интервал опроса изменений в Active Directory в секундах
Примечание: В случае если необходимо использовать Kerberos аутентификацю, сервер должен быть запущен от пользователя администратора домена.
Следующие строки описывают доступ к провайдеру настроек.
"settingsProvider": { "class": "serenityImpl.SerenitySettingsProvider", "db_conn_string": "dbname= host=127.0.0.1 port=5430 user= password=" },
Далее указывается база для хранения системной информации.
"logger":{ "class": "logger.Logger", "db_conn_string": "dbname= host=127.0.0.1 port=5430 user= password=" },
Следующие строки предназначены для настройки запуска сервера.
"deploymentSettings": { "use_ssl": false,//использовать SSL-сертификат или нет "deployment_port": 8888,//порт, на котором запускается сервер "ticket_ttl": 24//время жизни тикета в часах, при необходимости использовать бесконечный тикет (0) }