Настройка Центра Авторизации
Для настройки Центра Авторизации необходимо открыть файл 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)
}