Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Данный способ интеграции основан на запуске отдельного сервиса, который занимается маршрутизацией запросом запросов от WNAM ко внутренним компонентам или системы WNAM к серверам доменам. При его использовании вам не понадобится настраивать потребуется ручная настройка nginx, samba или другие инструменты. После установки работой с конфигурационными файлами займется сам сервис. Он других инструментов. Сервис написан на языке python3 и требует для своей работы ряда библиотек (преимущественно поддержки протокола LDAP). Его работа в режиме веб-сервиса обеспечивается инструментарием flask. Внимание: вы можете

Warning
Можно настроить взаимодействие

...

системы авторизации WNAM с доменом аналогично как на

...

самом сервере,

...

на котором работает ПО WNAM,

...

так и на любом другом соседнем Linux-сервере.

...

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

 

Image AddedImage Removed


Info

Для сервера, не имеющего выхода в Интернет, существует вариант автоматической оффлайн-инсталляции, при котором все *.deb и python-пакеты ставятся устанавливаются из заранее подготовленного архива.

Последующие обновления actool можно производить скриптом https://www.netams.com/files/wnam/misc/upgrade-adctool.sh

Необходимо установить следующий набор пакетов:

apt
install python3
 install python3-flask python3-dnspython python3-ldap3 python3-pyasn1 python3-pyasn1-modules python3-six python3-gssapi krb5-user libkrb5-dev python3-pycryptodome winbind python3-apscheduler sudo libcurl4-nss-dev python3-cryptography libgpgme-dev python3-dotenv python3-apt python3-pip 

Затем запросите запросить и получите получить у нашей службы техподдержки компании Netams интеграционный модуль, он который поставляется в виде архива. Распакуйте, и распаковать его:

mkdir -p /home/wnam/adctool/logs
tar zxvf adctool.tgz -C /home/wnam
chown -R wnam:wnam /home/wnam/adctool
cd /home/wnam/adctool
pip3 install -r requirements.txt

Задайте Задать права на нужные файлы:

