В облако на работу: Все варианты авторизации ОС сервером 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С и вы будете жить с ним долго и счастливо, пока обновление не разлучит вас.

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

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

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

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

 

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

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

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

 

См. также

Интеграция 1С с облаком S3 (Amazon, Yandex Object Storage, Ceph Object Gateway S3, MinIO и др.)

Облачные сервисы, хостинг Программист 8.3.14 Конфигурации 1cv8 Россия Платные (руб)

Готовое решение по интеграции 1С с хранилищем S3 (Amazon, Yandex Object Storage, Ceph Object Gateway S3, MinIO и любое совместимое объектное хранилище). Решение даёт возможность осуществлять как основные операции (получить список, закачать, скачать, удалить и т.д.), так и расширенные (работа с бакетами, генерация ссылок, работа с правами и т.д.) с объектным хранилищем S3 прямо из 1С.

31200 руб.

27.04.2021    18855    24    70    

39

Виртуальная АТС Ростелеком - интеграция с 1С

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

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

12000 руб.

04.02.2021    19469    18    0    

25

В облако на работу: Архивирование postgres. Дайте два

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

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

27.05.2024    572    capitan    6    

7

Жизнь программиста 1С на Линукс, это возможно?

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

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

16.05.2024    2937    soulner    31    

33

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

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

В одном из лучших руководств администраторов "UNIX and Linux System Administration Handbook, © 2018 Pearson Education lnc." описывается такой метод настройки систем: "Копируй, вставляй, молись". Какой бы ни была подробной инструкция и на какой бы типовой системе она ни составлялась, всегда что-то может пойти не так. В этой публикации рассмотрим, как искать и устранять ошибки авторизации ОС сервером 1С на базе linux.

02.05.2024    766    capitan    0    

11

Готовое облако или выделенный сервер? Экономика владения 1С

Облачные сервисы, хостинг Бесплатно (free)

Если вы работаете с 1С, то, скорее всего, используете для этого собственный сервер. Это решение дает больше гибкости: железо всегда под рукой, в любой момент можно поменять конфигурацию или установить дополнительное ПО. Например, чтобы организовать бухгалтеру удаленный рабочий стол. Но насколько этот вариант экономически выгоден для компании? Мы сравнили три варианта развертывания 1С: на собственном сервере, на арендованном в Selectel и в готовом облаке. Какие есть преимущества и недостатки у каждого варианта и что выгоднее — разбираем в статье.

13.03.2024    719    doctor_it    6    

0

Три пингвина под окном… Точки над Ё. Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux

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

Прошлая публикация "Три пингвина под окном… Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux" набрала более 20К просмотров. В моем случае это абсолютный рекорд. Как и обещал в ней, рассказываю, как установить неподдерживаемый дистрибутив ОС у облачного провайдера.

25.02.2024    2415    capitan    0    

7

Тестовый кластер 1С на UBUNTU 23.10

Linux Системный администратор Платформа 1С v8.3 Россия Абонемент ($m)

Описан процесс создания простого кластера 1С в связке: отдельный сервер UBUNTU версия 23.10 + сервер 1С версия 8.3.23.1997 + PostgreSQL версия 15. Автор не претендует на новизну решения, но пошаговая упорядоченная инструкция позволяет стандартными методами быстро и просто создать кластер 1С на серверах Linux.

1 стартмани

08.02.2024    1876    janerev1956    7    

19
Оставьте свое сообщение