Configura tu OTRS con soporte LDAP
OTRS (siglas en ingés de Open-source Ticket Request System), es una herramienta de gestión y solicitud de tickets de código abierto (distribuido bajo licencia GPL), que permite facilitar el seguimiento de dichas solicitudes o incidencias con los clientes o usuarios finales. Sin lugar a dudas es una herramienta fantástica que cuenta con el apoyo de compañias tales como la NASA, Fujisthsu, Nokia, o Lufthansa entre otros.
La instalación básica de OTRS utilizando como backend MySQL no tiene mucha dificultad, así que supongo que ya os habréis descargado OTRS.
Para poder configurar nuestro sistema OTRS y que la autenticación de los usuarios se realice mediante el protocolo LDAP contra el directorio activo es necesario tocar 2 ficheros de configuración. El primero de ellos será (y hablo a partir de la versión 3.0.6 de OTRS) el fichero ZZZAuto.pm que se encuentra en la ruta “..\Kernel\Config\Files\ZZZAuto.pm“
En el fichero ZZZAuto.pm deberemos escribir la siguiente configuración:
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xx_password'; $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=xx_usuario,CN=Users,DC=xx_subdominio,DC=xx_dominio'; $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'UID'; $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName'; $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=xx_tu_unidad_organizativa,DC=xx_subdominio,DC=xx_dominio'; $Self->{'Customer::AuthModule::LDAP::Host'} = 'xx_nombre_de_tu_host'; $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP'; |
Esta configuración también es accesible y editable desde el administrador web de Otrs en el módulo Costumer::Auth
Pero no hemos terminado todavía, si quisieramos entrar al sistema con esta configuración recibiriamos el siguiente error:
Authentication succeeded, but no customer record IS found IN the customer backend. Please contact your administrator. |
Deberemos indicarle a OTRS cómo deberá almacenar la información que recupera del directorio activo mediante el protolo LDAP. Sintiendolo mucho esta información parece que no se puede indicar mediante la interfaz web por lo que tendremos que añadir dicha configuración en el único archivo que no es modificado por dicha interfaz que no es otro que el Config.pm que se encuentra en la ruta “..\Kernel\Config.pm“. Dicho fichero deberá contener la siguiente información:
sub Load { my $Self = shift; # ---------------------------------------------------- # # ---------------------------------------------------- # # # # Start of your own config options!!! # # # # ---------------------------------------------------- # # ---------------------------------------------------- # # ---------------------------------------------------- # # database settings # # ---------------------------------------------------- # $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xx_password'; $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=xx_usuario,CN=Users,DC=xx_subdominio,DC=xx_dominio'; $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'UID'; $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName'; $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=xx_tu_unidad_organizativa,DC=xx_subdominio,DC=xx_dominio'; $Self->{'Customer::AuthModule::LDAP::Host'} = 'xx_nombre_de_tu_host'; $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP'; $Self->{CustomerUser} = { Name => 'LDAP Backend', Module => 'Kernel::System::CustomerUser::LDAP', Params => { Host => 'xx_nombre_de_tu_host', BaseDN => 'OU=xx_tu_unidad_organizativa,DC=xx_subdominio,DC=xx_dominio', SSCOPE => 'sub', UserDN => 'CN=xx_usuario,CN=Users,DC=xx_subdominio,DC=xx_dominio', UserPw => 'xx_password', }, CustomerKey => 'sAMAccountName', CustomerID => 'sAMAccountName', CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'], CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'], CustomerUserPostMasterSearchFields => ['mail'], CustomerUserNameFields => ['givenname', 'sn'], Map => [ [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ], [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ], [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ], [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ], [ 'UserCustomerID', 'CustomerID', 'sAMAccountName', 0, 1, 'var' ], ], }; |
Esto es todo!
PD: Gracias Pastor, lo que nos costó eh?
Foro OTRS
1. /opt/otrs/Kernel/Config.pm –> Si esa es la ruta
2. $Self->{‘Customer::AuthModule::LDAP::SearchUserPw’} –> si esta debe ser la contraseña de tu usuario del directorio activo
3.$Self->{‘Customer::AuthModule::LDAP::Host’} –> Da igual poner la IP o el nombre de la máquina.
Yo lo que haría sería revisar los logs del OTRS para ver que te está fallando
Un saludo!
Has probado a poner esta configuración en el fichero ZZZAuto.pm?
Saludos, este es un post de hace 2 años pero me ha ayudado, lo que deseo indicar es que donde dice “sAMAccountName”, a mi me funciono con “uid”, cambie todas las partes donde esta esa palabra y me ha funcionado
Funciona… !!!
Muchas gracias por Tu ayuda.
Hola a todos,
Estoy intentado sincronizar los grupos que tengo creados en LDAP con los grupos de OTRS, pero a los usuarios no se les da los derechos que quiere cuando un usuario pertenece a mas de un grupo en ldap. Por ejemplo, cuando un usuario pertenece al grupo1 y grupo2, solo coge los derechos del grupo1. Lo estoy haciendo con los agentes que parece que con ellos se puede realizar pero no lo consigo. Un ejemplo de código que tengo es.
$Self->{‘AuthSyncModule::LDAP::UserSyncGroupsDefinition’} = {
‘cn=Unix,ou=GROUPS,dc=plaza,dc=eu’ => {
‘OPER’ => {
move_into => 1,
ro => 1,
},
‘Soporte Almacenamiento-Backup’ => {
move_into => 1,
ro => 1,
},
‘Soporte Antivirus’ => {
move_into => 1,
ro => 1,
},
‘Soporte Unix’ => {
rw => 1,
},
},
‘cn=Almacenamiento,ou=GROUPS,dc=plaza,dc=eu’ => {
‘OPER’ => {
move_into => 1,
ro => 1,
},
‘Soporte Almacenamiento-Backup’ => {
rw => 1,
},
‘Soporte Antivirus’ => {
move_into => 1,
ro => 1,
},
‘Soporte Unix’ => {
move_into => 1,
ro => 1,
},
}
…..
};
Yo lo que quiero es que el usuario que pertence a Unix y Almacenamiento tenga derechos de rw para esos grupos y para el resto solo derechos de lectura y escalado, pero no consigo porque chocan los derechos. Se puede realizar de alguna forma??
Muchas gracias por adelantado