1c+Windows AD. Русский hardkor

kolbosa.kz

Доброго всем дня. Этот маленький обзорчик я пишу, так сказать, прямо с полей. Сегодня я наконец то разобрался с таким ужасом как 1с 8.2 + centos + AD авторизации. Вообщем на первой связке вопросов у меня не было особых, но вот вторая… Это тихий ужас. О нем и пойдет речь. И так — 1C8.2 + Windows 2012 R2 AD. В статье предполагается, что у вас уже есть настроенный сервер 1С и задача стоит только в авторизации.

Начало.
В данной статье рассматривается след. Схема:
1. Сервер 1С (Centos 6 x86_6, IP 10.1.1.5) На нем основная работа и будет происходить.
2. Сервер AD (Windows 2012 R2, IP 10.1.1.1)
3. Рабочая станция, которая у нас будет клиентом (в моем случае Windows 7 x86_64, IP 10.1.1.100)
Заходим на Сервер 1С и понеслась)))
Перво на перво убедитесь, что IP ваше сервера — статический. Следующий шаг — пропишем DNS нашего домена в /etc/resolv.conf

Далее ставим необходимые пакеты

Вкратце расскажу про пакет – krb5-workstation. Данный пакет дает нам возможность использовать шифрование RC4-HMAC (по умолчанию в windows) в билете kerberos. В принципе вы можете и без него (по ходу дела напишу как), но все же с ним правильнее, как мне кажется.

Настраиваем kerberos

Синхронизируем часы

Вводим в домен

Стартуем сервисы

Теперь я вам настоятельно советую проверить наличие DNS записей о нашем 1c.test.local (как A так и PTR) на DNS-сервере dc01.test.local

Далее пробуем получить билет kerberos для какого нибудь доменного юзверя (в моем случае admin)

Проверяем наш билетик, если ответ похож на мой, то все ок

Теперь наша задача сгенерить себе keytab. Идем на наш AD (10.1.1.1). Создаем учетную запись через которую будет происходить авторизация пользователей, в моем случае это usr1c и пароль pass1c, после создания учетной записи проверьте отсутствие галочки «Use DES encryption types with this account» (а в случае не использования шифрования RC4-HMAC, наоборот наличие этого флага). Далее, нам необходим файловый ключ (keytab), для его генерации – запускаем консоль от имени администратора:

Я больше всего уверен, что если проблемы и возникнут — они будут именно на этом шаге. Давайте разберем эту строчку:
-princ usr1cv82/1c.test.local@TEST.KZ
usr1cv82 — дефолтовый юзер сервиса 1с
1c.test.local — имя машины для которой создается ключ.
TEST.KZ — NETBIOS имя домена, пишется только заглавными буквами не перепутайте.
-mapuser usr1c
usr1c — наш доменный пользователь с которым мы будем ассоциировать usr1cv82
-pass pass1c
pass1c — пароль доменного пользователя
-out usr1cv82.keytab
usr1cv82.keytab — имя файла ключа.
Теория авторизации довольно замудренная, прямого коннектора к LDAP у 1с нету, поэтому у нас будет kerberos, средствами которого и будет производиться авторизация (через опу, если честно). Работает это так — при инициализации keytab у пользователя usr1c в LDAP записи создается атрибут — userPrincipalName=usr1cv82/1c.test.local@TEST.KZ, который привязывает LDAP пользователя к локальному usr1cv82 через которого и происходит сама авторизация. Вот такая хренатенька)))
Для не использующих шифрования RC4-HMAC, стока будет такая:

Теперь надо переместить полученный ключ на сервер 1с в директорию /opt/1C/v8.2/x86_64/. И назначить ему след. Права:

Далее проверяем загруженный файл:

Выхлоп должен быть приблизительно таким:

Теперь пытаемся заимпортировать наш keytab

Если ошибок не было, то проверяем кэш на наличие ключа:

Некоторые howto советуют так же сделать симлинк:

Но я не делал и все работает. Пробуйте залогиниться (стоит учитывать тот факт, что из-за работы через kerberos рабочая станция с которой вы входите в 1с должна быть в домене).

Собственно все. Всем удачи и поменьше подобрых грабель.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Перед отправкой формы:
Human test by Not Captcha