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: (&(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=" (&(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=" (&(objectClass=organizationalUnit)(ou=%searchParm%))">
<LDAPCDXAttrMappings>
<LDAPCDXAttrMapping ldapAttr="name" cdxName="Group" />
<LDAPCDXAttrMapping ldapAttr="description" cdxName=" Description" default="Unknown" />
</LDAPCDXAttrMappings>
<LDAPEntryLinks>
<LDAPEntryLink linkedToLDAPEntity="User" linkingSearchFilter="
(&(objectClass=inetOrgPerson)(departmentNumber=%distinguishedName%))"
linkingSearchScope="onelevel" />
</LDAPEntryLinks>
</LDAPEntry>
</LDAPEntries>