Авторизация в системе Pilot
Рис. 1. Схема авторизации пользователей в системе Pilot.
При подключении к базе данных Pilot возможны следующие варианты аутентификации:
- Аутентификация по протоколу OpenID Connect с помощью identity-провадера.
- Аутентификация в Active Directory с именем пользователя вида domain\User name. Доступна при работе Pilot-Server на ОС Windows.
- Без пароля, с использованием ранее выполненной аутентификации на уровне операционной системы (ОС) клиента - технология единого входа (SSO). Для подтверждения подлинности пользователя клиентское приложение Pilot и Pilot-Server осуществляют рукопожатие — обмен билетами Kerberos, используя программный интерфейс безопасности SSPI. SSO аутентификация возможна только для текущего пользователя ОС, входящей в домен, уже авторизованного в Active Directory.
- С использованием пароля учётной записи пользователя в Active Directory. Может быть использовано для аутентификации пользователя, отличного от текущего авторизованного в Active Directory.
- Аутентификация в LDAP, с использованием пароля пользователя из службы каталогов LDAP.
- Аутентификация с внутренней учётной записью БД Pilot-Server. Используется пароль, заданный при добавлении пользователя в Pilot-myAdmin. Для шифрования паролей внутренних учётных записей используется алгоритм PBKDF2.
Авторизация в системе Pilot регистрируется в Журнале действий Pilot-myAdmin.
| Система Pilot не хранит информацию о паролях пользователей, содержащихся в службах каталогов LDAP и AD. |
OpenID Connect
OpenID Connect — это протокол, основанный на платформе OAuth 2.0, предоставляющий возможность аутентификации и авторизации. Для аутентификации пользователей в Pilot по OpenIDConnect используется провайдер идентификации, который предоставляет аутентификацию как сервис. Примерами таких провайдеров идентификации, поддерживающих протокол OpenID Connect, является сервис Keycloak и Blitz Identity Provider.
Ограничение способов аутентификации в Pilot-Web-Server
Для Web-редакции есть возможность задать способы аутентификации. Для этого в контейнере Pilot-Web-Server в файле настроек /App/appsettings.json необходимо настроить AuthSettings, задав одно из значений параметра AuthenticationMode:
- Oidc — аутентификация возможна только с помощью протокола OpenID Connect.
- Password — аутентификация возможна только с помощью пары "Имя пользователя - Пароль".
- All — настройка по умолчанию. Возможны оба способа аутентификации.
"AuthSettings": {
"AuthenticationMode": "All"
}
Данную настройку рекомендуется задавать при запуске контейнера с Pilot-Web-Server:
# docker run -d -p port:80 -e PilotServer:Url=address:port -e PilotServer:Database=database_name -e AuthSettings:AuthenticationMode=All --name pilot-web-server pilotdev/pilot-web-server:latest
Аутентификация пользователей в Desktop-редакции системы Pilot
Импорт пользователей в Pilot-myAdmin осуществляется как обычно. Следует обратить внимание, что значение поля в Pilot-myAdmin Имя пользователя должно совпадать с тем, что задано в конфигурации в параметре LoginClaim и будет получено в access token.
Рис. 2. Окно аутентификации в клиентском приложении Pilot.
Если всё правильно настроено, то, зайдя в меню клиентского приложения Pilot Учётная запись, можно будет увидеть выбор способа аутентификации OpenID Connect или Учётная запись. При выборе OpenID Connect появится кнопка Войти с помощью [Имя] — это имя было задано в конфигурации первым параметром Name. Выход также осуществляется с помощью провайдера идентификации в меню Учётная запись.
В системе Pilot есть возможность настроить способ первичной аутентификации пользователя. Для этого перейдите в расположение C:\Users\[Имя пользователя]\AppData\Roaming\ASCON\[название клиентского приложения Pilot]\Settings\Application Settings.xml. Откройте файл и после строки <UseOidc>false</UseOidc> добавьте:
<DefaultAuthTab>pilot</DefaultAuthTab> — для аутентификации с помощью учётной записи;
<DefaultAuthTab>oidc</DefaultAuthTab> — для аутентификации с помощью протокола OIDC.
Аутентификация пользователей в Web-редакции системы Pilot
Рис. 2. Окно аутентификации.
Если правильно настроена аутентификация по протоколу OIDC и не установлено ограничения на способы аутентификации, то окно входа в ПО Pilot предложит пользователю выбор: войти с помощью пары имя пользователя/пароль или войти с помощью провайдера идентификации.
Для входа с помощью провайдера идентификации появится кнопка Войти с помощью [Имя] — это имя было задано в конфигурации первым параметром Name.
Чтобы пользоваться входом c помощью протокола OIDC, пользователи должны быть импортированы из LDAP как в провайдер идентификации, так и в ПО Pilot. Импорт пользователей из LDAP в Pilot-myAdmin осуществляется как обычно. Следует обратить внимание, что значение поля в Pilot-myAdmin Имя пользователя должно совпадать с тем, что задано в конфигурации в параметре LoginClaim и будет получено в access token.