В этой статье:

Шаг 1. Создание сертификата клиента

Шаг 2. Импорт сертификата клиента в хранилище

Шаг 3. Привязка сертификата клиента к пользователю

Шаг 4. Настройка веб-сервера

Шаг 5. Изменение применения двухфакторной аутентификации

Шаг 6. Проверка двухфакторной аутентификации

Настройка двухфакторной аутентификации

Двухфакторная аутентификация предназначена для повышения информационной безопасности за счёт дополнительного этапа проверки подлинности пользователя при его авторизации. В качестве первого фактора используется выбранный тип аутентификации. В качестве второго фактора используется слепок сертификата клиента, который сохраняется в «Форсайт. Аналитическая платформа».

Сертификат клиента является частью сертификата безопасности, который включает в себя набор сгенерированных сертификатов:

По умолчанию при успешной аутентификации пользователя будет запрашиваться привязанный сертификат клиента для входа в систему.

Примечание. Настройка двухфакторной аутентификации доступна в настольном и веб-приложении, работа которого настроена по протоколу HTTPS.

Сертификат безопасности генерируется с помощью специальных криптографических программных средств, например, OpenSSL.

Если настройка двухфакторной аутентификации выполняется для веб-приложения, то предполагается, что корневой сертификат и сертификат сервера уже сгенерированы при настройке работы веб-приложения по протоколу HTTPS.

Если настройка двухфакторной аутентификации выполняется для настольного приложения, то сгенерируйте корневой сертификат в соответствии с шагами в разделе «Настройка веб-приложения для работы через HTTPS»:

Шаг 1. Создание сертификата клиента

Для выполнения команд в ОС Windows перейдите в директорию с установленным OpenSSL:

cd C:\Program Files\OpenSSL-Win64

При необходимости можно изменить наименования сертификатов, закрытых ключей и сроки действия в командах, указанных ниже. В подстановке <путь до папки> используйте папку, которая предназначена для хранения сертификата безопасности.

Для создания сертификата клиента:

  1. Сгенерируйте закрытый ключ для сертификата клиента:

openssl genrsa -out <путь до папки>\client.key 2048

  1. Создайте запрос на подпись сертификата клиента:

openssl req -new -key <путь до папки>\client.key -out <путь до папки>\client.req

В процессе выполнения команды заполните дополнительные данные о сертификате, запрашиваемые в интерактивном режиме.

  1. Подпишите созданный запрос корневым сертификатом и сгенерируйте сертификат клиента:

openssl x509 -req -in <путь до папки>\client.req -CA <путь до папки>\ca.cer -CAkey <путь до папки>\ca.key -set_serial 101 -days 365 -outform PEM -out <путь до папки>\client.cer

  1. Экспортируйте сертификат клиента и закрытый ключ в сертификат в формате PKCS#12 (PFX):

openssl pkcs12 -export -inkey <путь до папки>\client.key -in <путь до папки>\client.cer -out <путь до папки>\client.pfx

В процессе выполнения команды задайте пароль для закрытого ключа. Данный пароль будет использоваться при импорте сертификата клиента в личное хранилище сертификатов в шаге 2.

  1. Удалите сертификат клиента client.cer, закрытый ключ client.key, запрос client.req и закрытый ключ ca.key в целях безопасности:

rm /home/user/certs/client.cer /home/user/certs/client.key /home/user/certs/client.req /home/user/certs/ca.key

del c:\certs\client.cer c:\certs\client.key c:\certs\client.req c:\certs\ca.key

После выполнения действий будет создан сертификат клиента client.pfx в указанной папке.

Шаг 2. Импорт сертификата клиента в хранилище

Для импорта сертификата клиента в личное хранилище сертификатов используйте поддерживаемый браузер или средства операционной системы. Средствами операционной системы можно импортировать сертификаты в хранилища только в ОС Windows.

Рассмотрим импорт сертификатов на примере Mozilla Firefox:

  1. Откройте настройки браузера по адресу:

about:preferences

  1. Перейдите в раздел «Приватность и Защита».

  2. Нажмите кнопку «Просмотр сертификатов» в подразделе «Сертификаты». После чего будет открыто окно «Управление сертификатами».

  3. Нажмите кнопку «Импортировать» и выполните действия. После чего будет выдан стандартный диалог выбора файла.

  4. Выберите сертификат клиента client.pfx на вкладке «Ваши сертификаты».

  5. Введите пароль закрытого ключа, который был задан при создании сертификата клиента.

После выполнения действий сертификат клиента будет импортирован в личное хранилище сертификатов.

