SSO
Аутентификация пользователей по технологии единого входа
НАЗНАЧЕНИЕ
Продукт «Аутентификация пользователей по технологии единого входа (SSO)» – это единый центр управления доступом, который содержит унифицированный механизм аутентификации пользователей с поддержкой технологии единого входа.
Продукт предназначен для обеспечения безопасности внутреннего контура от внешних угроз и контроля доступа пользователей.
SSO предоставляет публичные программные интерфейсы:
- REST API;
- сообщения MBUS;
- AMQP API.
SSO предоставляет графический пользовательский интерфейс для управления данными.
АРХИТЕКТУРА РЕШЕНИЯ
ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ
- Управление моделью доступа
- Управление парольными политиками пользователей и прочими административными возможностями
- Управление пользователями
- Управление приложениями (клиентами)
- Аутентификация пользователей по стандартам OAUTH2 и OIDC
- Расчёт прав пользователей
- Выдача прав пользователей
КЛЮЧЕВЫЕ ПРЕИМУЩЕСТВА
- Высокий уровень безопасности – применяется механизм аутентификации на базе токенов доступа стандартов JWT и JWS.
- Комфортная среда для абонента – при обращении к услуге или сервису абонент не вводит каждый раз логин и пароль.
- Масштабируемость – поддерживается горизонтальное масштабирование.
- Надежность – применяется балансировка нагрузки.
ОСОБЕННОСТИ ЭКСПЛУАТАЦИИ
Для эксплуатации SSO необходим следующий набор программного обеспечения:
- Операционная система Red OS 7.3;
- OpenJDK;
- СУБД PostgreSQL;
- «Сервер кэшей» (COUCHBASE);
- RabbitMQ (опционально для отправки нотификаций);
- «Шлюз доступа к API» (API_GATEWAY) – (опционально - для работы веб-интерфейса).
Для работы автоинсталлятора также потребуются:
1. Ansible 2.10.7;
2. Jinja2 2.11.3;
3. Python 3.6 с пакетами:
- jmespath 0.9.3;
- lxml 4.2.5;
- kazoo 2.5.0;
- pywinrm 0.3.0;
- natsort 6.0.0;
- PyYAML 5.4.1.
УСТАНОВКА
Подготовьте дистрибутив к локальной установке.
Скачайте и распакуйте дистрибутив продукта.
Создайте схему развертывания.
В каталоге дистрибутива install/inventory/localhost содержится пример с настройками схемы развёртывания.
В каталоге дистрибутива install/inventory/default содержатся настройки компонентов по-умолчанию.
Чтобы создать собственную схему развёртывания, создайте копию каталога localhost и переименуйте её (например, staging).
Настройте общие параметры.
При необходимости переопределите нужные настройки компонентов и настройки конфигурации в файлах install/inventory/localhost/group_vars/sso/*.yml
Подробнее о настройках inventory см. документацию Ansible.
Настройте хосты.
Настройте хосты сервера, на котором устанавливается продукт, и опишите группы серверов схемы развертывания в файле install/inventory/localhost/1-isem-sso.yml.
В каждой группе укажите серверы, на которые необходимо выполнить установку компонентов продукта, и параметры соединения с ними в формате: alias, имя серверной машины ansible_host и метод подключения ansible_connection.
Пример:
# deploy на удаленную машину
ansible_connection=ssh
ansible_host=<адрес удаленной машины>
# Либо deploy на localhost
ansible_connection=local
ansible_host=localhost
Файл install/inventory/localhost/1-isem-sso.yml по умолчанию заполнен параметрами для локальной установки и в минимальной конфигурации. Нельзя изменять названия существующих групп. Можно добавлять новые хосты, новые группы и наследования.
Выполните конфигурацию продукта.
Конфигурация продукта задается в файлах:
- install/inventory/localhost/group_vars/*.yml;
Запустите автоинсталлятор.
Запуск комманд Ansible должен производиться из каталога install.
Общий вид команды запуска:
ansible-playbook -i inventory/default -i inventory/localhost –u <REMOTE_USER> -k sso-deploy.yml
где:
- -i <inventory/localhost> – inventory, который будет использоваться при выполнении сценария (если указать каталог, то сценарий пройдется по всем хост-файлам, находящимся в указанном каталоге);
- -u – пользователь, от имени которого Ansible будет подключаться к серверам, указанным в файле хостов в inventory;
- -k – необходимость ввода пароля пользователя, указанного в ключе -u.
При необходимости можно добавить дополнительные параметры:
- --become-user – привилегированный пользователь;
- -K – необходимость ввода пароля для привилегированного пользователя, указанного в ключе --become-user;
- -b – необходимость выполнения сценария от имени привилегированного пользователя;
- -t – перечисление тегов, которые будут выполняться в сценарии (по умолчанию используется all, то есть запуск всех тегов);
- -l – перечисление хостов или групп, по которым будет выполнен сценарий (по умолчанию сценарий будет выполнен для всех хостов);
- -v – уровень журналирования; максимальное количество v=4 (-vvvv), чем больше v, тем выше уровень журналирования;
- -e – дополнительные переменные задаются в виде key=value или YAML/JSON. Если указывается имя файла, то имя должно начинаться с @. Полный список ключей можно посмотреть в официальной документации Ansible.
Переключитесь на новую версию продукта и зафиксируйте ее.
Установленная версия принимается или финализируется отдельным шагом при запуске роли app/version/finalize. На этом шаге удаляется файл DEPLOY_UNFINISHED и создается символическая ссылка current на принятую версию.
Переключитесь на новую версию вводом команды:
ansible-playbook -i inventory/default -i inventory/localhost –u <REMOTE_USER> -k sso-deploy-finalize.yml
Если установленная версия работает корректно, ее можно зафиксировать для возможности отката на нее.
Зафиксируйте установку версии (статус новой версии продукта – успешно установлена) вводом команды:
ansible-playbook -i inventory/default -i inventory/localhost –u <REMOTE_USER> -k sso-deploy-success.yml
Стоимость продукта
Чтобы узнать стоимость продукта и детали по услугам внедрения и поддержки, свяжитесь с нами: sales@nexign.com
Полная документация по продукту
Полный пакет документации передается заказчику с дистрибутивом и содержит подробное описание функциональности, инструкции по установке продукта, детали по взаимодействию с внешним окружением и особенности эксплуатации. Свяжитесь с нами, чтобы узнать подробности: sales@nexign.com
Материалы по теме