cat > /etc/sudoers.d/wnam << SUDO
wnam ALL = NOPASSWD: /usr/bin/net
wnam ALL = NOPASSWD: /usr/bin/wbinfo
wnam ALL = NOPASSWD: /usr/bin/systemctl
wnam ALL = NOPASSWD: /usr/bin/mv
wnam ALL = NOPASSWD: /usr/bin/ntlm_auth
SUDO
chmod +x /home/wnam/adctool/*.py
chmod a+s /usr/bin/wbinfo 
chmod a+s /usr/bin/ntlm_auth
chown wnam /etc/samba/smb.conf

Создайте Создать systemd-скрипт для нового сервиса:

cat > /etc/systemd/system/adctool.service << EOF
[Unit]
Description="WNAM Active Directory tools service"
After=network.target
[Service]
WorkingDirectory=/home/wnam/adctool
ExecStart=/usr/bin/flask run
Restart=on-failure
SuccessExitStatus=143
RestartSec=10
User=wnam
Group=wnam
StandardOutput=append:/home/wnam/adctool/logs/application.log
StandardError=append:/home/wnam/adctool/logs/console.log
[Install]
WantedBy=multi-user.target
EOF

ПосмотритеСоздать, и возможно отредактируйте отредактировать при необходимости конфигурационный файл /home/wnam/adctool/.flaskenv:

FLASK_APP=ad_tools.py
FLASK_RUN_HOST=0.0.0.0 # можно убрать по завершению тестов
FLASK_RUN_PORT=9080
FLASK_DEBUG=
True #
True # можно убрать по завершению
тестов 
 тестов 

ПосмотритеСоздать, и возможно отредактируйте отредактировать при необходимости конфигурационный файл /home/wnam/adctool/config.json:

{
"kcache_refresh": 3600,
"root_path": "/home/wnam/adctool"
}

Включите Включить сервис , и запустите запустить его:

systemctl enable adctool
systemctl start adctool

Посмотрите в В лог-файле /home/wnam/adctool/logs/console.log следует проверить результат запуска сервиса , нет ли явных ошибок.на предмет ошибок.

Затем необходимо проверить, открывается ли тестовый интерфейс этого инструмента. Тестовый интерфейс доступен по адресу http://адрес_сервера:9080/. В корректном режиме работы он должен показывать список тестовых ссылок, которые отображают статус взаимодействия с контроллерами доменов, позволяют получить список групп, пройти проверку прав пользователя и т.п. (можно поменять имена доменов и учетных записей в URL). В продуктивном режиме следует отключить такой тестовый доступ (указать в директории /home/wnam/adctool/.flaskenv параметр FLASK_RUN_HOST=127.0.0.1).

Если тестовый интерфейс отображает ошибку, например, сообщения типа:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/cli.py", line 330, in __call__
...
ImportError: cannot import name 'SAFE_RESTARTABLE' from 'ldap3' (/usr/lib/python3/dist-packages/ldap3/__init__.py)

Это означает, что модули Python не установились как следует. Необходимо заменить в файле /etc/systemd/system/adctool.service параметр:

ExecStart=/usr/bin/flask run

на

ExecStart=/usr/local/bin/flask run

и далее выполнить команду:

systemctl daemon-reload && systemctl restart adctool

Когда интеграционный модуль будет работать корректно, следует перейти в административный интерфейс системы WNAM в раздел "Конфигурация" → "Службы каталогов". Окно отобразит следующие данныеПерейдите в административный интерфейс WNAM, в раздел "Конфигурация - Корпоративная авторизация - Службы Active Directory - NEW". Вы увидите окно, которое показывает:

  • Статус взаимодействия с интеграционной службой adctool , с возможностью отправки команды на её перезапуск.
  • Список подключенных доменов , с информацией:
    • Название название домена, имя контроллера домена
    • Типы и статус интеграционных сервисов (LDAP и NTLM-коннекторы)
    • ;
    • число Число доменных групп, найденных и отмеченных к дальнейшему использованию в профилях аутентификации

Image Removed

При нажатии на кнопку "Подключить новый домен" откроется окно с вводом параметров:

Image Removed

Внимание! Укажите верные учетные данные администратора, который будет подключать сервер WNAM к домену (желательно с ролью доменного администратора).

Эти учетные данные используются один раз, и не будут сохранены.

В результате подключения сервер WNAM будет введен в домен, как обычная работая станция, два раза:

  • Под именем сервера, например WNAM-15, для целей NTLM-взаимодействия (используя samba/winbind)
  • Под именем сервера с постфиксом "-ADC", например WNAM-15-ADC, для целей LDAP-взаимодействия (используя python/ldap3)

Внимание! Для корректной работы LDAP-подключения необходимо, чтобы ваш контроллер домена поддерживал TLS-соединение по протоколу LDAP. Для этого обратитесь к документации вендора майкрософт.

Внимание! В настоящий момент поддерживается только одно (первое) NTLM подключение, и несколько одновременных LDAP. Это связано с особенностью сборки пакета winbind, имеющегося в Linux-дистрибутивах. Он не позволяет работать одновременно с несколькими доменами без дополнительных ухищрений. Данная ситуация планируется к исправлению в 2023 году.

Внимание! Оба механизма взаимодействия используют надежную авторизацию, основанную на автоматически обновляемых KERBEROS-тикетах. При проведении запросов к контроллеру домена применяется машинная авторизация вашего WNAM сервера, и не используются никакие служебные пользовательские учетные записи.

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

Клик на строку открывает окно с информацией о группах домена, и различных действиях с ним:

Image Removed

Вы можете загрузить список групп домена по кнопке "Обновить список групп", причем для больших доменов можно воспользоваться фильтром:

Image Removed

В полученном списке вы можете отметить интересующие вас группы чекбоксами, и сохранить его. Отмеченные группы появляются в окнах выбора групп в, например, профилях аутентификации.

Также вы можете загрузить список атрибутов LDAP-объекта типа "Пользователь", для чего воспользуйтесь вкладкой "Атрибуты" и кнопкой "Получить...":

Image Removed

Загрузив список атрибутов, отметьте желаемые чекбоксами, и сохраните:

Image Removed

Вы также можете проверить механизм авторизации учетной записи по одному или другому протоколу, с использованием пары "логин-пароль":

Image Removed

...

    • .
    • название хоста, применяемого для коннектора, типы и статус интеграционных сервисов (LDAPSи NTLM-коннекторы), имя контроллера домена. цвет плашки:
      • зеленый статус: всё ОК
      • красный статус: коннектор не может получить корректную информацию (не сработал join к домену, или он развалился)
      • серый статус: ADCTool не успел получить ответ от коннектора за тайм-аут 5 секунд; вероятны сетевые или DNS проблемы

Image Added

Продолжить настройку, подключив вашу систему к службам каталога:

  • Active Directory. Допустимо создать несколько коннекторов к разным доменам Active Directory, но для EAP_PEAP-авторизации (через механизм NTLM) работает только один коннектор.
  • FreeIPA. Допустимо создать несколько коннекторов к разным доменам FreeIPA, и для EAP_PEAP-авторизации работают все коннекторы, где включена функция принудительного хранения хэша пароля в каталоге.