Перейти к содержанию

Установка Системы

Предварительные шаги

Для запуска необходим установленный Docker Desktop, либо Docker Engine и Docker Compose, наличие выхода в интернет.

Инструкция по установке

Для установки системы Допуск необходимо выполнить следующие шаги:

  1. В рабочей директории создать файл docker-compose.yml со следующим содержимым:

    docker-compose.yml
    version: "3.8"
    services:
      web:
        image: docker.iis-soft.ru/iisln/idm
        environment:
          - CATALINA_OPTS=
            -Dsso.url=http://localhost:8082/auth
            -Duser.language=ru
        ports:
          - "8081:8080"
        depends_on:
          - db
          - uns
        restart: unless-stopped
      sso:
        image: docker.iis-soft.ru/iisln/sso
        environment:
          - CATALINA_OPTS=
            -Duser.language=ru
        ports:
         - "8082:8080"
        depends_on:
          - web
        restart: unless-stopped
      db:
        image: postgres:17
        environment:
          POSTGRES_PASSWORD: postgres
        volumes:
          - postgres:/var/lib/postgresql/data/
        restart: unless-stopped
      uns:
        image: docker.iis-soft.ru/iisln/uns
        environment:
          - CATALINA_OPTS=
            -Ddb.url=jdbc:postgresql://uns-db:5432/postgres
            -Duser.language=ru
          - TZ=Europe/Moscow
        volumes:
          - filestorage_uns:/opt/tomcat/data/filestorage
        depends_on:
          - uns-db
        restart: unless-stopped
      uns-db:
        image: postgres:17
        environment:
          POSTGRES_PASSWORD: postgres
        volumes:
          - postgres_uns:/var/lib/postgresql/data/
        restart: unless-stopped
    volumes:
      postgres:
      postgres_uns:
      filestorage_uns:
    
  2. По умолчанию установлен московский часовой пояс - TZ=Europe/Moscow, при необходимости его можно заменить. Список доступных часовых зон.

  3. Далее все команды выполнять от имени администратора или суперпользователя, в директории с созданным docker-compose файлом.

  4. Запустить загрузку образов и запуск контейнеров с системой Допуск:

    docker compose --project-name dopusk up -d --pull always
    
  5. После запуска перейти в браузере по адресу http://localhost:8081/idm

    Логин/пароль для входа: admin/admin

Предупреждение

Если установка проводится не на локальной машине, необходимо изменить параметр в файле:

docker-compose.yml
-Dsso.url=http://localhost:8082/auth
Где вместо localhost, указать имя удаленной машины, например:
docker-compose.yml
-Dsso.url=http://sso.local:8082/auth
А в адресной строке браузера вместо localhost указать имя удаленной машины:
http://sso.local:8081/idm

Добавление сертификатов

Если режим использования SSL предполагает startTLS, то необходимо добавить сертификат ldap-сервера:

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

  2. Нажать на кнопку Импорт, выбрать нужный сертификат, затем загрузить его в Систему, нажав на кнопку Выполнить

Примечание

Режим использования SSL необходим для настройки Директорий

Использование обратного прокси-сервера

Для корректной работы Системы за прокси-сервером, при проксировании необходимо передавать следующие заголовки:

  • Host - для передачи имени хоста сервиса, подключаемого к системе
  • X-Forwarded-For - для корректного определения IP-адреса клиента

Предупреждение

Убедитесь, что адрес клиента правильно устанавливается вашим обратным прокси-сервером через заголовок X-Forwarded-For. Если этот заголовок настроен неправильно, мошенники могут подменить этот заголовок и обмануть Систему, подменив IP-адрес клиента. Актуально, в случае настроек правил по IP-адресам клиентов, например блокировка по IP

Для примера приведён файл конфигурации nginx:

nginx.conf
http {

  proxy_set_header Host $http_host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


  # Система управления пользователями "Допуск"
  server {
    listen 443 ssl;
    server_name idm.local;
    ssl_certificate     /var/nginx/certs/idm.crt;
    ssl_certificate_key /var/nginx/certs/idm.key;

    location / {
      proxy_pass http://127.0.0.1:8081/idm/;
    }

    location /idm/ {
      proxy_pass http://127.0.0.1:8081/idm/;
    }
  }

  # SSO сервер
  server {
    listen 443 ssl;
    server_name sso.local;
    ssl_certificate     /var/nginx/certs/sso.crt;
    ssl_certificate_key /var/nginx/certs/sso.key;

    location /auth/ {
      proxy_pass http://127.0.0.1:8082/auth/;
    }
  }
}

Примечание

При использовании обратного прокси-сервера внутри docker контейнера, стоит учитывать особенности сети docker. Так контейнер с обратным прокси-сервером, запущенным в режиме сети bridge, при проксировании будет передавать адрес шлюза этой сети, вместо реального IP-адреса клиента