Configuração OTRS- Autenticação com via active directory via LDAP

1. Configuração OTRS- Autenticação com via active directory via LDAP

Everson Rocha Costa
eversonrc

(usa Ubuntu)

Enviado em 19/10/2011 - 17:19h

Prezados,

Gostaria de uma ajuda, fiz a instalação do OTRS aqui na empresa, mas pelo volume de usuario que temos não achamos melhor tentar fazer a autenticação via AD. então pesquisando pela internet achei como fazer as configurações que ficou da forma como colocada abaixo, mas tive o seguite problema : após colocar as configurações e testar o acesso colocando um usuario do active directory eu não tenho sucesso, não acesso ao sistema, alquem poderia me ajudar como proceder ?? apos configurar o config.pm preciso fazer mas alguma coisa ??

grato desde já segue copia da configuração.


# --
# Kernel/Config.pm - Config file for OTRS kernel
# Copyright (C) 2001-2010 OTRS AG, http://otrs.org/
# --
# $Id: Config.pm.dist,v 1.23 2010/01/13 22:25:00 martin Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --
# Note:
#
# -->> OTRS does have a lot of config settings. For more settings
# (Notifications, Ticket::ViewAccelerator, Ticket::NumberGenerator,
# LDAP, PostMaster, Session, Preferences, ...) see
# Kernel/Config/Defaults.pm and copy your wanted lines into "this"
# config file. This file will not be changed on update!
#
# --

package Kernel::Config;

sub Load {
my $Self = shift;
# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# Start of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #

# ---------------------------------------------------- #
# database settings #
# ---------------------------------------------------- #
# DatabaseHost
# (The database host.)
$Self->{'DatabaseHost'} = 'localhost';
# Database
# (The database name.)
$Self->{'Database'} = 'otrs';
# DatabaseUser
# (The database user.)
$Self->{'DatabaseUser'} = 'otrs';
# DatabasePw
# (The password of database user. You also can use bin/otrs.CryptPassword.pl
# for crypted passwords.)
$Self->{'DatabasePw'} = 'otrs';
# DatabaseDSN
# (The database DSN for MySQL ==> more: "man DBD::mysql")
$Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";

# (The database DSN for PostgreSQL ==> more: "man DBD::Pg")
# if you want to use a local socket connection
# $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};";
# if you want to use a tcpip connection
# $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};host=$Self->{DatabaseHost};";

# ---------------------------------------------------- #
# fs root directory
# ---------------------------------------------------- #
$Self->{Home} = 'C:/PROGRA~1/OTRS/OTRS';

# ---------------------------------------------------- #
# insert your own config settings "here" #
# config settings taken from Kernel/Config/Defaults.pm #
# ---------------------------------------------------- #
# $Self->{SessionUseCookie} = 0;
# $Self->{CheckMXRecord} = 0;

# ---------------------------------------------------- #

# ---------------------------------------------------- #
# data inserted by installer #
# ---------------------------------------------------- #

$Self->{LogModule} = 'Kernel::System::Log::File';
$Self->{LogModule::LogFile} = 'C:/PROGRA~1/OTRS/OTRS/var/log/otrs.log';
# $DIBI$
$Self->{'DefaultCharset'} = 'utf-8';


# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# End of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #
}
# password crypt type (sha2|sha1|md5|crypt|plain)
# $Self->{'AuthModule::DB::CryptType'} = 'md5';

# This is an example configuration for an LDAP auth. backend.
# (take care that Net::LDAP is installed!)
$Self->{'AuthModule1'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host1'} = 'w2k8bkpssa.columbia.int';
$Self->{'AuthModule::LDAP::BaseDN1'} = 'dc=columbia,dc=int';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';

# Check if the user is allowed to auth in a posixGroup
# (e. g. user needs to be in a group xyz to use otrs)
# $Self->{'AuthModule::LDAP::GroupDN'} = 'cn=otrsallow,ou=posixGroups,dc=example,dc=com';
# $Self->{'AuthModule::LDAP::AccessAttr'} = 'memberUid';
# for ldap posixGroups objectclass (just uid)
# $Self->{'AuthModule::LDAP::UserAttr'} = 'UID';
# for non ldap posixGroups objectclass (with full user dn)
# $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';

# The following is valid but would only be necessary if the
# anonymous user do NOT have permission to read from the LDAP tree
$Self->{'AuthModule::LDAP::SearchUserDN1'} = 'CN=Everson Rocha Costa,OU=TI,OU=Salvador,DC=columbia,DC=int';
$Self->{'AuthModule::LDAP::SearchUserPw1'} = '';

# in case you want to add always one filter to each ldap query, use
# this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
# $Self->{'AuthModule::LDAP::AlwaysFilter'} = '';

# in case you want to add a suffix to each login name, then
# you can use this option. e. g. user just want to use user but
# in your ldap directory exists [email protected]
# $Self->{'AuthModule::LDAP::UserSuffix'} = '@domain.com';

# In case you want to convert all given usernames to lower letters you
# should activate this option. It might be helpfull if databases are
# in use that do not distinguish selects for upper and lower case letters
# (Oracle, postgresql). User might be synched twice, if this option
# is not in use.
# $Self->{'AuthModule::LDAP::UserLowerCase'} = 0;

# In case you need to use OTRS in iso-charset, you can define this
# by using this option (converts utf-8 data from LDAP to iso).
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};

