- Авторизация Active Directory на Linux сервере 1С
- Результат
- Сервер «1С: Предприятие» на Linux: настройка доменной авторизации из различных доменов
- Новые возможности для аутентификации пользователей 1С в среде Linux
- Аутентификация средствами ОС для Linux-клиентов
- В каких случаях могут быть полезны новые возможности технологической платформы
Авторизация Active Directory на Linux сервере 1С
В 1С у пользователей есть возможность авторизоваться не только с помощью пароля, но и пользователем операционной системы. Это повышает управляемость и доступность системы, так как пользователь, авторизовавшись в операционной системе, может просто открыть 1С и база откроется от его имени без ввода дополнительных паролей. Это также повышает общую безопасность системы, так как не остается учетных записей, для которых не установлен пароль или установлен не надежный. В организации роль глобального каталога пользователей, как правило, выполняет контроллер домена. Как правило, применяются доменные службы Active Directory под управлением Windows. Для работы с пользователями в такой среде с Linux сервером 1С необходимо выполнить ряд манипуляций, чтобы к пользователям баз 1с, размещенным на нем, могла применяться сквозная авторизация (Single-Sign-On).
Для работы сервера в такой среде потребуется сделать всего несколько дел, при этом вводить сервер в домен не обязательно, нужно только вручную добавить статическую запись DNS в доменной зоне, чтобы сервер мог правильно пинговаться. Также следует заранее позаботиться о синхронности времени на сервере 1С и контроллере домена. Далее необходимо настроить домен поиска и сервера имен в файле resolv.conf:
domain example.com search example.com nameserver MY_NS_IP
Далее необходимо выполнить ряд действий на контроллере домена. Необходимо создать на контроллере домена учетную запись, имя которой совпадает с именем учетной записи сервера 1С. Как правило, это usr1cv8. Затем на контроллере домена необходимо создать файл с секретным ключом:
ktpass -princ usr1cv8/ИМЯ_СЕРВЕРА.example.com@EXAMPLE.COM -mapuser usr1cv8 -pass ПАРОЛЬ_СОЗДАННОГО_ПОЛЬЗОВАТЕЛЯ -out usr1cv8.keytab
В результате создастся файл usr1cv8.keytab в текущей директории, а c пользователем usr1cv8 будет ассоциировано имя участника службы usr1cv81/ИМЯ_СЕРВЕРА.example.com@EXAMPLE.COM. Его необходимо разместить на сервере 1С в каталоге /opt/1C/v8.3/x86_64/ и задать соответствующие права:
chown usr1cv8:grp1cv8 usr1cv8.keytab chmod 600 usr1cv8.keytab
На сервере 1С необходимо установить и настроить Kerberos для авторизации в домене. Установка выполняется командой apt install krb5-user (apt или не apt зависит от используемой операционной системы). Далее его необходимо сконфигурировать. В общем случае конфиг выглядит следующим образом:
[logging] default = FILE:/var/log/krb5libs.log default = SYSLOG:DEBUG:DAEMON kdc = FILE:/var/log/krb5kdc.log kdc = SYSLOG:DEBUG:DAEMON admin_server = FILE:/var/log/kadmind.log admin_server = SYSLOG:DEBUG:DAEMON [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = false default_tkt_enctypes = rc4-hmac default_tgs_enctypes = rc4-hmac krb4_config = /etc/krb.conf krb4_realms = /etc/krb.realms kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true v4_instance_resolve = false v4_name_convert = < host = < rcmd = host ftp = ftp >plain = < something = something-else >> fcc-mit-ticketflags = true [realms] EXAMPLE.COM = < kdc = КОНТРОЛЛЕР_ДОМЕНА.example.com:88 default_domain = example.com >[domain_realm] EXAMPLE.COM = EXAMPLE.COM .EXAMPLE.COM = EXAMPLE.COM EXAMPLE.COM = EXAMPLE.COM .EXAMPLE.COM = EXAMPLE.COM [appdefaults] pam =
Теперь можно проверить правильность сделанных настроек и попробовать авторизовать пользователя.
Результат
После того, как все действия выполнены, можно проверить правильность сделанных настроек:
kinit -k -t /opt/1C/v8.3/x86_64/usr1cv8.keytab usr1cv8/ИМЯ_СЕРВЕРА.example.com@EXAMPLE.COM
Команда должна выполниться без какого либо вывода и запросов. После этого команда klist дляжна отобразить полученный тикет пользователя:
# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: usr1cv8/ИМЯ_СЕРВЕРА.example.com@EXAMPLE.COM Valid starting Expires Service principal 06.04.2020 19:08:24 07.04.2020 05:08:24 krbtgt/EXAMPLE.COM@EXAMPLE.COM renew until 07.04.2020 19:08:24
Теперь можно установить пользователю в настройках в базе 1С галочку Авторизация операционной системы и вписать или выбрать нужного пользователя домена. При следующем входе этот пользователь будет авторизован в базе 1С без запроса пароля. В случае блокировки пользователя в домене, соответственно, зайти в базу 1С, не важно откуда, у пользователя уже не выйдет.
Сервер «1С: Предприятие» на Linux: настройка доменной авторизации из различных доменов
Похожая статья уже была на Хабре, но у меня появилась задача авторизировать пользователей из разных и ничем не связанных доменов.
В статье будем использовать: Microsoft AD, 1c Сервер, Debian 11.
В связи с событиями в мире, появилась идея перевода всех серверов на linux, и как говорится из названия, авторизации множества пользователей из разных доменов, скажу сразу, домены находятся не в лесу и на разных площадках.
srv-1cserver — целевой сервер 1с предприятия.
domain.loc — 1 домен.
master.loc — 2 домен.
office.loc — 3 домен.
На данном этапе будем считать что у нас уже функционирует сервер на нашем Debian и там есть пара баз.
На каждом сервере необходимо создать пользователя с которым будут ассоциироваться запросы к 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с домен прописать обязательно большими буквами.
Данное действие проделаем на нужных серверах, и на данном этапе авторизация с различных серверов будет работать.
Новые возможности для аутентификации пользователей 1С в среде Linux
Фирма «1С» анонсировала поддержку аутентификации пользователей средствами операционной системы для тонкого клиента в Linux с использованием протокола Kerberos.
Аутентификация средствами ОС для Linux-клиентов
На страницах официального технологического блога «Заметки из Зазеркалья» опубликован анонс новых возможностей технологической платформы 1С. Разработчики пообещали обеспечить поддержку аутентификации пользователей средствами операционной системы для тонкого клиента в ОС Linux с помощью с протокола Kerberos. Предполагается, что это решение будет актуально для систем, где используются инструменты для централизованного управления аутентификацией – Windows Active Directory, OpenLDAP, FreeIPA и другие. В заметке сообщается, что новая функциональность появится в исправительных релизах, начиная с версии 8.3.17.
В каких случаях могут быть полезны новые возможности технологической платформы
Аутентификация на уровне операционной системы повышает уровень корпоративной информационной безопасности и облегчает процесс администрирования, поскольку позволяет использовать весь потенциал системного программного обеспечения. Новые возможности аутентификации для Linux-клиентов могут быть актуальны в проектах, где есть требования по поддержке аутентификации на уровне ОС, но при этом бюджет не позволяет развернуть все необходимые компоненты с использованием решений Microsoft. Средняя цена корпоративной лицензии Windows сейчас составляет примерно 13 500 рублей. Новые возможности технологической платформы могут быть актуальны для предприятий, которые должны выполнять требования законодательства по импортозамещению зарубежного ПО. Полный текст о новых возможностях технологической платформы для аутентификации пользователей linux-клиентов доступен в официальном блоге «Заметки из Зазеркалья». Актуальная техническая документация по видам аутентификации для платформы « 1С:Предприятие » на портале ИТС (ссылка открывается при наличии действующей подписки ИТС)