Mapas de transformação LDAP

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 6 min. de leitura
  • O mapa de transformação move dados da tabela de conjunto para importação para a tabela de destino (Usuário ou Grupo).

    A integração LDAP usa conjuntos para importação padrão e mapas de transformação. Também é possível criar mapas de transformação LDAP personalizados.
    Importante:
    Ao selecionar ou criar mapas de transformação LDAP personalizados, deve haver um mapa de transformação ativo para um conjunto de tabelas de origem e de destino. Habilitar vários mapas de transformação para as mesmas tabelas de origem e de destino pode produzir entradas duplicadas na tabela de destino, a menos que os campos correspondentes sejam aglutinados.

    Mapas de transformação LDAP padrão

    Por padrão, o sistema fornece dois mapas de transformação para dados LDAP.
    Tabela 1. Mapas de transformação LDAP padrão
    Mapa de transformações Tabela de fonte Tabela de destino Descrição
    Importação de usuário LDAP [ldap_import] [sys_user] Mapa de transformação padrão para criar registros de usuário a partir de credenciais LDAP como parte do login LDAP sob demanda. Contém mapeamentos para um servidor LDAP do Active Directory.
    Importação de grupo LDAP [ldap_group_import] [sys_user_group] Mapa de transformação padrão para criar registros de grupo de OUs LDAP. Contém mapeamentos para um servidor LDAP do Active Directory.
    Nota:
    Por padrão, o sistema não tem um mapa de transformação para registros de departamento LDAP.

    Requisitos para mapas de transformação LDAP personalizados

    Se você optar por criar um mapa de transformação personalizado, ele deverá atender aos seguintes requisitos de mapeamento.
    Tabela 2. Requisitos para mapas de transformação LDAP personalizados
    Tabela de fonte Campo de fonte Tabela de destino Campo de destino Aglutinar Descrição
    ldap_import u_source sys_user fonte falso O campo u_source identifica o DN LDAP do usuário ou grupo importado. O sistema usa este campo para determinar que um usuário requer autenticação LDAP para encontrar o gerente de um usuário e alocar usuários em grupos.
    ldap_import Selecione um dos seguintes campos:
    • u_samaccountname
    • u_dn
    • u_cn
    sys_user user_name verdadeiro Se o LDAP se integrar ao Active Directory, selecione u_samaccountname como o campo de fonte. Se outros diretórios LDAP forem usados, selecione u_dn ou u_cn como o campo de fonte.

    Diferenças entre mapas de transformação LDSP e mapas de importação de legado

    Ao especificar relacionamentos de mapeamento LDAP usando mapas de transformação, há uma grande diferença em como os campos de referência são definidos para o gerente e o departamento.

    Ao usar um mapa de transformação, é necessário usar um script de transformação para criar referências. Isso ocorre porque o valor associado a um atributo LDAP como "gerente" é o nome diferenciado (DN) do gerente.

    Sem alguma lógica adicional em vigor, o resultado é a criação de um registro de usuário com um nome de gerente igual ao nome diferenciado desse usuário LDAP. A integração inclui um script de transformação para facilitar a criação dessas referências. O mapa de transformação padrão "Importação de usuário LDAP" inclui scripts de transformação para essas referências.

    Relacionamentos de mapeamento existentes
    Ao atualizar mapas de importação legados para mapas de transformação, é possível manter os relacionamentos de mapeamento LDAP existentes antes da adição da aplicação LDAP do sistema. O servidor LDAP tem um campo de mapa que é uma referência ao mapa de importação legado.
    Nota:
    Por padrão, este campo está oculto. Portanto, é preciso configurar o formulário para exibi-lo.
    Se quiser fazer a transição usando um mapa de transformação, limpe a referência para o mapa de importação legado.
    Configurações de mapa de importação LDAP
    Verifique e use atributos para limitar os campos que a integração importa da fonte LDAP. Além disso, é importante mapear o campo user_name para o atributo LDAP que contém o ID de login do usuário. No Active Directory, este geralmente é o atributo sAMAccountName. Se quiser importar e aglutinar em um atributo binário (como objectSID ou objectGUID), será necessário criar um script de transformação personalizado.
    Nota:
    Qualquer valor mapeado para o campo user_name deve ser exclusivo.

    Se um mapa de transformação (como importação de usuário LDAP) não for especificado, a integração usará os seguintes mapeamentos-padrão:

    Tabela 3. Mapeamento-padrão de importação LDAP
    Campo de usuário ou variável Atributo LDAP
    user_name sAMAccountName
    e-mail mail
    telefone telephoneNumber
    home_phone homePhone
    mobile_phone para celular
    first_name givenName
    last_name sn
    título título
    departamento departamento
    gerente gerente
    middle_name iniciais
    u_memberof grupos
    u_member membros
    u_manager gerente

    Transformação de dados LDAP

    Se um atributo LDAP contiver dados simples, o mapa de transformação vinculará um atributo LDAP importado a um campo apropriado na tabela de destino (Usuário ou Grupo). Por exemplo, dados de amostra no atributo sAMAccountName são mapeados para o campo ID do usuário na tabela de usuários.

    Se os dados LDAP importados forem mapeados para um campo de referência, a instância procurará um registro existente correspondente. Se não houver nenhum registro correspondente, a instância criará um novo registro para o campo de referência, a menos que o mapeamento do campo especifique o contrário.

    Por exemplo, suponha que o atributo LDAP seja mapeado para o campo de referência Local na tabela de usuários. Sempre que a importação traz um valor de atributo não correspondente a um valor de registro de local existente, o mapa de transformação cria um novo registro de local. O novo registro de local tem o mesmo valor do atributo importado, e o registro do usuário importado agora tem um link para o novo registro de local.

    No entanto, há momentos em que o atributo LDAP retorna um nome diferenciado (DN), que é essencialmente uma referência a outro registro no diretório LDAP. Por exemplo, o atributo gerente normalmente contém o nome diferenciado do gerente da entrada do diretório LDAP atual. Em geral, um DN importado usa uma cadeia de caracteres de texto longa, como: cn=Beth Anglin,ou=Users,dc=my-domain,dc=com.
    Aviso:
    Certifique-se de que os campos de destino sejam longos o suficiente para conter um DN. Muitos campos de texto usam o tamanho-padrão de 40 caracteres, que pode não ser longo o suficiente para alguns valores de DN. O sistema ServiceNow trunca quaisquer valores que excedam o tamanho do campo.

    Os administradores normalmente não desejam que o sistema crie novos usuários a partir do valor DN porque o novo usuário não tem associação com um usuário existente. Em vez disso, os administradores desejam que a importação localize o registro de usuário existente do gerente e o associe ao usuário recém-importado. A inclusão de script LDAPUtils contém as funções setManager e processManagers, que podem analisar um DN e pesquisar um usuário existente. Para obter melhores resultados, use essas funções para criar um mapa de transformação personalizado.

    Por exemplo, o script de mapa de transformação de importação de usuário LDAP chama a função setManager :
    
    // 
    // The manager coming in from LDAP is the DN value for the manager.   
    // The line of code below will locate the manager that matches the 
    // DN value and set it into the target record.  If you are not  
    // interested in getting the manager from LDAP then remove or 
    // comment out the line below
    ldapUtils. setManager (source , target ) ;
    Em alguns casos, a integração importa o registro de um usuário antes de importar o registro de usuário do gerente associado. Para lidar com esses casos, convém chamar a função processManagers após a conclusão da transformação. Por exemplo, o mapa de transformação de importação de usuário LDAP usa um script de transformação onComplete para chamar a função processManagers.
    // It is possible that the manager for a user did not exist in the database when // the user was processed and therefore we could not locate and set the manager field. // The processManagers call below will find all those records for which a manager could  // not be found and attempt to locate the manager again. This happens at the end of the  // import and therefore all users should have been created and we should be able to  // locate the manager at this point 
    ldapUtils. processManagers ( ) ;

    Remova ou comente as chamadas de função setManager e processManagers se sua integração LDAP não usar o atributo gerente.