Решил поделиться своим скриптом который служит у меня для интеграцией OTRS с AD.
Из АД так же берется информация о телефоне, пейджере и другом. (так же в скрипте есть)
Добавляем в config.pm
Код: Выделить всё
# # ВКЛЮЧЕНИЕ АУТЕНФИКАЦИИ LDAP ДЛЯ АГЕНТОВ (ACTIVE DIRECTORY)
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = 'АДРЕС_АД';
$Self->{'AuthModule::LDAP::BaseDN'} = 'DC=**,DC=ru';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthModule::LDAP::Charset'} = 'utf-8';
$Self->{'AuthModule::LDAP::SourceCharset'} = 'utf-8';
$Self->{'AuthModule::LDAP::DestCharset'} = 'utf-8';
$Self->{'AuthModule::LDAP::GroupDN'} = 'cn=ГРУППА_ДОСТУПА_В_АД,ou=Security,ou=Groups,ou=**,ou=Moskva,ou=Clients,dc=**,dc=ru';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'cn=ИМЯ_LDAP_УЧЕТКИ,ou=Service Users,DC=**,DC=ru';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'ПАРОЛЬ_LDAP_УЧЕТКИ';
$Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
$Self->{'AuthModule::LDAP::Params'} = {
port => 3268,
timeout => 240,
async => 0,
version => 3,
};
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = 'АДРЕС_АД';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'DC=**,DC=ru';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'cn=ИМЯ_LDAP_УЧЕТКИ,ou=Service Users,dc=**,dc=ru';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'ПАРОЛЬ_LDAP_УЧЕТКИ';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
Phone => 'telephoneNumber',
Username => 'sAMAccountName',
comment => 'description',
};
$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
'users',
];
# Настройка LDAP авторизации для клиентов
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} ='АДРЕС_АД';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=Clients,DC=**,DC=ru';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} ='cn=ИМЯ,ou=Service Users,dc=**,dc=ru';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'ПАРОЛЬ';
$Self->{CustomerUser} = {
Name => 'LDAP Backend NVG',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'АДРЕС АД',
BaseDN => 'OU=Clients,DC=**,DC=ru',
SSCOPE => 'sub',
SourceCharset => 'utf-8',
DestCharset => 'utf-8',
UserDN => 'cn=ИМЯ,ou=Service Users,dc=**,dc=ru',
UserPw => 'ПАРОЛЬ',
Params => {
port => 3268,
timeout => 240,
async => 0,
version => 3,
},
},
# Unique customer key/id
CustomerKey => 'sAMAccountName',
CustomerID => 'sAMAccountName',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserNameFields => ['cn'],
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
Map => [
# note: Login, Email and CustomerID needed!
[ 'UserFullName', 'ФИО', 'cn', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'sAMAccountName', 0, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 1, 'var', '', 0 ],
[ 'MobilePhone', 'Моб.тел:', 'mobile', 1, 1, 'var', '', 0 ],
[ 'UserTitle', 'Должность', 'title', 1, 1, 'var', '', 0 ],
[ 'Manager', 'Руководитель', 'manager', 1, 1, 'var', '', 0 ],
[ 'UserCompany', 'Компания', 'company', 1, 1, 'var', '', 0 ],
[ 'UserAddress', 'Адрес', 'streetAddress', 1, 1, 'var', '', 0 ],
[ 'City', 'Город', 'l', 1, 1, 'var', '', 0 ],
[ 'Pager', 'Пейджер:', 'pager', 1, 1, 'var', '', 0 ],
[ 'Room', 'Комната:', 'physicalDeliveryOfficeName', 1, 1, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'givenname', 0, 0, 'var', '', 1 ],
[ 'UserLastname', 'Lastname', 'sn', 0, 0, 'var', '', 1 ],
[ 'UserLogin', 'Username', 'sAMAccountName', 0, 0, 'var', '', 1 ],
],
};