Авторизация в системе Pilot

 

Рис. 1. Схема авторизации пользователей в системе Pilot.

 

При подключении к базе данных Pilot возможны следующие варианты аутентификации:

  1. Аутентификация по протоколу OpenID Connect с помощью identity-провадера.
  2. Аутентификация в Active Directory с именем пользователя вида domain\User name. Доступна при работе Pilot-Server на ОС Windows.
    1. Без пароля, с использованием ранее выполненной аутентификации на уровне операционной системы (ОС) клиента - технология единого входа (SSO). Для подтверждения подлинности пользователя клиентское приложение Pilot и Pilot-Server осуществляют рукопожатие — обмен билетами Kerberos, используя программный интерфейс безопасности SSPI. SSO аутентификация возможна только для текущего пользователя ОС, входящей в домен, уже авторизованного в Active Directory.
    2. С использованием пароля учётной записи пользователя в Active Directory. Может быть использовано для аутентификации пользователя, отличного от текущего авторизованного в Active Directory.
  3. Аутентификация в LDAP, с использованием пароля пользователя из службы каталогов LDAP.
  4. Аутентификация с внутренней учётной записью БД 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.