# Die if backend can't work, e. g. can't connect to server.
# $Self->{'AuthModule::LDAP::Die'} = 1;
# --------------------------------------------------- #
# authentication sync settings #
# (enable agent data sync. after succsessful #
# authentication) #
# --------------------------------------------------- #
# This is an example configuration for an LDAP auth sync. backend.
# (take care that Net::LDAP is installed!)
$Self->{'AuthSyncModule1'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = 'w2k8bkpssa.columbia.int';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=columbia,dc=int';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

# The following is valid but would only be necessary if the
# anonymous user do NOT have permission to read from the LDAP tree
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=Everson Rocha Costa,OU=TI,OU=Salvador,DC=columbia,DC=int';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = '';

# in case you want to add always one filter to each ldap query, use
# this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
# $Self->{'AuthSyncModule::LDAP::AlwaysFilter'} = '';

# AuthSyncModule::LDAP::UserSyncMap
# (map if agent should create/synced from LDAP to DB after successful login)
$Self->{'AuthSyncModule::LDAP::UserSyncMap1'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};

# In case you need to use OTRS in iso-charset, you can define this
# by using this option (converts utf-8 data from LDAP to iso).
# $Self->{'AuthSyncModule::LDAP::Charset'} = 'iso-8859-1';

# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
# $Self->{'AuthSyncModule::LDAP::Params'} = {
# port => 389,
# timeout => 120,
# async => 0,
# version => 3,
# };

# Die if backend can't work, e. g. can't connect to server.
# $Self->{'AuthSyncModule::LDAP::Die'} = 1;




# ---------------------------------------------------- #
# needed system stuff (don't edit this) #
# ---------------------------------------------------- #
use strict;
use warnings;

use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.23 $)[1];

use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');

# -----------------------------------------------------#


1;



  


2. Re: Help OTRS file configuration

Anderson Serra
andersonsserra

(usa Ubuntu)

Enviado em 29/11/2011 - 12:30h

Oi everson como vai?

Você está usando o AD da Microsoft, ou o openLDAP?

estou tendo a mesma dificuldade... mas para vc nao perder a autenticacao no sistema vc deve alterar as variaveis do arquivo /opt/otrs/Kernel/Config.pm

eu observei no seu arquivo essa linha...

$Self->{'AuthSyncModule1'} = 'Kernel::System::Auth::Sync::LDAP';

todas as variaveis equivalentes à conexão via modulos LDAP do OTRS, devem ser alteradas, por exemplo no seu arquivo...