Шаг 3. Привязка сертификата клиента к пользователю

Сертификат клиента должен быть привязан индивидуально к каждому пользователю.

Примечание. Привязка сертификата клиента к доменному пользователю недоступна.

Для привязки сертификата к пользователю в менеджере безопасности:

  1. Выполните одно из действий в разделе «Пользователи»:

После выполнения одного из действий будет открыта боковая панель «Свойства» в веб-приложении и окно «Свойства пользователя» в настольном приложении.

  1. Нажмите кнопку «Добавить», расположенную напротив поля «Сертификат», на вкладке «Общие свойства» и выберите вариант добавления сертификата клиента в раскрывающемся меню кнопки:

Примечание. В веб-приложении добавление сертификата доступно только из файла.

После выполнения действий в поле «Сертификат» будет содержаться слепок выбранного сертификата клиента.

  1. Нажмите кнопку «Сохранить» в веб-приложении или «ОК» в настольном приложении.

После выполнения действий сертификат клиента будет привязан к выбранному пользователю.

Шаг 4. Настройка веб-сервера

Шаги по настройке отличаются в зависимости от используемого веб-сервера и операционной системы.

Для настройки веб-сервера Apache2 в ОС Linux

  1. Добавьте параметры SSL в раздел <VirtualHost> в файле:

    • /etc/apache2-fp10.x-web/sites-available/webserver.conf в Debian-подобных дистрибутивах;

    • /etc/httpd-fp10.x-web/conf.d/00-virtualhost.conf в RedHat-подобных дистрибутивах;

    • /etc/httpd2-fp10.x-web/conf/sites-enabled/000-default.conf в ALT Linux.

SSLVerifyClient require
SSLVerifyDepth 10
SSLCACertificateFile <путь до папки>/ca.cer

  1. Перезапустите веб-сервер:

    • Debian-подобные дистрибутивы:

sudo systemctl restart apache2-fp10.x-web

    • RedHat-подобные дистрибутивы:

sudo systemctl restart httpd-fp10.x-web

    • ALT Linux:

sudo systemctl restart httpd2-fp10.x-web

После выполнения действий будет настроен веб-сервер Apache2.

Для настройки веб-сервера IIS в ОС Windows откройте диспетчер служб IIS и выполните действия:

  1. Откройте функцию «Параметры SSL» в разделе «IIS» двойным щелчком мыши или с помощью команды контекстного меню «Открытие функции».

  2. Установите флажок «Требовать SSL» и переключатель «Требовать» для сертификатов клиента.

После выполнения действий при двухфакторной аутентификации для подключения к веб-сервису будет использоваться протокол HTTPS. Авторизация пользователей будет выполняться по клиентским сертификатам.

Шаг 5. Изменение применения двухфакторной аутентификации

По умолчанию двухфакторная аутентификация применятся только для пользователей, к которым привязан сертификат клиента. При необходимости измените применение двухфакторной аутентификации.

Способы изменения применения двухфакторной аутентификации в веб-приложении и настольном приложении отличаются.

В веб-приложении создайте строковый параметр Strategy_check и задайте ему значение в файле конфигурации settings.xml:

<Key Name="Manager">
  <Certificate Strategy_check="Always"/>
</Key>

Допустимые значения параметра:

  • User. По умолчанию. Двухфакторная аутентификация применяется, если к пользователю привязан сертификат клиента;

  • Always. Двухфакторная аутентификация применяется для всех пользователей. Пользователям, к которым не привязан сертификат клиента, доступ будет запрещен;

  • Never. Двухфакторная аутентификация не применяется, даже если к пользователю привязан сертификат клиента.

В настольном приложении создайте строковый параметр Strategy_check и задайте ему значение в разделе реестра [HKEY_LOCAL_MACHINE\Software\Foresight\Foresight Analytics Platform\10.0\Manager\Certificate] на локальных компьютерах всех пользователей.

Допустимые значения параметра:

  • User. По умолчанию. Двухфакторная аутентификация применяется, если к пользователю привязан сертификат клиента;

  • Always. Двухфакторная аутентификация применяется для всех пользователей. Пользователям, к которым не привязан сертификат клиента, доступ будет запрещен;

  • Never. Двухфакторная аутентификация не применяется, даже если к пользователю привязан сертификат клиента.

Шаг 6. Проверка двухфакторной аутентификации

Для проверки двухфакторной аутентификации:

  1. Откройте веб-приложение по протоколу HTTPS или запустите настольное приложение.

  2. Войдите в систему в соответствии с используемым типом аутентификации.

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

См. также:

Аутентификация в продукте