В статье будем использовать: Microsoft AD, 1c Сервер, Debian 11.
В связи с событиями в мире, появилась идея перевода всех серверов на linux, и как говорится из названия, авторизации множества пользователей из разных доменов, скажу сразу, домены находятся не в лесу и на разных площадках.
За основу беру:
srv-1cserver - целевой сервер 1с предприятия.
domain.loc - 1 домен.
master.loc - 2 домен.
office.loc - 3 домен.
На данном этапе будем считать что у нас уже функционирует сервер на нашем Debian и там есть пара баз.
Kerberos-аутентификация
На каждом сервере необходимо создать пользователя, с которым будут ассоциироваться запросы к 1с серверу.
Для простоты будем использовать пользователя в Windows usr1cv8 , в Debian usr1cv8 .
При создании пользователя, обязательно снять галочку в пункте «Use DES encryption types with this account».
Сделаем для этого пользователя секрутный ключ .keytab c помощью утилиты ktpass.
C:\>ktpass -princ usr1cv8/srv-1cserver.domain.ru@domain.loc -mapuser usr1cv8 -pass XxXxXx -out usr1cv8.keytab
После этого в корне диска С:\ у нас будет файл usr1cv8.keytab и теперь с пользователем usr1cv8 ассоциируется служба usr1cv8/srv-1cserver.domain.ru@domain.loc.
Проделаем эту процедуру на всех Windows серверах и сформированные файлы поместим в удобные папки на Debian для нас.
Дальнейшие действия тоже довольно простые, запустим уже на Debian утилиту ktutil.
И проделаем следующее:
root@srv-1cserver:~# ktutil
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
Читаем кейтаб
ktutil: rkt /opt/1cv8/x86_64/8.3.21.1393/keytab_domain.loc/usr1cv8.keytab
смотрим
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 1 HTTP/srv-1cserver.domain.ru@DOMAIN.LOC
читаем второй кейтаб
ktutil: rkt /opt/1cv8/x86_64/8.3.21.1393/keytab_master.loc/usr1cv8.keytab
смотрим
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 1 HTTP/srv-1cserver.domain.ru@DOMAIN.LOC
2 1 HTTP/srv-1cserver.domain.ru@MASTER.LOC
читаем третий кейтаб
ktutil: rkt /opt/1cv8/x86_64/8.3.21.1393/keytab_office.loc/usr1cv8.keytab
смотрим
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 1 HTTP/srv-1cserver.domain.ru@DOMAIN.LOC
2 1 HTTP/srv-1cserver.domain.ru@MASTER.LOC
3 1 HTTP/srv-1cserver.domain.ru@OFFICE.LOC
Добавилось, т.е. успешно объединили три keytab
Записываем
ktutil: wkt /etc/krb5.keytab
После этого перезапустим 1С сервер, и можно заходить в тонкий клиент и прописать настройки пользователю.
Для этого переходим в «Администрирование», слева в списке выбрать «Пользователи».
В свойствах пользователя выбрать «Аутентификация операционной системы» и в поле «Пользователь» прописать \\MASTER.LOC\e.ivanov
В 1С домен прописать обязательно большими буквами.
Данное действие проделаем на нужных серверах, и на данном этапе авторизация с различных серверов будет работать.