$Self->{'AuthSyncModule1'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host1'} = 'w2k8bkpssa.columbia.int';
$Self->{'AuthSyncModule::LDAP::BaseDN1'} = 'dc=columbia,dc=int';
$Self->{'AuthSyncModule::LDAP::UID1'} = 'sAMAccountName';

# The following is valid but would only be necessary if the
# anonymous user do NOT have permission to read from the LDAP tree
$Self->{'AuthSyncModule::LDAP::SearchUserDN1'} = 'CN=Everson Rocha Costa,OU=TI,OU=Salvador,DC=columbia,DC=int';
$Self->{'AuthSyncModule::LDAP::SearchUserPw1'} = '';


Você percebe que voce pede o acesso ao sistema se vc inserir diretamente essa configuracao do LDAP no Config.pm sem alterar as variaveis, existe alguns modelos para autenticacao LDAP no arquivo Default.pm. Dê uma olhada aí.


Att,

Anderson Serra







3. Boa Tarde Srs.

Valmar E Quintanilha
quintani

(usa CentOS)

Enviado em 09/11/2013 - 14:55h

Para poder fazer a autenticação via Active Directory, vocês devem seguir alguns pré requisitos.

Primeiro a partir do AD do Windows 2003 o Active Directory não recebe mais conexões anonimas, por tanto precisamos criar um usuário e dar permissão de de acesso.

1- Crie um usuário "otrs-ldap" defina uma senha pra ele "[email protected]#E$R", depois inclua ele no grupo "Windows Authorization Access Group" este grupo esta dentro da OU "Builtin" na raiz do seu AD.

2- para você obter as informações do usuário que permitira acesso ao AD para ler a base de usuário siga os paços.

a- Localize o usuário criado para permitir que o OTRS leia a base do AD, clique com botão direito do mouse selecione Propriedades.

b- Depois localize a ABA (Attribut Editor)

c- Localize a chave ( distinguishedName )

d- De dois clique nesta chave e copie o código pressionando a tecla CTRL + C

No meu caso (CN=otrs_ldap,OU=OTRS_Ldap,OU=OTRS,OU=Tecnofibras,DC=THASA,DC=CORP)

Agora Imagino que você quera permitir que todos os usuários de seu Active Directori possam abrir chamados, no meu caso tenho uma OU aonde ficam apenas usuários, e outras OU`s que ficam grupos / PCs etc.,

Neste caso quando eu selecionar a a opção de clientes no menu Administração do OTRS todos os usuários do AD estarão listados ali.

Obs. se você tive uma OU aonde tenha Usuários / Grupos, não tem problema, a diferença é que o menu clientes ira listar todos os objetos do AD OK.

3- para você obter as informações dos usuários irão acessar o OTRS para abrir chamados siga os paços.

a- Localize a OU que tem os usuários criados no AD, clique com botão direito do mouse selecione Propriedades.

b- Depois localize a ABA (Attribut Editor)

c- Localize a chave ( distinguishedName )

d- De dois clique nesta chave e copie o código pressionando a tecla CTRL + C

No meu caso (OU=Tecnofibras,DC=THASA,DC=CORP), observe que na linha anterior eu indiquei um usuário especifico, mas aqui eu indiquei uma OU aonde tem todos os usuários OK.

Outro detalhe importante é que é uma premissa do OTRS o cadastro de e-mail, por tanto todos os usuarios devem ter seus e-mails cadastrados nas propriedades de usuário.

Agora modifique o código abaixo de acordo com sua necessidade, em seguida copie ele e cole no arquivo de configuração do OTRS ( /opt/otrs/Kernel/Config.pm .

Mas tome cuidado este código deve estar entre as linhas.


$Self->{Home} = '/opt/otrs';

# ---------------------------------------------------- #
# insert your own config settings "here" #
# config settings taken from Kernel/Config/Defaults.pm #
# ---------------------------------------------------- #
# $Self->{SessionUseCookie} = 0;
# $Self->{CheckMXRecord} = 0;

# ---------------------------------------------------- #

# ---------------------------------------------------- #
# data inserted by installer #
# ---------------------------------------------------- #
# $DIBI$



COLE ELE AQUI



# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# end of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #
}


Segue o código e sua Descrição.


############# Inicio do código #############
# ---------------------------------------------------- #
# INTEGRATION ACTIVE DIRECTORY
# ---------------------------------------------------- #

$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';

#
# Aqui você coloca o nome de seu DC totalmente qualifica (FQDN)
#
$Self->{'AuthModule::LDAP::Host'} = 'UBATUBA.THASA.CORP';

#
#Aqui você informa o OU aonde estão todos os usuários (ver item 3)
#
$Self->{'AuthModule::LDAP::BaseDN'} = 'OU=Usuarios,OU=Tecnofibras,DC=THASA,DC=CORP';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';

#
#Aqui você Informa o caminho do usuário que você criou para permitir que o OTRS leia a base de usuários do AD (ver item 2)
#
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=otrs_ldap,OU=OTRS_Ldap,OU=OTRS,OU=Tecnofibras,DC=THASA,DC=CORP';
# Aqui você informa a senha que cadastrou para este usuario
$Self->{'AuthModule::LDAP::SearchUserPw'} = '[email protected]#E$R';
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';

#
# Aqui você coloca o nome de seu DC totalmente qualifica (FQDN)
#
$Self->{'Customer::AuthModule::LDAP::Host'} = 'UBATUBA.THASA.CORP';

#
#Aqui você informa o OU aonde estão todos os usuários ( Ver item 3)
#
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=Usuarios,OU=Tecnofibras,DC=THASA,DC=CORP';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
#
#Aqui você Informa o caminho do usuário que você criou para permitir que o OTRS leia a base de usuários do AD (Ver Item 2)
#
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=otrs_ldap,OU=OTRS_Ldap,OU=OTRS,OU=Tecnofibras,DC=THASA,DC=CORP';
# Aqui você informa a senha que cadastrou para este usuario
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = '[email protected]#E$R';
$Self->{CustomerUser} = { Module => 'Kernel::System::CustomerUser::LDAP',

#
# Aqui você coloca o nome de seu DC totalmente qualifica (FQDN)
#
Params => { Host => 'UBATUBA.THASA.CORP',

#
#Aqui você informa o OU aonde estão todos os usuários (Ver item 3)
#
BaseDN => 'OU=Usuarios,OU=Tecnofibras,DC=THASA,DC=CORP',
SSCOPE => 'sub',

#
#Aqui você Informa o caminho do usuário que você criou para permitir que o OTRS leia a base de usuários do AD (Ver Item 2)
#
UserDN => 'CN=otrs_ldap,OU=OTRS_Ldap,OU=OTRS,OU=Tecnofibras,DC=THASA,DC=CORP',
# Aqui você informa a senha que cadastrou para este usuario
UserPw => '[email protected]#E$R',
},

CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserPostMasterSearchFields => 'mail',
CustomerUserNameFields => ['givenname', 'sn'],

Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown, required, storage-type
# [ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],

[ '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', 'mail', 0, 1, 'var' ],

# [ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
# [ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var' ],
# [ 'UserComment', 'Comment', 'description', 1, 0, 'var' ],
],
};
############## Fim do código ##############

Qual quer divida estou a disposição.
[email protected]






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts