Похожая статья уже была на Хабре, но у меня появилась задача авторизировать пользователей из разных и ничем не связанных доменов.

В статье будем использовать: 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)


  1. nikweter
    22.11.2022 08:46

    Хм, интересно. У меня домен freeipa с доверием с доменом АД. По кейтаб от ипы 1с видит оба домена, но под пользователями АД не заходит ни в какую. Надо попробовать подсунуть ей дополнительный кейтаб, что-то мне это в голову даже не пришло.


  1. scruff
    22.11.2022 09:52

    а есть пошаговый мануал как поставить 1с УТП на линукс? Авторизация наипростейшая - логин/пароль из самой 1С. Спасибо.


    1. mactepBlack
      22.11.2022 15:53

      поставить нужно что именно? сервер приложения, сервер БД, клиентские приложения?

      УТП - это просто конфигурация.


      1. scruff
        23.11.2022 10:11

        Нужен и Сервер БД и сервер приложений. Сейчас у одного клиента 1С крутится на серваке где установлены обе этих роли. Сервак на ВИН. Хотелось бы перенести на Centos/Ubuntu/Deb


        1. mactepBlack
          23.11.2022 10:35

          если у клиента есть активная подписка ИТС (а она по идее должна быть, если 1С куплена) - все мануалы есть на https://its.1c.ru/

          если ИТС нет - в свободном доступе можно найти кучу мануалов различного качества, например подробнейший мануал Установка серверной части 1С в Linux среде от раруса.


  1. mactepBlack
    22.11.2022 15:57

    а есть что нибудь на тему доменной авторизации при работе веб-клиента? кроме информации на ИТС.


    1. Lost_Alaska Автор
      22.11.2022 19:48

      Как раз сейчас тоже занимаюсь этим вопросом, конкретно если через iis сервер работает, то там проблем нет, а вот apache не хочет.


      1. mactepBlack
        22.11.2022 21:55

        да, тоже апач и тоже не работает.