AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1429567
Accepted
Henrique
Henrique
Asked: 2019-04-26 05:07:36 +0800 CST2019-04-26 05:07:36 +0800 CST 2019-04-26 05:07:36 +0800 CST

OTRS 6 - Integração AD - Usuários Admin do Domínio mapeados como Agentes, não como Admins OTRS

  • 772

Estou testando o OTRS 6 com o módulo ITSM. No momento, estou apenas testando em nosso ambiente DEV, então não seria um problema abandonar tudo e começar do zero, se for a maneira mais fácil. Pretendo colocá-lo em produção em breve.

Eu instalei "pelo livro" usando os documentos oficiais e funcionou como um encanto! Foi instalado no Ubuntu Server 18.04 LTS. Eu tenho todos os usuários autenticando localmente usando o banco de dados do usuário no MySQL. Eu tinha clientes, agentes e administradores, todos capazes de autenticar e receber o painel de usuário correto.

Depois disso, consegui integrar com sucesso o OTRS ao meu AD, mas com um problema: todos os meus usuários do AD são mapeados como clientes, todos os meus administradores de domínio (que também pertencem ao grupo OTRS_Admins AD) são agentes e... .Fiquei sem conta para gerenciar o OTRS. Nenhum administrador.

O que devo fazer? Como posso mapear meus administradores de domínio para serem administradores OTRS e não agentes? Como mapear alguns dos meus Usuários de Domínio para serem Agentes? Estou fazendo algo errado? Estou completamente perdido.

A documentação oficial não ajuda muito, e não encontrei no Google ninguém com a minha necessidade específica.

Meu (redigido) Config.pm:

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


        ### OTRS Admin Auth
        ### 
        $Self->{'AuthModule::LDAP::Host'} = '192.168.179.2';     # AD Server
        $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=test,DC=local'; # Domain
        $Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
        $Self->{'AuthModule::LDAP::GroupDN'} = 'CN=OTRS_Admins,CN=Users,DC=test,DC=local';   #OTRS Admin group
        $Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
        $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
        $Self->{'AuthModule::LDAP::SearchUserDN'} = 'svc_otrs'; #OTRS service user
        $Self->{'AuthModule::LDAP::SearchUserPw'} = 'Passw0rd'; #And its passwird
        $Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
        $Self->{'AuthModule::LDAP::Params'} = {
                          port => 389,
                          timeout => 120,
                          async => 0,
                          version => 3,
                          sscope => 'sub'
                        };

        ### User Sync
        ### AD <==> DB OTRS (MySQL)
        $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
        $Self->{'AuthSyncModule::LDAP::Host'} = '192.168.179.2';      # AD SRV
        $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=test,DC=local'; # Domain
        $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
        $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'svc_otrs';         
        $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'Passw0rd';    
        $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
        # DB -> LDAP
        UserFirstname => 'givenName',
        UserLastname => 'sn',
        UserEmail => 'mail',
        };

        $Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
        'users', 'basic_admin',
        ];
  $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = '192.168.179.2';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=test,DC=local';    
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'svc_otrs';     
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'Passw0rd';     
    $Self->{CustomerUser} = {
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
    Host => '192.168.179.2',     # AD Server
    BaseDN => 'dc=test,DC=local',      #Domain
    SSCOPE => 'sub',
    UserDN =>'svc_otrs',     #OTRS Service User
    UserPw => 'Passw0rd',    #its password
    AlwaysFilter => '(&(samAccountType=805306368)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
    SourceCharset => 'utf-8',
    DestCharset => 'utf-8',
    },

    CustomerKey => 'sAMAccountName',
    CustomerID => 'mail',
    CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchPrefix => '',
    CustomerUserSearchSuffix => '*',
    CustomerUserSearchListLimit => 10000,
    CustomerUserPostMasterSearchFields => ['mail'],
    CustomerUserNameFields => ['givenname', 'sn'],
    Map => [
    # note: Login, Email and CustomerID needed!
    #[ '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' ],
    ],
    };
active-directory
  • 1 1 respostas
  • 827 Views

