Авторизация в системе 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-Server. Также можно ограничить аутентификацию только для web-редакции, настроив соответствующим образом Pilot-Web-Server, или только для desktop-редакции, задав настройки клиентских приложений.

Приоритет настроек в Pilot-Server ограничит способы аутентификации только указанными, если в клиентах разрешены все варианты или настройки не установлены.

Если в Pilot-Server стоит ограничение аутентификации одним из способов, например, Oidc, а в Pilot-Web-Server или в Desktop-приложениях установлено ограничение аутентификации другим способом, например, только с помощью имени пользователя и пароля, то пользователи не смогут пройти аутентификацию.

Ограничение способов аутентификации в Pilot-Server

Ограничение задаётся в файле настроек settings.xml. Для этого добавьте конфигурацию вида:

<AuthenticationMode>

Oidc

</AuthenticationMode>

Возможные параметры:

  • Pilot — возможна аутентификация с помощью внутренних учётных записей пользователей системы Pilot,
  • Ldap — возможна аутентификация на стороне LDAP-каталога пользователей,
  • Ad — возможна аутентификация на стороне Active Directory,
  • Oidc — возможна аутентификация на стороне провайдера идентификации,
  • PilotLdap — возможна аутентификация с помощью внутренних учетных записей и импортированных из LDAP-каталога,
  • PilotAd — возможна аутентификация с помощью внутренних учетных записей и импортированных из Active Directory,
  • PilotOidc — возможна аутентификация с помощью внутренних учетных записей и с помощью провайдера идентификации,
  • LdapOidc — возможна аутентификация на стороне LDAP-каталога и провайдера идентификации,
  • AdOidc — возможна аутентификация на стороне Active Directory и провайдера идентификации,
  • All — аутентификация возможна любым способом.

Для кластерного режима работы Pilot-Server ограничение способа аутентификации задаётся в режиме конфигурирования с помощью параметра --authMode.

Ограничение способов аутентификации в 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 есть возможность настроить способ первичной аутентификации пользователя. Для этого перейдите в расположение C:\Users\[Имя пользователя]\AppData\Roaming\ASCON\[название клиентского приложения Pilot]\Settings\Application Settings.xml. Откройте файл и после строки <UseOidc>false</UseOidc> добавьте:

<DefaultAuthTab>pilot</DefaultAuthTab> — для аутентификации с помощью учётной записи;

<DefaultAuthTab>oidc</DefaultAuthTab> — для аутентификации с помощью протокола OIDC.

Аутентификация пользователей в Desktop-редакции системы Pilot

Импорт пользователей в Pilot-myAdmin осуществляется как обычно. Следует обратить внимание, что значение поля в Pilot-myAdmin Имя пользователя должно совпадать с тем, что задано в конфигурации в параметре LoginClaim и будет получено в access token.

 

Рис. 2. Окно аутентификации в клиентском приложении Pilot.

 

Если всё правильно настроено, то, зайдя в меню клиентского приложения Pilot Учётная запись, можно будет увидеть выбор способа аутентификации OpenID Connect или Учётная запись. При выборе OpenID Connect появится кнопка Войти с помощью [Имя] — это имя было задано в конфигурации первым параметром Name. Выход также осуществляется с помощью провайдера идентификации в меню Учётная запись.

Аутентификация пользователей в Web-редакции системы Pilot

Рис. 2. Окно аутентификации.

Если правильно настроена аутентификация по протоколу OIDC и не установлено ограничения на способы аутентификации, то окно входа в ПО Pilot предложит пользователю выбор: войти с помощью пары имя пользователя/пароль или войти с помощью провайдера идентификации.

Для входа с помощью провайдера идентификации появится кнопка Войти с помощью [Имя] — это имя было задано в конфигурации первым параметром Name.

Чтобы пользоваться входом c помощью протокола OIDC, пользователи должны быть импортированы из LDAP как в провайдер идентификации, так и в ПО Pilot. Импорт пользователей из LDAP в Pilot-myAdmin осуществляется как обычно. Следует обратить внимание, что значение поля в Pilot-myAdmin Имя пользователя должно совпадать с тем, что задано в конфигурации в параметре LoginClaim и будет получено в access token.