В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Рецепты от Капитана

18.03.24

Интеграция - Облачные сервисы, хостинг

В публикации рассматриваются все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Как случаи, когда сервер 1С авторизирует веб и обычных клиентов 1С в active directory, так и когда сам сервер является клиентом, например при HTTP запросах выполняемых сервером 1С.

 

Путь в тысячу ли начинается с первого шага.
©Лао-цзы

 

Когда публиковались первые статьи серии "Три пингвина под окном…", проходившие мимо админы делали грустную мину и рассказывали, как непосильно тяжело будет при переходе с обычной рабочей группы на серверах РедОС в домен active directory.

 

 

Масла в огонь подлило выступление на IE 2023 спикеров из Авито, как им даже в паре с 1С РКЛ не удалось настроить доменную авторизацию 1С апача на линуксе.

 

 

С такими исходными данными мы выступаем в поход за авторизацию ОС сервером 1С (и сервера 1С) в смешанном домене windows (linux & windows рабочие станции).

Ингредиенты:


 

  • Контроллер домена, сервер Windows 2012 R2, домен AD уровня Windows 2012. dc.test.loc
  • Рабочая станция Windows 10. win-cln01.test.loc
  • Рабочая станция РедОС 8. red8-cln01.test.loc
  • Сервер 1С РедОС 8 настроенный. red8-srv.test.loc
  • Сервер 1С РедОС 8 настраиваемый. red-srv.test.loc
  • Postgres 16 от PostgresPro
  • 1С Предприятие 64-х 8.3.24.1467
  • все в домене test.loc. 
    Пользователь, от которого работает сервер 1С usr1cv83, пароли у всех 123456.
    Все эти значения произвольные и должны в скриптах быть заменены на ваши.
    Имя домена *.local не рекомендуют коллеги РедОС.
  • все по железу 4ГБ RAM 50ГБ SSD 2 Ядра CPU
  • все развернуто в облаке из оригинальных iso образов производителей для чистоты эксперимента.
    Благодарю компанию ©Serverspace за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.
    Хорошо, что у локального офиса международного облачного провайдера остался питерский, а возможно петровский, дух покровительства знаниям и наукам.

По поводу РедОС 8 и Postgres 16. В продуктовой среде на них рано переходить, но в тестовой, хочется попробовать все новинки, этим обусловлен такой выбор.
Чтобы заработала 1С в РедОС 8 достаточно одной строки bash, для аккуратных двух

 

Кроме того, что под капотом (новое ядро, новые сборки пакетов) РедОС 8 включает в себя возможность пользователю выбрать самому где у него будет кнопка Пуск находиться или выбрать интерфейс в стиле Mac.


 

Результат:

 

  • прозрачная авторизация ОС для обычных клиентов 1С с рабочих станций
  • прозрачная авторизация ОС для веб-клиентов 1С с рабочих станций

  • прозрачная авторизация ОС 1С открытой в браузере
  • прозрачная авторизация ОС запросов идущих с сервера 1С, на примере обращения к веб-серверу с отключенной анонимной и включенной авторизацией windows

 

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

Для остальных приступаем.

Аперитив

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



Если вы используете FQDN (предпочтительный вариант), то везде дальше надо использовать полное имя, решили пойти коротким путем, аналогично. Смешивать не рекомендую.
Все настройки по инструкциям с сайта РедОС и 1С ИТС.

 

Аналогично, пристальное внимание нужно уделить синхронизации времени, так как это базовая часть Kerberos и такая мелочь приводит к трудно диагностируемым ошибкам.

Так же в тестовом контуре вольно отнесемся к безопасности и отключим Selinux, ошибки которые порождает он могут в самых неожиданных местах проявляться.
Как с ним жить не отключая, описано в публикации
Установка 1С:Сервера взаимодействия. Заметки на полях

 

На выходе обязательно надо получить 100% результат при 

  • nslookup dc.test.loc
  • timedatectl status либо аналогичный сервис синхронизации времени, например chronyd
    так как тестовый контур в этом плане очень нестабилен из-за постоянных перезагрузок, после которых рабочая станция в хаотичном порядке может принять время хоста, а время дорого в прямом и переносном смысле, то использовал их оба.

Ввод РЕД ОС в домен Windows

 

Здесь тоже все по инструкции с сайта производителя.
Единственный подводный камень - файл /etc/krb5.conf.d/crypto-policies который устанавливает предпочтительный вариант шифрования файла keytab в aes256-cts-hmac-sha1-96, а 1С пока хочет видеть RC4-HMAC.
Его комментируем строкой на perl.

