В облако на работу: Все варианты авторизации ОС сервером 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    18619    24    70    

39

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

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

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

13.03.2024    609    doctor_it    6    

0

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

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

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

25.02.2024    2263    capitan    0    

6

Тестовый кластер 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    1591    janerev1956    7    

18

Бесплатный митап “1С в облаке: возможности и риски, решения и кейсы”

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

На митапе говорили о переносе 1С в облако: какие решения есть на рынке, их достоинства и недостатки. На примере реальных кейсов узнали особенности перехода, сроки, бюджеты, риски и возможности. В программе митапа 5 докладов и круглый стол.

06.02.2024    2893    0    Infostart    0    

18

Из 1С в S3 и обратно. Работа с объектным хранилищем

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

В данной статье демонстрируется работа с объектным хранилищем 1С с использованием подписанных (pre-signed) ссылок. Загрузка, скачивание и удаление реализованы на "чистом" языке 1С без внешних компонент и сервисов. В качестве провайдера хранилища S3 будем использовать Яндекс.Облако

06.02.2024    4460    Sedaiko    13    

64

В облаке, как дома: Устраиваемся поудобнее. Рабочее место пользователя 1С на базе РЕД ОС (HTTPS и архивирование)

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

На прошедшем вебинаре "В облаке, как дома: Как настроить рабочее место пользователя 1С на базе РЕД ОС" мы договорились, что продолжением будет установка соединения по HTTPS и архивирование. Это финальные штрихи в настройке рабочего места. Вот и оно (продолжение) или они (штрихи), прошу под кат...

29.01.2024    791    capitan    5    

6

Определение длительности аудиофайла (Linux)

Linux Разное Платформа 1С v8.3 Абонемент ($m)

Пример обработки для определения длительности аудиофайла в среде Linux.

1 стартмани

12.01.2024    397    0    ErAK    2    

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