В этой статье:
Шаг 1. Создание сертификата клиента
Шаг 2. Импорт сертификата клиента в хранилище
Шаг 3. Привязка сертификата клиента к пользователю
Двухфакторная аутентификация предназначена для повышения информационной безопасности за счёт дополнительного этапа проверки подлинности пользователя при его авторизации. В качестве первого фактора используется выбранный тип аутентификации. В качестве второго фактора используется слепок сертификата клиента, который сохраняется в «Форсайт. Аналитическая платформа».
Сертификат клиента является частью сертификата безопасности, который включает в себя набор сгенерированных сертификатов:
Корневой сертификат. Используется для генерации и подписи сертификата сервера и сертификата клиента;
Сертификат сервера. Используется веб-сервером Apache2 в ОС Linux или IIS в ОС Windows в веб-приложении;
Сертификат клиента. Используется для проверки подлинности пользователя при его авторизации и представляет собой личную цифровую подпись.
По умолчанию при успешной аутентификации пользователя будет запрашиваться привязанный сертификат клиента для входа в систему.
Примечание. Настройка двухфакторной аутентификации доступна в настольном и веб-приложении, работа которого настроена по протоколу HTTPS.
Сертификат безопасности генерируется с помощью специальных криптографических программных средств, например, OpenSSL.
Если настройка двухфакторной аутентификации выполняется для веб-приложения, то предполагается, что корневой сертификат и сертификат сервера уже сгенерированы при настройке работы веб-приложения по протоколу HTTPS.
Если настройка двухфакторной аутентификации выполняется для настольного приложения, то сгенерируйте корневой сертификат в соответствии с шагами в разделе «Настройка веб-приложения для работы через HTTPS»:
Для выполнения команд в ОС Windows перейдите в директорию с установленным OpenSSL:
cd C:\Program Files\OpenSSL-Win64
При необходимости можно изменить наименования сертификатов, закрытых ключей и сроки действия в командах, указанных ниже. В подстановке <путь до папки> используйте папку, которая предназначена для хранения сертификата безопасности.
Для создания сертификата клиента:
Сгенерируйте закрытый ключ для сертификата клиента:
openssl genrsa -out <путь до папки>\client.key 2048
Создайте запрос на подпись сертификата клиента:
openssl req -new -key <путь до папки>\client.key -out <путь до папки>\client.req
В процессе выполнения команды заполните дополнительные данные о сертификате, запрашиваемые в интерактивном режиме.
Подпишите созданный запрос корневым сертификатом и сгенерируйте сертификат клиента:
openssl x509 -req -in <путь до папки>\client.req -CA <путь до папки>\ca.cer -CAkey <путь до папки>\ca.key -set_serial 101 -days 365 -outform PEM -out <путь до папки>\client.cer
Экспортируйте сертификат клиента и закрытый ключ в сертификат в формате PKCS#12 (PFX):
openssl pkcs12 -export -inkey <путь до папки>\client.key -in <путь до папки>\client.cer -out <путь до папки>\client.pfx
В процессе выполнения команды задайте пароль для закрытого ключа. Данный пароль будет использоваться при импорте сертификата клиента в личное хранилище сертификатов в шаге 2.
Удалите сертификат клиента client.cer, закрытый ключ client.key, запрос client.req и закрытый ключ ca.key в целях безопасности:
ОС Linux:
rm /home/user/certs/client.cer /home/user/certs/client.key /home/user/certs/client.req /home/user/certs/ca.key
ОС Windows:
del c:\certs\client.cer c:\certs\client.key c:\certs\client.req c:\certs\ca.key
После выполнения действий будет создан сертификат клиента client.pfx в указанной папке.
Для импорта сертификата клиента в личное хранилище сертификатов используйте поддерживаемый браузер или средства операционной системы. Средствами операционной системы можно импортировать сертификаты в хранилища только в ОС Windows.
Рассмотрим импорт сертификатов на примере Mozilla Firefox:
Откройте настройки браузера по адресу:
about:preferences
Перейдите в раздел «Приватность и Защита».
Нажмите кнопку «Просмотр сертификатов» в подразделе «Сертификаты». После чего будет открыто окно «Управление сертификатами».
Нажмите кнопку «Импортировать» и выполните действия. После чего будет выдан стандартный диалог выбора файла.
Выберите сертификат клиента client.pfx на вкладке «Ваши сертификаты».
Введите пароль закрытого ключа, который был задан при создании сертификата клиента.
После выполнения действий сертификат клиента будет импортирован в личное хранилище сертификатов.
Сертификат клиента должен быть привязан индивидуально к каждому пользователю.
Примечание. Привязка сертификата клиента к доменному пользователю недоступна.
Для привязки сертификата к пользователю в менеджере безопасности:
Выполните одно из действий в разделе «Пользователи»:
в веб-приложении выберите пользователя;
в настольном приложении:
выберите пользователя и выполните команду контекстного меню «Свойства»;
выберите пользователя и выполните команду главного меню «Пользователь > Свойства»;
дважды щелкните по выбранному пользователю.
После выполнения одного из действий будет открыта боковая панель «Свойства» в веб-приложении и окно «Свойства пользователя» в настольном приложении.
Нажмите кнопку «Добавить», расположенную напротив поля «Сертификат», на вкладке «Общие свойства» и выберите вариант добавления сертификата клиента в раскрывающемся меню кнопки:
из файла. При выполнении команды будет открыт стандартный диалог выбора файла. Выберите файл с расширением *.cer или *.crt и нажмите кнопку «Открыть»;
из хранилища Windows. При выполнении команды будет открыт стандартный диалог выбора сертификата Windows. Выберите сертификат и нажмите кнопку «ОК».
Примечание. В веб-приложении добавление сертификата доступно только из файла.
После выполнения действий в поле «Сертификат» будет содержаться слепок выбранного сертификата клиента.
Нажмите кнопку «Сохранить» в веб-приложении или «ОК» в настольном приложении.
После выполнения действий сертификат клиента будет привязан к выбранному пользователю.
Шаги по настройке отличаются в зависимости от используемого веб-сервера и операционной системы.
Для настройки веб-сервера Apache2 в ОС Linux
Добавьте параметры 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
Перезапустите веб-сервер:
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 и выполните действия:
Откройте функцию «Параметры SSL» в разделе «IIS» двойным щелчком мыши или с помощью команды контекстного меню «Открытие функции».
Установите флажок «Требовать SSL» и переключатель «Требовать» для сертификатов клиента.
После выполнения действий при двухфакторной аутентификации для подключения к веб-сервису будет использоваться протокол HTTPS. Авторизация пользователей будет выполняться по клиентским сертификатам.
По умолчанию двухфакторная аутентификация применятся только для пользователей, к которым привязан сертификат клиента. При необходимости измените применение двухфакторной аутентификации.
Способы изменения применения двухфакторной аутентификации в веб-приложении и настольном приложении отличаются.
В веб-приложении создайте строковый параметр 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. Двухфакторная аутентификация не применяется, даже если к пользователю привязан сертификат клиента.
Для проверки двухфакторной аутентификации:
Откройте веб-приложение по протоколу HTTPS или запустите настольное приложение.
Войдите в систему в соответствии с используемым типом аутентификации.
После выполнения действий результат двухфакторной аутентификации будет зависеть от заданного применения. Если применение двухфакторной авторизации не менялось, то по умолчанию при успешной аутентификации пользователя будет запрашиваться привязанный сертификат клиента для входа в систему.
См. также: