Доменная авторизация в 1С на Linux сервере

Пример для версии 8.3.22.2239 (x86_64)

  1. Создать пользователя в AD (Например – usr1cv8x с сложным паролем, но потребуется он только при настройке – strongpassword)
  2. Ввести Linux сервер в Домен штатными средствами
  3. Выполнить на Windows сервере
    ktpass -princ usr1cv8/1csrvhostname.domain.name@DOMAIN.NAME -mapuser usr1cv8x -pass strongpassword -out usr1cv8.keytab
    Это создаст файл и пропишет user logon name
  4. Чтобы не пересылать keytab файл проще его генерировать сразу на Linux сервере (обязательно -e RC4-HMAC), для этого
    ktutil
    addent -password -p usr1cv8/1csrvhostname.domain.name@DOMAIN.NAME -k 6 -e RC4-HMAC
    Ввести пароль от учетной записи usr1cv8x
    wkt /opt/1cv8/x86_64/8.3.22.2239/usr1cv8.keytab
    q
  5. По дефолту 1с ищет usr1cv8.keytab в корневой папке конкретной версии, При желании файл можно разместить в любом другом месте, нужно только изменить переменную SRV1CV8_KEYTAB.
  6. Назначить права на созданный файл
    chown usr1cv8:grp1cv8 /opt/1cv8/x86_64/8.3.22.2239/usr1cv8.keytab
    chmod 600 /opt/1cv8/x86_64/8.3.22.2239/usr1cv8.keytab
  7. Следующие проверочные комманды не должны выдать ошибки
    klist -e -k -t /opt/1cv8/x86_64/8.3.22.2239/usr1cv8.keytab
    kinit -k -t /opt/1cv8/x86_64/8.3.22.2239/usr1cv8.keytab usr1cv8/1csrvhostname.domain.name@DOMAIN.NAME
  8. Если сходу не заработало включаем логирование 1с сервера:
    • Для настройки сбора логов необходимо выполнить следующие действия:
    • 1. Перейдите в пользователя root.su –
    • 2. Создайте папку для логов.mkdir -p /var/log/log1c
    • 3. Назначьте владельца.chown usr1cv8:grp1cv8 /var/log/log1c
    • 4. Создайте каталог conf в /opt/1cv8/conf
      mkdir -p /opt/1cv8/conf
    • 5. Назначьте владельца каталогу conf
      chown usr1cv8:grp1cv8 /opt/1cv8/conf
    • 6. Создайте файл настроек технологического журнала 1С.nano /opt/1cv8/conf/logcfg.xml
    • Содержание файла:<config xmlns="http://v8.1c.ru/v8/tech-log">
    • <log location="/var/log/log1c" history="12">
    • <event>
    • <eq property="name" value="excp"/>
    • </event>
    • <event>
    • <eq property="name" value="excpcntx"/>
    • </event>
    • <event>
    • <eq property="name" value="admin"/>
    • </event>
    • <event>
    • <eq property="name" value="clstr"/>
    • </event>
    • <event>
    • <eq property="name" value="conn"/>
    • </event>
    • <event>
    • <eq property="name" value="sesn"/>
    • </event>
    • <event>
    • <eq property="name" value="proc"/>
    • </event>
    • <event>
    • <eq property="name" value="DBPOSTGRS"/>
    • <ge property="Durationus" value="10000000"/>
    • </event>
    • <property name="all"/>
    • </log>
    • <plansql/>
    • </config>
    • 7. Назначьте владельца файлу logcfg.xml.chown usr1cv8:grp1cv8 /opt/1cv8/conf/logcfg.xml
    • 8. Подождите 1-2 минуты.
  9. Файл /etc/hosts (ВАЖНО)
    • cat /etc/hosts
      127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
      10.50.43.182 1csrvhostname.domain.name
  10. В свойствах пользователя выбрать «Аутентификация операционной системы» и в поле «Пользователь» прописать \\DOMAIN.NAME\e.ivanov

Ошибки:

  1. 1c GSS-API error gss_acquire_cred: No credentials were supplied, or the credentials were unavailable;
    No key table entry found matching usr1cv8/1cl02@
    – Не правильно прописан файл etc hosts
  2. KDC reply did not match expectations while getting initial credentials – Домен должен быть прописан в верхнем регистре

Пример krb5.config

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = TEST.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
WEBSITE.COM = {
kdc = myserver.test.com
admin_server = myserver.test.com
}

[domain_realm]
.test.com = TEST.COM
Test.com = TEST.COM