Have a Question?
Integração com Active Directory (ou LDAP) local
Obs: Este artigo não se aplica ao LigeroSmart SaaS, apenas a instalações com acesso ao container neste momento.
A integração que permite aos usuários do AD se autenticarem no LigeroSmart ou mesmo que permite ao LigeroSmart enxergar informações de clientes no AD deve ser parametrizada no arquivo /opt/otrs/Kernel/Config.pm
Neste documento, disponibilizamos trechos de código que devem ser colados neste arquivo, de acordo com a necessidade de integração e, adaptados à realidade de sua organização.
Para realizar tal integração, é necessário que o LigeroSmart possua uma conta de serviço criada no Active Directory ou no LDAP.
Uma forma interessante de verificar se o servidor linux está acessando o servidor de diretórios AD, é utilizando o comando abaixo:
ldapsearch -h 192.168.1.10 -b "DC=DOMINIO,DC=LOCAL" -D "CN=ligero,CN=Users,DC=DOMINIO,DC=LOCAL" -w senha "(objectClass=person)"
Este comando faz a listagem do seu diretório de usuários. É necessário instalar o ldapsearch em seu servidor. No CentOS pode ser instalado com o comando:
yum install openldap-clients
Autenticação de Atendentes
########################################################################## # Autenticação de Atendentes # #- Aqui definimos a integração que permite ao LigeroSmart autenticar usuários # # a partir do Active Directory de sua organização. # #- Importante: os usuário devem possuir o campo “email” preenchido # # no AD para poderem se autenticar # ########################################################################## $Self->{AuthModule1} = 'Kernel::System::Auth::LDAP'; # Abaixo, colocamos o IP ou hostname do servidor $Self->{'AuthModule::LDAP::Host1'} = '192.168.30.50'; # A seguir, o DistinguishedName (DN) onde buscaremos os usuários $Self->{'AuthModule::LDAP::BaseDN1'} = 'DC=complemento,DC=net,DC=br'; # A seguir, a propriedade do AD onde encontraremos o nome de usuário $Self->{'AuthModule::LDAP::UID1'} = 'sAMAccountName'; # Aqui definimos em qual grupo o usuário deve estar para poder se logar no LigeroSmart, # Este parametro é opcional e pode ser comentado com # $Self->{'AuthModule::LDAP::GroupDN1'} = 'CN=Atendentes,OU=LigeroSmart Groups,DC=complemento,DC=net,DC=br'; # O parametro abaixo não deve ser modificado $Self->{'AuthModule::LDAP::AccessAttr1'} = 'member'; # Aqui definimos o usuário e senha de uma conta que tenha permissão de buscar informações na árvore de nosso AD. # É aconselhavel criar um usuário exclusivo para o LigeroSmart $Self->{'AuthModule::LDAP::SearchUserDN1'} = 'CN=LigeroSmart,CN=Users,DC=complemento,DC=net,DC=br'; $Self->{'AuthModule::LDAP::SearchUserPw1'} = 'Brasil123!'; # Note que há o número “1” no fim das definições realizadas entre “{ }” # O LigeroSmart permite que você se conecte com até 9 módulos diferentes de autenticação, ou 9 ADs diferentes por exemplo.
Sincronização de Atendentes com AD
# Aqui podemos mapear os atendentes e seus atributos, tais como nome e sobrenome, e-mail etc. # Os valores abaixo servem para uma instalação padrão. Adapte para seu sistema. $Self->{AuthSyncModule} = 'Kernel::System::Auth::Sync::LDAP'; $Self->{'AuthSyncModule::LDAP::UserAttr'} = 'DN'; $Self->{'AuthModule::LDAP::UserAttr'} = 'DN'; $Self->{'AuthSyncModule::LDAP::Host'} = '192.168.30.50'; $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'DC=complemento,DC=net,DC=br'; $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName'; $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=LigeroSmart,CN=Users,DC=complemento,DC=net,DC=br'; $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'Brasil123!'; $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = { # DB -> LDAP UserFirstname => 'givenName', UserLastname => 'sn', UserEmail => 'mail', UserCargo => 'description', UserPhoneNumber => 'telephoneNumber', }; $Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member'; # Você pode escolher grupos padrões para seus usuários. Basta descomentar as 3 linhas abaixo e definir os grupos # $Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [ # 'users', # ];
Relacionando grupos do AD com papéis do LigeroSmart
########################################################################## #- Gestão de papéis do sistema # #- Aqui você deve fazer as associações entre os grupos # # do Active Directory e dos papéis no LigeroSmart. # #- Você deve adicionar linhas aqui sempre que criar um novo papel # # no LigeroSmart ou grupo no Active Directory # ########################################################################## $Self->{'AuthSyncModule::LDAP::UserSyncRolesDefinition'} = { # Primeiro grupo mapeado # Grupo no Active Directory – Administradores do LigeroSmart no AD 'CN=Administradores LigeroSmart,OU=LigeroSmart Groups,DC=complemento,DC=net,DC=br' => { # Papel no LigeroSmart - Administrador 'Administrador' => 1, }, # Segundo Mapeamento 'CN=Service Desk,OU=LigeroSmart Groups,DC=complemento,DC=net,DC=br' => { # Papel no LigeroSmart 'Atendente de Primeiro Nível' => 1, }, # Terceiro Mapeamento 'CN=Desenvolvedores,OU=LigeroSmart Groups,DC=complemento,DC=net,DC=br' => { 'Desenvolvedor' => 1, # Você pode definir mais que um papél para o mesmo grupo do AD # 'Papel 2' => 1, }, };
Usuários do AD como Clientes do LigeroSmart
################################################################### # Exibe os colaboradores do AD como clientes internos # # Lembre-se que os usuários no AD devem ter o campo mail # # preenchido corretamente # ################################################################### $Self->{CustomerUser1} = { Name => 'Active Directory Complemento', Module => 'Kernel::System::CustomerUser::LDAP', Params => { Host => '192.168.30.50', BaseDN => 'DC=complemento,DC=net,DC=br', SSCOPE => 'sub', UserDN => 'CN=LigeroSmart,CN=Users,DC=complemento,DC=net,DC=br', UserPw => 'Brasil123!', # A linha abaixo serve para não trazer usuarios desativados: # Fonte: http://www.petri.co.il/ldap_search_samples_for_windows_2003_and_exchange.htm AlwaysFilter => '(&(objectclass=user)(!(objectclass=computer))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))', SourceCharset => 'utf-8', DestCharset => 'utf-8', Params => { port => 389, timeout => 120, async => 0, version => 3, }, }, CustomerKey => 'sAMAccountName', CustomerID => 'mail', CustomerUserListFields => ['cn','mail'], CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail','givenname', 'sn'], CustomerUserSearchPrefix => '*', CustomerUserSearchSuffix => '*', CustomerUserSearchListLimit => 500, CustomerUserPostMasterSearchFields => ['mail'], CustomerUserNameFields => ['givenname', 'sn'], CustomerUserEmailUniqCheck => 0, CustomerUserExcludePrimaryCustomerID => 0, AdminSetPreferences => 0, ReadOnly => 1, CacheTTL => 180, Map => [ # note: Login, Email and CustomerID are mandatory! # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly [ 'UserTitle', 'Title', 'title', 1, 0, 'var', '', 0 ], [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var', '', 0 ], [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var', '', 0 ], [ 'UserLogin', 'Username', 'sAMAccountName', 1, 1, 'var', '', 0 ], [ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ], [ 'UserCustomerID', 'CustomerID', 'sAMAccountName', 0, 1, 'var', '', 0 ], [ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ], [ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var', '', 0 ], [ 'UserComment', 'Comment', 'dn', 1, 0, 'var', '', 0 ], [ 'DN', 'DN', 'dn', 1, 0, 'var', '', 0 ], ], };
Autenticação de Cliente no Active Directory
$Self->{'Customer::AuthModule1'} = 'Kernel::System::CustomerAuth::LDAP'; $Self->{'Customer::AuthModule::LDAP::Host1'} = '192.168.30.50'; $Self->{'Customer::AuthModule::LDAP::BaseDN1'} = 'DC=complemento,DC=net,DC=br'; $Self->{'Customer::AuthModule::LDAP::UID1'} = 'sAMAccountName'; $Self->{'Customer::AuthModule::LDAP::AccessAttr1'} = 'member'; $Self->{'Customer::AuthModule::LDAP::SearchUserDN1'} = 'CN=LigeroSmart,CN=Users,DC=complemento,DC=net,DC=br'; $Self->{'Customer::AuthModule::LDAP::SearchUserPw1'} = 'Brasil123!'; # A linha abaixo serve para não trazer usuarios desativados: (!(userAccountControl:1.2.840.113556.1.4.803:=2)) # Fonte: http://www.petri.co.il/ldap_search_samples_for_windows_2003_and_exchange.htm $Self->{'Customer::AuthModule::LDAP::AlwaysFilter1'} = '(&(objectclass=user)(!(objectclass=computer))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'; # $Self->{'Customer::AuthModule::LDAP::Die1'} = 0; # A linha abaixo serve para permitir que apenas usuários de um determinado grupo acessem o sistema como clientes # $Self->{'Customer::AuthModule::LDAP::GroupDN1'} = 'CN=Clientes LigeroSmart,OU=LigeroSmart Groups,DC=complemento,DC=net,DC=br';