Настройка авторизации в Битрикс24 через Active Directory

Основные права

Основные права, которые можно настроить в группе, ограничивающие действия агентов:

Авторизация доменных пользователей на php » backnet — ответы на простые вопросы и не очень

Иногда, для корпоративных порталов, актуально не заводить отдельный список пользователей, а производить авторизацию через контроллер доменов.

Для этого в PHP есть набор специальных функций

 Облегчённый протокол доступа к каталогам (LDAP)

.

В принципе там все написано, но рассмотрим простой пример. Надеюсь это будет полезно для тех, кто не особо знаком с особенностями работы контроллера домена. Здесь не будем рассматривать то, как передавать информацию серверу, просто предположим, что в POST запросе прилетают имя пользователя (username) и пароль (password)

Итак, код с комментариями:

1. Набор опций (конфиг, так сказать)

Если с хостом и портом в принципе все понятно, то я бы пояснил эти две непонятные строчки.
Русские названия специально приведены т.к. в DC (domain controller) так вполне можно называть объекты.
(в связи с этим на забываем про функцию

iconv

. Может пригодится.
На этом этапе структуру DC можно рассматривать как набор папок с файлами в файловой системе. Папки вложены, и так формируется пути, которые мы видим. максимальная вложенность – слева. Теперь, как он строится:
cn – это объект (файл). Пользователь, группа.
ou – это папка, конечно все можно сложить с одну папку, но в большом хаосе обычно сложно ориентироваться.
dc – имя домена. т.к. на одном сервере может быть несколько доменов. Корневая папка.

т.е в этом примере мы будем авторизовывать пользователей, которые лежат в папке (и подпапках) “midomain.ru -> Пользователи” и принадлежат к группе “Портал”, лежащей в папке “mydomain.ru -> Группы”

Ну и последнее –

sAMAccountName

– имя пользователя до собачки (

user

@mydomain.ru)

2. И собственно набор функций и условий:

Тут все просто, почти до безобразия.

ldap_connect

– подключаемся к серверу

ldap_bind

– авторизуемся на сервере (в принципе возможно уже и этого достаточно, но… )

ldap_search

– ищем этого пользователя по условию, что он является членом группы.

И пару слов про сквозную авторизацию – этот вариант не рассматриваю, т.к. передавать пароль серверу умеет только ИЕ (вроде как) и только при определенных настройках. Безопасность все-таки.

Так же хорошо бы пароль шифровать, если он летает по инету.

Атрибут, определяющий принадлежность к компании

Аутентификация с использованием базы данных

Стандартный способ аутентификации и авторизации агентов и клиентов — это база данных.

Например, настройки аутентификации агентов, используя базу данных, выглядит так:

$Self->{'AuthModule'} = 'Kernel::System::Auth::DB';


Клиентов:

Безопасность

Для того, чтобы пароли не передавались в открытом виде, доступ к статистике нужно предоставить по

Группы freeipa для синхронизации с ролями otrs

Заведем на FreeIPA три группы пользователей, которые будут синхронизироваться с нашими ролями OTRS, например:

Дополнительные права


Также существуют и дополнительные права, отображение которых можно включить в настройках (System::Permission):

Рассмотрим это более подробно:

Исходное положение

  • Свежеустановленная Ubuntu Server 16.04. Имя сервера ubuntuadmember, запись в DNS присутствует.
  • Установленные пакеты Apache и Perl (включая модуль Perl для Apache)
  • В Apache настроено исполнение perl-скриптов
  • Все перечисленные ниже команды выполняются от учетки root, чтобы не плодить постоянных sudo

Клиенты, очереди, агенты и группы

После установки OTRS у вас сразу будут доступны:

image

Настраиваем подключение к ad

Исходные данные про AD:

  • Домен, допустим, с названием lab.local
  • Контроллер домена 1 с названием dc1.lab.local
  • Контроллер домена 2 с названием dc2.lab.local

Необходимо отредактировать файл /etc/krb5.conf и добавить строки в следующие блоки:

Настроим apache на авторизацию

Предупреждение. Следующие настройки включают авторизацию Kerberos для всего дефолтного сайта. Если нужно включить более тонко, курите мануалы.

Отредактируем файл /etc/apache2/sites-enabled/000-default.conf и добавим в него перед </VirtualHost> следующий блок:

Роли и компании

Так же мы расширим возможности авторизации, добавив роли и компании:

image

Связь asterisk с active directory

Вы можете ознакомиться еще с несколькими статьями по связи Asterisk c AD в моём блоге:

  1. Asterisk и Openfire/Jabber: XMPP сообщение о входящем звонке с именем и отделом из Active Directory
  2. Кнопка звонка в Miranda NG через Asterisk AMI

Создаем учетную запись компьютера в ad

Исходные данные

Предупреждение. В иных случаях могут потребоваться дополнительные действия, и я не знаю, какие именно.

Стандартные группы


После установки системы вы увидите три созданные группы:

Учетные записи для просмотра ldap

Если запрещен анонимный просмотр дерева каталогов, то создадим в доменах

Заключение

Как вы увидели, настройка аутентификации и синхронизации аккаунтов в OTRS — это очень просто, но все же надеюсь, что эта статья поможет тем, кто только начинает знакомиться с этой системой.

Что осталось за бортом этой статьи?


Советы и уточнения приветствуются комментариях, информация об опечатках — в ЛС.

https://www.youtube.com/watch?v=iQqKOuGVXNo

Спасибо за внимание. Отдельное спасибо авторам, чьи материалы по OTRS я использовал много лет назад при знакомстве с этой системой: Turilion, supersuperoleg, wmlex

Похожее:  Авторизовать пользователя в форме. Блог GetCourse

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

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