1 respostas

  • Voted
  1. Best Answer
    Henrique
    2019-05-28T14:54:48+08:002019-05-28T14:54:48+08:00

    Na verdade, este é um problema de três partes:

    1. Quando usei o back-end do LDAP, perdi meus usuários do back-end do banco de dados (incluindo o superusuário root@localhost)
    2. Os usuários do agente do back-end do LDAP não tinham permissões de administrador
    3. A documentação do OTRS está um pouco desatualizada aqui e ali

    Problema 1: perdi meu DB Backend Em Config.pm, eu havia inserido a seguinte linha para selecionar o backend do Agente:

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

    Bem, o que esta linha faz, ela substitui o seletor de back-end original em outro lugar do sistema. Portanto, para ter os usuários DB Backend Admin e também os usuários do agente LDAP, você deve usar a maneira própria (e documentada!) do OTRS de ter vários back-ends, que é anexar um sufixo numeral à instância do módulo logo após AuthModule):

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

    Claro, você tem que colocar o numeral em todas as propriedades dos módulos:

    $Self->{'AuthModule::LDAP::Host1'} = '192.168.xx.xx';    
    $Self->{'AuthModule::LDAP::BaseDN1'} = 'dc=test,DC=local'; 
    $Self->{'AuthModule::LDAP::UID1'} = 'sAMAccountName';
    $Self->{'AuthModule::LDAP::GroupDN1'} = CN=GS_OTRS_Agents,CN=Users,DC=test,DC=local';
    $Self->{'AuthModule::LDAP::AccessAttr1'} = 'member';
    $Self->{'AuthModule::LDAP::UserAttr1'} = 'DN';
    $Self->{'AuthModule::LDAP::SearchUserDN1'} = 'OTRS';    #OTRS LDAP User
    $Self->{'AuthModule::LDAP::SearchUserPw1'} = 'somepass'; #Password for the LDAP User
    $Self->{'AuthModule::LDAP::AlwaysFilter1'} = '';
    $Self->{'AuthModule::LDAP::Params1'} = {
                      port => 389,
                      timeout => 120,
                      async => 0,
                      version => 3,
                      sscope => 'sub'
                    };    
    

    (Compare isso com o código postado acima, na pergunta original.)

    Para ser justo, há uma seção no Manual de Administração do OTRS explicando como alterar o back-end e como ter mais de um back-end. Mas as informações que, se você usar $Self->{'AuthModule'}em vez de $Self->{'AuthModule1'}substituir o back-end nativo do banco de dados, em vez de executar os dois lado a lado, estão ausentes. Demorou muito cérebro morto para descobrir isso.

    Isso resolveu o problema de ter perdido meus usuários Admin, que estavam todos no DB Backend original. Todos os agentes LDAP não eram administradores completos, portanto, eles podiam responder a tickets, mas não gerenciar o sistema OTRS como administradores. Com isso eu tinha os dois tipos de usuários.

    Isso nos leva ao segundo problema.

    Problema 2: os usuários do agente do back-end do LDAP não tinham permissões de administrador

    Quero dizer, devo ser capaz de criar um usuário Agent no meu AD e ele/ela deve ser administrador também. E eles são!

    `$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
    'users',
    ];`
    

    Se em vez de apenas 'users', eu tivesse colocado também 'basic_admin' nessa lista, todos os meus agentes iniciais também seriam administradores. Eu poderia revogar seus privilégios de administrador mais tarde, mas como estava bloqueado fora do OTRS sem usuários de administrador devido ao problema 1, não pude conceder ou revogar nenhum direito de administrador a ninguém.

    Eu escolhi, afinal, deixar como está e criar meus Agentes apenas como usuários, porque já tenho meu usuário root@localhost original como administrador (como resolvi o Problema 1) e concederei direitos de administrador manualmente para todos meus futuros administradores. Mas este é outro detalhe não muito bem documentado no OTRS Admin Manual.

    Problema 3: OTRS Admin Manual não está completamente atualizado

    Eu entendo que, com todos os projetos OpenSource, isso aconteceria de tempos em tempos. Mas existem, aqui e ali, algumas armadilhas devido a informações enganosas, herdadas de versões anteriores do OTRS que não foram atualizadas. Existem algumas propriedades, por exemplo, que são mencionadas no manual, mas não são válidas para a versão 6.

    Eu me deparei com um que era para a versão 5 e não foi removido da versão 6. Quer dizer, o link para a página QuickRef das propriedades foi removido, porque a página - e a propriedade - não existe mais, mas ainda é mencionada em outro lugar no manual, nas seções importantes de configuração.

    • 0

relate perguntas

  • Substitua o controlador de domínio 2003(!) por 2019

  • Usuários externos precisam acessar nosso domínio

  • Como projetar a rede Samba AD-DC (NAT/DHCP/DNS/VPN)

  • Voltou ao Active Directory, mas nenhum dado foi restaurado, apenas pastas compartilhadas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve