Устанавливаем Rocket.Chat на платформе Docker, настраиваем обратный прокси для HTTPS-доступа и выполняем интеграцию с Active Directory


устанавливаем Docker Engine - Community и Docker Compose, как рассказывается в этой статье

создаем папку для хранения параметров развертывания контейнеров

mkdir /etc/docker/rocketchat

создаем файл /etc/docker/rocketchat/docker-compose.yml с параметрами развертывания контейнеров

version: '3.7'
 
networks:
  net:
    ipam:
      config:
        - subnet: 192.168.102.1/24
 
volumes:
  db:
  conf:
  app:
  proxy:
 
services:
  db:
    container_name: rocketchat_db
    image: mongo:latest
    networks:
      - net
    volumes:
      - db:/data/db
      - conf:/data/configdb
    command: mongod --replSet rs0
    restart: always
 
  app:
    depends_on:
      - db
    container_name: rocketchat_app
    image: rocket.chat:latest
    networks:
      - net
    volumes:
      - app:/app/uploads
    environment:
      - PORT=3000
      - ROOT_URL=https://chat.domain.com/
      - MONGO_URL=mongodb://db/rocketchat
      - MONGO_OPLOG_URL=mongodb://db/local
    restart: always
 
  proxy:
    depends_on:
      - app
    container_name: rocketchat_proxy
    image: httpd
    networks:
      - net
    ports:
      - 80:80
      - 443:443
    volumes:
      - proxy:/usr/local/apache2
    restart: always

создаем контейнеры, разделы и сети

docker-compose -f /etc/docker/rocketchat/docker-compose.yml up --no-start

запускаем контейнер базы данных

docker container start rocketchat_db

подключаемся к контейнеру

docker exec -t -i rocketchat_db bash

запускаем интерфейс командной строки MongoDB

mongo

выполняем инициализацию набора репликации

rs.initiate({ _id : "rs0", members: [{ _id: 0, host: "localhost:27017" }] })

проверяем параметры и статус репликации

rs.conf()
rs.status()

выходим из интерфейса командной строки MongoDB

exit

отключаемся от контейнера базы данных

exit

запускаем контейнер приложения

docker container start rocketchat_app

запускаем контейнер прокси

docker container start rocketchat_proxy

настраиваем Apache контейнера прокси так же, как в этой статье, за исключением следующего:

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so 

<VirtualHost *:80>
  Redirect permanent / https://chat.domain.com/
</VirtualHost>
 
<VirtualHost *:443>
  SSLEngine on
  SSLCertificateKeyFile /usr/local/apache2/conf/private.key
  SSLCertificateFile /usr/local/apache2/conf/public.cer
  SSLCertificateChainFile /usr/local/apache2/conf/chain.cer
  RewriteEngine On
  RewriteCond %{HTTP:Upgrade} =websocket [NC]
  RewriteRule /(.*) ws://app:3000/$1 [P,L]
  RewriteCond %{HTTP:Upgrade} !=websocket [NC]
  RewriteRule /(.*) http://app:3000/$1 [P,L]
  ProxyPassReverse / http://app:3000/
</VirtualHost>

проходим в браузере по ссылке https://chat.domain.com

в разделе "Администрирование - Настройки - Протокол LDAP" выполняем настройку интеграции с Active Directory

основные

    включить LDAP - да
    резервная авторизация - да (иначе авторизация под локальным администратором будет невозможна)
    найти пользователя после входа в систему - да
    хост - dc.domain.local
    ldap-порт - 389
    переподключение - да
    шифрование - без шифрования
    base DN - cn=users,dc=domain,dc=local

аутентификация

    включить - да
    user DN - cn=rocketchat,cn=users,dc=domain,dc=local
    пароль - ...

синхронизация/импорт

    поле "Имя пользователя" - sAMAccountName
    поле уникального идентификатора - objectGUID
    домен по умолчанию - не указан
    объединить существующих пользователей - да
    синхронизация пользовательских данных - да
    карта пользовательских данных - {"displayName":"name", "mail":"email"}
    синхронизация групп - нет
    синхронизация пользовательских аватаров - да
    фоновая синхронизация - да
    интервал фоновой синхронизации - every 8 hours
    фоновая синхронизация импортирует новых пользователей - да
    Фоновая синхронизация обновляет сущестующих пользователей - да

поиск пользователей

    фильтр - (&(objectclass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(memberOf:1.2.840.113556.1.4.1941:=cn=пользователи rocket.chat,cn=users,dc=domain,dc=local))
    область - sub
    поле поиска - sAMAccountName

замечание: для успешного импорта пользователей соответствующие учетные записи Active Directory должны включать атрибут mail

включаем использование для отображения имен пользователей атрибута displayName (вместо sAMAccountName)

внешний вид - пользовательский интерфейс - использовать настоящее имя - да

включаем поддержку кириллицы в названиях каналов

общие настройки - UTF8 - проверка имен UTF8 - добавляем диапазоны символов А-Яа-я

выполняем тихую установку клиентов использую параметры установщика /S /allusers /disableAutoUpdates

Добавить комментарий