3. OBJETIVO
Lograr que el sistema OTRS (Open Ticket Request System) esté integrado con el directorio activo para ser
usado como método de autenticación en el sistema, así mismo se busca la sincronización y asignación de
manera automática de grupos de otrs a los usuarios con respecto a cómo se encuentren organizados en el
árbol del directorio activo.
SOFTWARE UTILIZADO
y Fedora Core release 6 x86 (Sistema operativo)
y Servidor web apache versión 2.0
y Sistema gestor de base de datos MySQL 5.0.91- Community Edition (GPL)
y OTRS versión 2.4.7 (http://ftp.otrs.org/pub/otrs/RPMS/fedora/4/otrs-2.4.7-01.noarch.rpm )
Este documento no cubre la instalación de estos componentes, su objetivo es explicar la configuración
necesaria para que OTRS funcione en conjunto con el directorio activo.
REQUERIMIENTOS PARA FUNCIONAMIENTO
y Tener instalado los siguientes programas y componentes .
o Módulo Net::LDAP instalado en el sistema. (http://ldap.perl.org/)
y Conocer/ Contar con los siguientes datos:
o El nombre del servidor de directorio activo (hostname)
o La Base DN (es el punto inicial en la jerarquía del directorio activo en el que comenzará la
búsqueda)
o Nombre de usuario y contraseña de una cuenta para hacer búsquedas dentro del directorio
activo.
y Asegurarse de que existe un usuario administrador (de otrs) con el mismo nombre en otrs como en el
directorio activo, esto servirá para la primera vez que se entre a la aplicación.
1
4. CONFIGURACION
El archivo donde residirán todas las configuraciones se encuentra en la siguiente ubicación.
/<OTRS_HOME>/otrs/Kernel/Config.pm
Este archivo se interpreta cuando se accede al sistema, de dicho archivo se toman todas las configuraciones
que serán cargadas durante la ejecución del software.
Una vez abierto el archivo y se esté listo para editar su contenido, lo primero que hay que hacer es agregar la
siguiente línea justo después de las configuraciones que el sistema trae por default, esto es fácil identificar,
pues trae una leyenda al final que dice: Start your own config options!!!.
$Self->{'AuthModule'} = Kernel::System::Auth::LDAP';
Esto indica que el sistema utilizará LDAP como tipo de autenticación, ahora hay que agregar la configuración
para poder acceder al directorio activo.
$Self->{'AuthModule::LDAP::Host'} = 'DICONSAADPHDC1.diconsa.net';
$Self->{'AuthModule::LDAP::BaseDN'} = 'ou=Usuarios,dc=diconsa,dc=net';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthModule::LDAP::UserAttr'} = 'sAMAccountName';
Ahora se le agregan los parámetros para realizar las búsquedas.
$Self->{'AuthModule::LDAP::SearchUserDN'} = ŧnombre_usuario@diconsa.gob.mxŨ;
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'password_usuario';
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
Ya teniendo configurado todo lo anterior, hay que configurar otrs para hacer búsquedas de clientes, es decir
que tome los clientes del mismo directorio activo. Para esto hay que agregar las siguientes líneas.
2
6. [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
[ 'UserCustomerID', 'CustomerID', 'sAMAccountName', 0, 1, 'var' ],
[ 'UserPhone', 'Phone', 'telephoneNumber', 1, 0, 'var' ],
[ 'UserAddress', 'Address', 'department', 1, 0, 'var' ],
[ 'UserComment', 'Comment', 'description', 1, 0, 'var' ],
],
};
Lo que viene a continuación es para hacer la sincronía automática de los usuarios de otrs con el directorio
activo, esto es, sincronizar o asignar grupos y permisos al usuario de forma automática dependiendo de su
grupo o unidad operativa en el directorio activo.
Se tienen que configurar los siguientes parámetros para que funcione adecuadamente la sincronía.
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} ='DICONSAADPHDC1.diconsa.net';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'ou=Usuarios,dc=diconsa,dc=net';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'distinguishedName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'nombre_usuario@diconsa.gob.mx';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = ŧpassword_usuarioŨ
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};
A continuación, hay que agregar la configuración que especifica los permisos efectivos al usuario, de acuerdo
a su ubicación en el árbol del directorio activo.
El siguiente código determina los grupos y permisos de los usuarios que ingresan al sistema.
$Self->{'AuthSyncModule::LDAP::UserSyncAttributeGroupsDefinition'}=
{
4
7. 'memberOf'=>
{ #Usuarios desarrollo de sistemas
'CN=gsg_Desarrollo de Sistemas,OU=Grupos,DC=diconsa,DC=net'=>
{
#empiezan permisos por grupo
'gpoUsuarioFinal'=>
{
ro=>1,
create=>1,
priority=>1,
},
'gpoUsuarioInformatico'=>
{
ro=>1,
create=>1,
owner=>1,
priority=>1,
rw=>1,
},
'gpoUsuarioBasico'=>
{
# permission
ro => 0,
},
'gpoGerenciaInformatica'=>
{
rw => 1,
5
8. ro => 1,
},
'gpoMesa'=>
{
ro=>1,
move_into=>1,
},
},
#usuarios desarrollo de sistemas
'CN=Grupo Gerencia de Informatica,CN=Users,DC=diconsa,DC=net'=>
{
#empiezan permisos por grupo
'gpoUsuarioFinal'=>
{
ro=>1,
create=>1,
priority=>1,
},
'gpoUsuarioInformatico'=>
{
ro=>1,
create=>1,
owner=>1,
priority=>1,
rw=>1,
},
'gpoUsuarioBasico'=>
{
6
14. Ahora asignamos los roles, de acuerdo al directorio activo.
$Self->{'AuthSyncModule::LDAP::UserSyncRolesDefinition'} =
{
'OU=Usuarios Sistemas,OU=Usuarios,DC=diconsa,DC=net'=>{ 'rolUsuarioFinal'
=> 1, },
'OU=Informaticos,OU=Usuarios,DC=diconsa,DC=net'=>{
'rolUsuarioInformatico' => 1, },
'OU=Usuarios Basicos,OU=Usuarios,DC=diconsa,DC=net'=>{ 'rolUsuarioBasico'
=> 1, },
'OU=Desarrollo de sistemas,OU=Usuarios,DC=diconsa,DC=net'=>{
'rolGerenciaInformatica' => 1, },
'CN=PEDRO PABLO SEVILLA BAUTISTA,OU=Desarrollo de
sistemas,OU=Usuarios,DC=diconsa,DC=net'=>{'rolMesa'=>1,},
'CN=PEDRO PABLO SEVILLA BAUTISTA,OU=Desarrollo de
sistemas,OU=Usuarios,DC=diconsa,DC=net'=>{'rolGerenciaInformatica'=>0,},
'CN=SOPORTE EXTERNO A SISTEMAS,OU=Oficinas Centrales,OU=Usuarios
Sistemas,OU=Usuarios,DC=diconsa,DC=net'=>{'rolMesa'=>1,},
'CN=SOPORTE EXTERNO A SISTEMAS,OU=Oficinas Centrales,OU=Usuarios
Sistemas,OU=Usuarios,DC=diconsa,DC=net'=>{'rolGerenciaInformatica'=>0,},
'CN=PAOLA BERENICE CAMACHO BRISEÑO,OU=Desarrollo de
sistemas,OU=Usuarios,DC=diconsa,DC=net'=>{'rolMesa'=>1,},
'CN=PAOLA BERENICE CAMACHO BRISEÑO,OU=Desarrollo de
sistemas,OU=Usuarios,DC=diconsa,DC=net'=>{'rolGerenciaInformatica'=>0,},
'CN=SOPORTE SIF,OU=Oficinas Centrales,OU=Usuarios
Basicos,OU=Usuarios,DC=diconsa,DC=net'=>{'rolMesa'=>1,},
'CN=SOPORTE SIF,OU=Oficinas Centrales,OU=Usuarios
Basicos,OU=Usuarios,DC=diconsa,DC=net'=>{'rolGerenciaInformatica'=>0,},
};
12
15. El siguiente código es para permitir la autenticación de usuarios finales (customers).
Primero indicamos que los usuarios serán autenticados por el directorio activo.
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'DICONSAADPHDC1.diconsa.net';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} =
'ou=Usuarios,dc=diconsa,dc=net';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
Lo siguiente es la configuración utilizada para permitir las búsquedas en el directorio activo.
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} =
'nombre_usuario@diconsa.gob.mx';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'password_usuario';
Ahora hay que configurar las propiedades que serán recuperadas desde el directorio activo y estarán
disponibles en el sistema.
$Self->{CustomerUser} = {
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'DICONSAADPHDC1.diconsa.net',
BaseDN => 'ou=Usuarios,dc=diconsa,dc=net',
SSCOPE => 'sub',
UserDN =>'nombre_usuario@diconsa.gob.mx',
UserPw => 'password_usuario',
},
# customer unique id
CustomerKey => 'sAMAccountName',
# customer #
CustomerID => 'mail',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
13