На выходе обязательно надо получить 100% результат при выполнении команд

id usr1cv83
kinit usr1cv83

Не забываем о том, что 1С рекомендует однократно войти под логином пользователем сервера, чтобы создался его домашний каталог

Первое блюдо

Устанавливаем и настраиваем сервер 1С и postgres

 

На выходе обязательно надо получить 100% результат работающий сервер 1С и возможность подключиться к нему с клиентов, в этот же момент можно создать чистую базу 1С.

Пока устанавливается сервер идем на контроллер домена и создаем учетную запись под которой будет работать сервер 1С, почти аналогично как это было для сервера на windows. Но не совсем...
Для нее нам нужно будет создать и передать на linux файл keytab с паролем и записями для служб.
В нашем случае в финальном файле keytab будут три записи принципиалов:

  • usr1cv83 для пользователя (имя произвольное) под которым будет работать сервер 1С
  • usr1cv83/red-srv.test.loc для службы сервера 1С на конкретном компьютере, помните мы говорили про FQDN, тут надо обратить на это внимание
  • HTTP/red-srv.test.loc для службы http на конкретном компьютере
 

Передаем keytab файл на linux сервер и кладем в каталог с доступом служб сервера 1С и HTTP

Важно
В продуктивной среде этот файл нужно максимально защитить.

Важно
Для учетных записей пользователя и компьютера сервера 1С нужно установить признак делегирования Kerberos



 

Без этого магия не сработает и вы получите как раз ту самую ошибку 402 Payment Required, она связана именно с этим, а не с тем, о чем все сразу подумали.

Что касается самого пользователя usr1cv83,  UPN его не изменится, но обязательно должны добавиться SPN




 

На выходе обязательно надо получить 100% результат при выполнении команд

klist -e -k -t /1c/usr1cv83.keytab

покажет содержимое файла



kinit -k -t /1c/usr1cv83.keytab usr1cv83@TEST.LOC
аутентифицируется на сервере Kerberos используя записи keytab файла
команда не должна выдать ошибок
klist -e 
покажет полученный тикет

Правим файл конфигурации сервера 1С, указав, где находится файл keytab, и поменяв, учетную запись запускаем сервер

 

 

После этого можно в базе 1С создать пользователей с авторизацией ОС, если вы не сделали это раньше и пробовать авторизацию в обычном клиенте 1С.

 


 

Второе блюдо

Устанавливаем HTTP сервер и публикуем на нем базу

 

Из хитростей только то, что мы не портим меняем общий файл конфигурации веб-сервера, а создаем отдельный файл конфигурации для отдельной базы 1С

в него мы прописываем настройки для авторизации Kerberos

 


не забываем сам пакет mod_auth_kerb установить и перезапустить веб-сервер

dnf install mod_auth_kerb -y

systemctl restart httpd 
systemctl status httpd --no-pager -l

Если все сделано правильно, то после перезапуска сервера мы сможем войти в базу 1С как из веб-клиента 1С, так и обычного браузера.

Со всех рабочих станций


 

На РедОС надо еще настроить браузеры на прозрачную авторизацию ОС для нашего домена.

 


 

Сладкое и компот

Если вы не устали, то продолжим.

Сервер 1С сам достаточно часто является клиентом, например другого сервера 1С, поэтому нужно чтобы и его могли прозрачно авторизовать по учетной записи ОС.

Эта часть ни в какой документации не описана, поэтому подробнее.

В windows мы просто в службах прописывали учетную запись и пароль пользователя от которого работает сервер 1С.

В linux мы нигде пароль не сохраняем, единственное, что нам может помочь, это билет пользователя Kerberos.

Когда мы вводили компьютер в домен, то в файле /etc/krb5.conf указали место хранения кэша 
default_ccache_name = FILE:/tmp/krb5cc_%{uid}

Пользователь авторизуется и его билет помещается в кэш.




Пока он там, сервер 1С авторизуется как обычный пользователь на сервисах домена и все идет по плану. Мы делаем HTTP запрос &НаСервере и проходим авторизацию на веб сервере DC



Если бы не время жизни билета. Обычно оно составляет 24 часа. 

 

 

Нет билета, нет авторизации



Вариант простой, как гвоздь, раз в сутки авторизоваться с учетной записью usr1cv83.
вижу как в меня летит помидор

Не вариант.

Но у нас есть keytab файл для пользователя usr1cv83. Делаем 
kinit -k -t /1c/usr1cv83.keytab usr1cv83@TEST.LOC

сейчас билет usr1cv83 попал в кэш по id root, если мы под рутом.

Осталось узнать id usr1cv83

