Mapeamento LDAP

Um repositório LDAP consiste em várias entradas. Cada entrada representa um objeto no diretório que é identificado por um nome distinto e pode conter um ou mais atributos. Em um repositório LDAP típico, geralmente há uma entrada para usuários e uma entrada para grupos. A conexão entre usuários e grupos pode ser implementada de duas maneiras diferentes:

  • Os usuários pertencentes a um grupo são definidos em um atributo especial de vários valores na entrada Grupo.

  • Os grupos a que um usuário pertence são definidos em um atributo especial de vários valores na entrada Usuário.

O mapeamento entre objetos de segurança LDAP e objetos de segurança-base é armazenado em um documento XML que pode ser processado pela tarefa em batch de importação LDAP. Como parte da configuração do seu sistema para importação LDAP, você precisa definir o mapeamento. O pacote-base fornece um arquivo de mapeamento de amostra chamado ldapdef.xml que pode ser usado como referência inicial e alterado de acordo com seus requisitos de negócios e repositório LDAP particular.

Depois que você definiu o documento XML de mapeamento, isso é configurado como um parâmetro na tarefa em batch F1-LDAP.

A estrutura XML:

  • O elemento LDAPEntry mapeia as entradas LDAP para os objetos de sistema (Usuário ou Grupo). O arquivo de mapeamento deve conter um, e apenas um, elemento LDAPEntry para o Usuário e um para o Grupo.

  • O elemento LDAPCDXAttrMapping dentro do elemento LDAPEntry mapeia os atributos na entrada LDAP para os atributos no objeto do sistema.

  • O elemento LDAPEntryLinks descreve objetos vinculados à entrada LDAP. Quando mapear a entidade do usuário, você precisará descrever como os grupos a que o usuário pertence são recuperados. Quando mapear a entidade do grupo, você precisará descrever como os usuários contidos no grupo são recuperados.

A tabela a seguir descreve os atributos a serem definidos para cada elemento.

Elemento

Atributo

Descrição

LDAPEntry

name

O nome da entrada LDAP:

- Grupo

- Usuário

baseDN

O nome distinto base no LDAP para esta entrada.

cdxEntity

O nome da entidade de produto base para a qual a entrada LDAP é mapeada:

- Grupo

- Usuário

searchFilter

Um filtro de pesquisa LDAP usado para localizar entradas LDAP. Uma string %searchParm% nesse filtro é substituída pelo valor do parâmetro de usuário ou grupo quando a tarefa em batch F1-LDAP é enviada.

Scope

Define o escopo da pesquisa. Os valores válidos são:

- onelevel (o valor normalmente usado)

- subtree

LDAPCDXAttrMapping

ldapAttr

O nome do atributo LDAP a ser mapeado. Note que ele pode ser referenciado mais de uma vez para que seja possível mapear um elemento LDAP para vários elementos do produto-base. Por exemplo, se um endereço de e-mail deve ser usado no ID de Log-in e no Endereço de E-mail.

cdxName

O nome do atributo do produto base a ser mapeado.

Para o Usuário, este é o elemento dentro do objeto de negócios F1-IDMUser.

Para o Grupo, este é o ‘grupo’ ou a ‘descrição’.

default

O valor padrão será atribuído ao elemento referenciado no atributo cdxName se um desses eventos ocorrerem:

- O atributo LDAP contém um valor nulo ou vazio.

- O atributo LDAP não existe ou não é especificado.

Os valores padrão são aplicados apenas quando uma nova entrada é criada e não são aplicados para entidades atualizadas.

autoGenerate

Defina como verdadeiro para ativar a geração automática do ID do usuário. Se verdadeiro, o sistema definirá o ID do usuário com a <inicial do nome>+<sobrenome> em letras maiúsculas, até o máximo de 8 caracteres. Se um usuário existente for encontrado para o ID gerado, um número substituirá o oitavo caractere (ou será anexado ao final). O sistema incrementará o número até que um ID exclusivo seja encontrado.

transform

