Авторизация 1с через active directory 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 =

Теперь можно проверить правильность сделанных настроек и попробовать авторизовать пользователя.

Читайте также:  Время загрузки linux mint

Результат

После того, как все действия выполнены, можно проверить правильность сделанных настроек:

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С, авторизация через AD

1С, авторизация через AD

Задача: Настроить 1С сервер установленный на Linux таким образом, чтобы авторизация пользователей осуществлялась через контроллер домена, то есть доменный пользователь входя в 1С не должен ввводить пароль.

IP контроллеров домена, они же DNS сервера: 172.16.1.16, 172.16.1.19

Сетевое имя одного из контроллеров домена: server-dc1

Сетевое имя сервера 1С: SERVER-1S

ОС сервера 1С: Debian GNU/Linux 7 (wheezy)

Версия сервера 1C: 8.3.5.1248

Все нижеследующее работает на «Debian GNU/Linux 8 (jessie)» + 1С версии 8.3.9.1850

1. Настраиваем DNS на сервере 1С:

в моем случае содержание resolv.conf следующее:

domain domainname.ru search domainname.ru nameserver 172.16.1.16 nameserver 172.16.1.19

Имя сервера 1С должно быть вручную зарегистрировано на DNS сервере.

Ping должен выглядеть следующим образом:

root@SERVER-1S:~# ping server-1s PING SERVER-1S.domainname.ru (127.0.1.1) 56(84) bytes of data. 64 bytes from SERVER-1S.domainname.ru (127.0.1.1): icmp_req=1 ttl=64 time=0.031 ms

2. Синхронизируем время на сервере 1С с контроллером домена.

3. Выясняем имя учетной записи от которой работает сервер 1С

Читайте также:  Visual git for linux

4. На контроллере домена создаем учетную запись с паролем «1cv8password» и запрещаем смену пароля пользователем.

5. На контроллере домена выполняем следующую комманду

ktpass -princ usr1cv8/server-1s.domainname.ru@DOMAINNAME.RU -mapuser usr1cv8 -pass 1cv8password -out usr1cv8.keytab

usr1cv8 — учетная запись от имени которой работает сервер 1С, а так-же учетная запись в AD

server-1s — сетевое имя узла, на котором запущен сервер 1С, можно выяснить командой hostname

1cv8password — пароль доменного пользователя usr1cv8

В результате должен сформироваться файл usr1cv8.keytab.

6. Полученный в предыдущем пункте файл, копируем в на сервер 1С в директорию /opt/1C/v8.3/x86_64/ и устанавливаем на него необходимые права:

chown usr1cv8:grp1cv8 usr1cv8.keytab chmod 600 usr1cv8.keytab

7. На сервере 1С Устанавливаем базовый набор утилит для работы Kerberos аутентификацией

В моем случае содержание файла следующее:

[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 = DOMAINNAME.RU 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] DOMAINNAME.RU = < kdc = server-dc1.domainname.ru:88 default_domain = domainname.ru >[domain_realm] domainname.ru = DOMAINNAME.RU .domainname.ru = DOMAINNAME.RU DOMAINNAME.RU = DOMAINNAME.RU .DOMAINNAME.RU = DOMAINNAME.RU [appdefaults] pam =

9. На сервере 1С выполняем:

klist -e -k -t /opt/1C/v8.3/x86_64/usr1cv8.keytab

результат должен быть следующим:

Keytab name: FILE:/opt/1C/v8.3/x86_64/usr1cv8.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 8 01.01.1970 07:00:00 usr1cv8/server-1s.domainname.ru@DOMAINNAME.RU (arcfour-hmac)
kinit -k -t /opt/1C/v8.3/x86_64/usr1cv8.keytab usr1cv8/server-1s.domainname.ru@DOMAINNAME.RU

В результате программа kinit должна отработать без каких-либо сообщений, не спрашивать никаких паролей и вернуть управление обратно в командную строку.

10. В 1С настраиваем параметры пользователя как на картинке (используем полное имя домена):

Источник

Оцените статью
Adblock
detector