Похожая статья уже была на Хабре, но у меня появилась задача авторизировать пользователей из разных и ничем не связанных доменов.
В статье будем использовать: 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с домен прописать обязательно большими буквами.
Данное действие проделаем на нужных серверах, и на данном этапе авторизация с различных серверов будет работать.
Комментарии (8)
scruff
22.11.2022 09:52а есть пошаговый мануал как поставить 1с УТП на линукс? Авторизация наипростейшая - логин/пароль из самой 1С. Спасибо.
mactepBlack
22.11.2022 15:53поставить нужно что именно? сервер приложения, сервер БД, клиентские приложения?
УТП - это просто конфигурация.
scruff
23.11.2022 10:11Нужен и Сервер БД и сервер приложений. Сейчас у одного клиента 1С крутится на серваке где установлены обе этих роли. Сервак на ВИН. Хотелось бы перенести на Centos/Ubuntu/Deb
mactepBlack
23.11.2022 10:35если у клиента есть активная подписка ИТС (а она по идее должна быть, если 1С куплена) - все мануалы есть на https://its.1c.ru/
если ИТС нет - в свободном доступе можно найти кучу мануалов различного качества, например подробнейший мануал Установка серверной части 1С в Linux среде от раруса.
mactepBlack
22.11.2022 15:57а есть что нибудь на тему доменной авторизации при работе веб-клиента? кроме информации на ИТС.
Lost_Alaska Автор
22.11.2022 19:48Как раз сейчас тоже занимаюсь этим вопросом, конкретно если через iis сервер работает, то там проблем нет, а вот apache не хочет.
nikweter
Хм, интересно. У меня домен freeipa с доверием с доменом АД. По кейтаб от ипы 1с видит оба домена, но под пользователями АД не заходит ни в какую. Надо попробовать подсунуть ей дополнительный кейтаб, что-то мне это в голову даже не пришло.