Use este atributo para indicar se deve ocorrer uma transformação de dados. Valores válidos: uppercase|truncate. Note que este atributo não deve ser usado em conjunto com o atributo autoGenerate.

LDAPEntryLink

linkedToLDAPEntity

O nome da entidade vinculada (User ou Group). Use User ao descrever a entidade Group. Use Group ao descrever a entidade User.

linkingLDAPAttr

O nome de atributo de vários valores na entrada LDAP que contém a entidade vinculada.

linkingSearchFilter

O filtro de pesquisa a ser aplicado para recuperar a lista de objetos vinculados. Por exemplo:

(&amp;(objectClass=group)(memberOf=%attr%))

O filtro de pesquisa pode conter a sequência de caracteres %attr % que atua como uma sequência de caracteres de substituição e é substituída em tempo de execução pelo valor do atributo "attr" da entidade importada. Se a entrada LDAP que você está descrevendo for Group e a sequência de caracteres for %name%, ela será substituída pelo valor do atributo "name" do grupo que está sendo importado. Se a entrada LDAP que está descrevendo for User e a sequência de caracteres for %dn%, ela será substituída pelo atributo "dn" do User que está sendo importado.

linkingSearchScope

Define o escopo da pesquisa. Os valores válidos são:

- onelevel (o valor normalmente usado)

- subárvore

Mapeamento de Amostra

O XML a seguir descreve um mapeamento de amostra. O exemplo supõe o seguinte:

  • O atributo do produto-base displayProfileCode é definido com o padrão "NORTHAM" quando um novo usuário é adicionado.

  • A entrada do Grupo LDAP contém a lista de usuários que pertencem ao grupo no atributo departmentNumber.

  • Os grupos a que um usuário pertence são recuperados aplicando um filtro de pesquisa.

<LDAPEntries>
  <LDAPEntry name=" User" baseDN="ou=people,dc=example,dc=com" cdxEntity=" 
   user" searchFilter=" (&amp;(objectClass=inetOrgPerson)(uid=%searchParm%))">
    <LDAPCDXAttrMappings>
      <LDAPCDXAttrMapping ldapAttr="uid" cdxName=" user" />
      <LDAPCDXAttrMapping ldapAttr="cn" cdxName="externalUserId" />
      <LDAPCDXAttrMapping cdxName="language" default=" ENG" />
      <LDAPCDXAttrMapping ldapAttr="givenName" cdxName="firstName"/>
      <LDAPCDXAttrMapping ldapAttr="sn" cdxName= "lastName"/>
      <LDAPCDXAttrMapping cdxName="displayProfileCode" default="NORTHAM" />
      <LDAPCDXAttrMapping cdxName="toDoEntriesAge1" default="30" />
      <LDAPCDXAttrMapping cdxName="toDoEntriesAge2" default="90" />
      <LDAPCDXAttrMapping cdxName="userEnable" default="ENBL"/>
    </LDAPCDXAttrMappings>
    <LDAPEntryLinks>
      <LDAPEntryLink linkedToLDAPEntity="Group" linkingLDAPAttr="departmentNumber" />
    </LDAPEntryLinks>
 </LDAPEntry>
  <LDAPEntry name="Group" baseDN="ou=people,dc=example,dc=com" cdxEntity=" 
   Group" searchFilter=" (&amp;(objectClass=organizationalUnit)(ou=%searchParm%))">
    <LDAPCDXAttrMappings>
      <LDAPCDXAttrMapping ldapAttr="name" cdxName="Group" />
      <LDAPCDXAttrMapping ldapAttr="description" cdxName=" Description" default="Unknown" />
    </LDAPCDXAttrMappings>
    <LDAPEntryLinks>
      <LDAPEntryLink linkedToLDAPEntity="User" linkingSearchFilter=" 
      (&amp;(objectClass=inetOrgPerson)(departmentNumber=%distinguishedName%))" 
     linkingSearchScope="onelevel" />
    </LDAPEntryLinks>
  </LDAPEntry>
</LDAPEntries>