Академический Документы
Профессиональный Документы
Культура Документы
«OTRS 6»
«Dirección de Sistema»
Integración de LDAP al
Aplicativo
Documento confidencial
Tabla de contenido
1.Objetivo................................................................................................... 3
2.Descripción General................................................................................. 3
3.Descripción Detallada.............................................................................. 3
4.Plan de Configuración.............................................................................. 9
5.Glosario.................................................................................................... 9
6.Historia de Cambios............................................................................... 10
7.Aprobaciones......................................................................................... 10
Documento confidencial
Especificación Funcional
1. Objetivo
Es de este documento es guiar a los analistas de implementación para puedan
configuración del sistema OTRS 6 con el fin de integrar el protocolo LDAP al
modulo de autenticación de los usuarios y agentes (Técnicos de soporte) contra el
sistema de gestión de incidentes TI .
2. Descripción General
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á : el fichero ZZZAuto.pm que se
encuentra en la ruta “..\Kernel\Config\Files\ZZZAuto.pm“ y el Config.pm que se
encuentra en la ruta “..\Kernel\Config.pm“.
Deberemos indicarle a OTRS cómo deberá almacenar la información que recupera
del directorio activo mediante el protolo LDAP. Debemos añadir dicha configuración
en el único archivo.
3. Descripción Detallada
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';
Documento confidencial
sub Load {
my $Self = shift;
# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# Inicio de sus propias opciones de configuración!!! #
# ---------------------------------------------------- #
# 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'],
Documento confidencial
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' ],
],
};
Si tiene un directorio LDAP con los datos de sus clientes, puede usarlo como back-
end del cliente con OTRS, como se muestra en el Ejemplo a continuacion.
-------------
# CustomerUser
$Self->{CustomerUser} = {
Params => {
# ldap host
# ldap base dn
Documento confidencial
UserDN => '',
# En caso de que desee agregrar siempre un filtro a cada consulta ldap , use
# Net::LDAP new params (si es necesario – para otener mas información , consulte
perldoc Net::LDAP)
Params => {
async => 0,
version => 3,
},
},
# customer unique id
# customer #
Documento confidencial
CustomerUserSearchListLimit => 250,
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
CacheTTL => 0,
Map => [
Documento confidencial
[ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
],
};
[...]
readonly
[…]
Documento confidencial
Script: Maping new fields to the Kernel/Config.pm file.
4. Plan de Configuración
03 Prefijo de enlace
04 Usuario
5. Glosario
‹‹Se definen los términos que aportan o apoyan la definición del
requerimiento.››
Glosario
Termino Descripción
LDAP Protocolo de Acceso Liviano al Directorio, para
autenticar a los usuarios.
Servidor LDAP Hace referencia al nombre de host o dirección IP del
servidor LDAP que se utiliza para autenticar a los
usuarios del dispositivo
Puerto hace referencia al número de puerto TCP/IP que utilizará
el servidor para procesar las solicitudes LDAP.
Normalmente, es el puerto 389 para un enlace Sencillo o
el puerto 636 para un enlace Simple por SSL.
Prefijo de enlace Es el atributo LDAP utilizado para crear el nombre
distintivo (DN, del inglés, Distinguished Name) del usuario
para la autenticación. Este prefijo se combina con el
nombre de usuario introducido en el panel de control para
formar el nombre distintivo relativo (RDN). Algunos de los
prefijos que se utilizan a menudo son "CN" (nombre
común) o "UID" (identidad de usuario).
Documento confidencial
Nota : (1) Cuando configure el método de autenticación LDAP, defina una
base de búsqueda para que especifique en qué lugar de los directorios del
servidor de autenticación ldap.mppre puede buscar una coincidencia de
autenticación. Si su nombre de dominio es example.com, puede utilizar la
base de búsqueda dc=example,dc=com .
(2) Para administrar grupos de usuarios, puede agregar las clases de objetos
member, memberUID, o gidNumber.
6. Historia de Cambios
7. Aprobaciones
Documento confidencial
8. Anexo A
# Configuración para la autenticación del backend del agente ldap # #
$ Self -> {'AuthModule'} = 'Kernel :: System :: Auth :: LDAP';
$ Self -> {'AuthModule :: LDAP :: Host'} = 'server.domain.com';
$ Self -> {'AuthModule :: LDAP :: BaseDN'} = 'dc = dominio, dc = tld';
$ Self -> {'AuthModule :: LDAP :: UID'} = 'sAMAccountName';
# Compruebe si el usuario tiene permiso para autenticarse en un grupo posix
# (por ejemplo, el usuario debe estar en un grupo OTRS_Agents para usar otros)
# $ Self -> {'AuthModule :: LDAP :: GroupDN'} = 'cn = Agentes, ou = Grupos, dc = dominio, dc = tld';
# $ Self -> {'AuthModule :: LDAP :: AccessAttr'} = 'miembro';
# $ Self -> {'AuthModule :: LDAP :: UserAttr'} = 'DN';
# Vincular credenciales para iniciar sesión en AD
$ Self -> {'AuthModule :: LDAP :: SearchUserDN'} = 'usuario@dominio.tld';
$ Self -> {'AuthModule :: LDAP :: SearchUserPw'} = 'contraseña';
$ Self -> {'AuthModule :: LDAP :: AlwaysFilter'} = '';
# en caso de que desee agregar un sufijo a cada nombre de inicio de sesión, entonces
# puedes usar esta opción. por ejemplo, el usuario solo quiere usar el usuario pero
# en su directorio ldap existe usuario @ dominio.
# $ Self -> {'AuthModule :: LDAP :: UserSuffix'} = '';
# Net :: LDAP nuevos parámetros (si es necesario; para obtener más información, consulte perldoc Net
:: LDAP)
$ Self -> {'AuthModule :: LDAP :: Params'} = {
puerto => 389,
tiempo de espera => 120,
asíncrono => 0,
versión => 3,
sscope => 'sub'
};
# Ahora sincronice datos con OTRS DB
$ Self -> {'AuthSyncModule'} = 'Kernel :: Sistema :: Auth :: Sync :: LDAP';
$ Self -> {'AuthSyncModule :: LDAP :: Host'} = 'server.domain.com';
$ Self -> {'AuthSyncModule :: LDAP :: BaseDN'} = 'dc = dominio, dc = tld';
$ Self -> {'AuthSyncModule :: LDAP :: UID'} = 'sAMAccountName';
$ Self -> {'AuthSyncModule :: LDAP :: SearchUserDN'} = 'usuario@dominio.tld';
$ Self -> {'AuthSyncModule :: LDAP :: SearchUserPw'} = 'contraseña';
$ Self -> {'AuthSyncModule :: LDAP :: UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};
# AuthSyncModule :: LDAP :: UserSyncInitialGroups
# (sincronice el siguiente grupo con el permiso rw después de la creación inicial del primer agente
# iniciar sesión)
$ Self -> {'AuthSyncModule :: LDAP :: UserSyncInitialGroups'} = [ 'customer_user',
];
Documento confidencial