id -u usr1cv83

в нашем случае это 149401151 и сделать
mv /tmp/krb5cc_0 /tmp/krb5cc_149401151
chown -R usr1cv83:grp1cv8 /tmp/krb5cc_149401151

Заносим эти строки в скрипт и запускаем его чуть чаще, чем время жизни билета.

Все. Обед готов.

Ничего особо сложного.

Варите свой сервер по данному рецепту, у вас не будет проблем с авторизацией ОС 1С и вы будете жить с ним долго и счастливо, пока обновление не разлучит вас.

В планах написать продолжение, в котором расставить точки над ё рассказать, как отлаживать эту систему на этапе настройки, какие могут быть ошибки и как они проявляются.

Будет интересно, вы знаете, что сделать.

Найдете ошибки, вы знаете, где меня искать.

Ошибки есть у всех, в планах сделать публикацию(и) из серии "Разрушители легенд", где поразбирать ошибки других публикаций)

 

Статья продолжает серию публикаций:

Серия "Рецепты от Капитана" на всякий случай

Также на всякий случай полный листинг установки

 

См. также

Телефония, SIP Облачные сервисы, хостинг Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Продукт интеграции возможностей Виртуальной АТС Ростелеком в систему 1С Предприятие 8. Звонки прямо из программы 1С, уведомления о текущих звонках, регистрация пропущенных и завершенных вызовов, динамическая маршрутизация входящих звонков, ведение журнала, анализ использования связи.

12000 руб.

04.02.2021    19981    22    0    

26

Управление взаимоотношениями с клиентами (CRM) Телефония, SIP Облачные сервисы, хостинг Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Продукт интеграции возможностей Облачной АТС Билайн в систему 1С Предприятие 8. Звонки прямо из программы 1С, уведомления о текущих звонках, регистрация пропущенных и завершенных вызовов, ведение журнала, анализ данных об использовании мобильной связи.

12000 руб.

20.03.2019    22678    53    0    

36

Linux Системный администратор Программист Стажер Платформа 1С v8.3 Россия Бесплатно (free)

1C > Postgres > (Linux) > мы (=проблемы в 2024). Информация будет полезна начинающим 1С программистам (и сисадминам). Без ИТС. Часть 1.

01.07.2024    2126    AlOkt    28    

17

Сканер штрих-кода Linux Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Драйвер сканера штрих-кодов в 1С выполнен по технологии NativeAPI, следовательно, поддерживается возможность работы в Linux, но сама настройка оказалось не такой простой, как в Windows, понадобились навыки администрирования linux. В данной публикации представлен опыт установки сканера Mercury CL-2200 P2D BT в ALT Linux.

18.06.2024    532    MOleg82    0    

8

Облачные сервисы, хостинг Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана" в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая прочая... Это основное блюдо, на закуску разберемся с отказоустойчивостью. В этой публикации для PostgreSQL, заодно попробуем сделать это по новому.

17.06.2024    6291    capitan    18    

39

Сервера Linux Системный администратор Россия Бесплатно (free)

Тема Ubuntu, PostgreSQL и 1С уже избитая. Но все же, следуя инструкциям всех мануалов, пришлось потратить около 3-х дней. И как результат — готовые скрипты для установки сервера 1С и PostgreSQL на свежей Ubuntu за 5 минут.

14.06.2024    1827    user1389975    10    

32

Облачные сервисы, хостинг Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

В прошлых публикациях мы, не торопясь, после настройки персонального рабочего места на РедОС 7.3, посмотрели РедОС 8 и почти полностью собрали рабочую сеть 1С на отечественной ОС подходящую для работы среднего размера компании. С веб-серверами, доменной авторизацией и прочая прочая... Осталось настроить регулярное архивирование, чтобы не потерять нажитое.

27.05.2024    1037    capitan    6    

9

О жизни Linux Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Использование Linux в качестве основной ОС для программиста 1С, возможно ли это? Решил поделиться личным опытом работы перехода на эту систему. В статье моя история без технических деталей максимально простым языком. И, спойлер, да, жизнь на Линуксе для разработчика 1С возможна и с каждым годом становится всё комфортней. Статья рассчитана на людей, с Линуксом не знакомых, специалистов прошу не кидаться помидорами.

16.05.2024    4310    soulner    32    

43
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1772139 22.07.24 09:38 Сейчас в теме
Огромное спасибо за проделанную работу! Мучались 2 месяца, пока не наткнулись на данную статью! Всё просто и понятно, по шагам и с возможностью проконтролировать результат на каждом значимом шаге!
Оставьте свое сообщение