IP : Lightweight Directory Access Protocol (LDAP)

O LDAP nos dispositivos de IOS que usam o atributo dinâmico traça o exemplo de configuração

14 Outubro 2016 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


Introdução

Este documento descreve como usar a autenticação do Lightweight Directory Access Protocol (LDAP) em finais do cabeçalho do½ do¿Â do Cisco IOSï e mudar o nome destacado relativo do padrão (RDN) do Common Name (CN) ao sAMAccountName.

Nota: Contribuído por Atri Basu, por Shaik Zubair, e por Craig Lorentzen, engenheiros de TAC da Cisco.

Pré-requisitos

Requisitos

Não existem requisitos específicos para este documento.

Componentes Utilizados

A informação neste documento é baseada em um dispositivo IOS Cisco que execute o Cisco IOS Software Release 15.0 ou Mais Recente.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.

Convenções

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

Edição de núcleo

A maioria de microsoft ative directory (AD) com usuários LDAP define tipicamente seu RDN para ser o sAMAccountName. Se você usa o Proxy de autenticação (autêntico-proxy) e uma ferramenta de segurança adaptável (ASA) como um final do cabeçalho para seus clientes VPN, este está fixado facilmente se você define o tipo de servidor AD quando você define o servidor AAA ou se você incorpora o comando do LDAP-nomear-atributo. Contudo, no Cisco IOS Software, nenhuma destas opções está disponível. À revelia, o Cisco IOS Software usa o valor de atributo do CN no AD para a autenticação username. Por exemplo, um usuário é criado no AD enquanto John Fernandes, mas no seu usuário - a identificação está armazenada como jfern. À revelia, o Cisco IOS Software verifica o valor do CN. Isto é, as verificações John Fernandes do software para a autenticação username e não o valor do sAMAccountName de jfern para a autenticação. A fim forçar o Cisco IOS Software a verificar o username do valor de atributo do sAMAccountName, use mapas dinâmicos do atributo como detalhado neste documento.

Solução

Embora os dispositivos IOS Cisco não apoiem estes métodos da alteração RDN, você pode usar mapas dinâmicos do atributo no Cisco IOS Software a fim conseguir um resultado similar. Se você incorpora o comando do atributo do ldap da mostra no final do cabeçalho do Cisco IOS, você verá esta saída:

Atributo LDAP Formato Atributo AAA
airespaceBwDataBurstContract Ulong DATA-largura de banda-explosão-contr do bsn-
userPassword Série senha
airespaceBwRealBurstContract Ulong bsn-realtime-largura de banda-explosão-C
employeeType Série empregado-tipo
airespaceServiceType Ulong tipo de serviço
airespaceACLName Série bsn-ACL-nome
priv-LVL Ulong priv-LVL
memberOf Corda DN suplicante-grupo
NC Série username
airespaceDSCP Ulong bsn-DSCP
policyTag Série etiqueta-nome
airespaceQOSLevel Ulong bsn-qos-nível
airespace8021PType Ulong bsn-8021p-type
airespaceBwRealAveContract Ulong bsn-realtime-largura de banda-médio
airespaceVlanInterfaceName Série bsn-VLAN-relação-nome
airespaceVapId Ulong bsn-WLAN-identificação
airespaceBwDataAveContract Ulong bsn-DATA-largura de banda-médio-engodo
sAMAccountName Série SAM-conta-nome
meetingContactInfo Série info de contato
telephoneNumber Série número de telefone

Como você pode ver do atributo destacado, o dispositivo de acesso da rede de IOS Cisco (NAD) usa este mapa do atributo para pedidos de autenticação e para respostas. Basicamente, um mapa dinâmico do atributo LDAP no dispositivo IOS Cisco funciona bidirecional. Ou seja os atributos estão traçados não somente quando uma resposta é recebida, mas também quando os pedidos LDAP forem mandados. Sem nenhuns mapas definidos pelo utilizador do atributo, uma configuração ldap básica no NAD, você vê este mensagem de registro quando o pedido é mandado:

*Jul 24 11:04:50.568: LDAP: Check the default map for aaa type=username
*Jul 24 11:04:50.568: LDAP: Ldap Search Req sent
ld 1054176200
base dn DC=csco,DC=com
scope 2
filter (&(objectclass=*)(cn=xyz))ldap_req_encode
put_filter "(&(objectclass=person)(cn=xyz))"
put_filter: AND
put_filter_list "(objectclass=person)(cn=xyz)"
put_filter "(objectclass=person)"
put_filter: simple
put_filter "(cn=xyz)"
put_filter: simple
Doing socket write
*Jul 24 11:04:50.568: LDAP: LDAP search request sent successfully (reqid:13)

A fim mudar este comportamento e forçá-lo para usar o atributo do sAMAccountName para a verificação username, inscreva o comando username do mapa do atributo do ldap criar primeiramente este mapa dinâmico do atributo:

ldap attribute map username
   map type sAMAccountName username

Uma vez que este mapa do atributo foi definido, incorpore o comando do <dynamic-attribute-map-name> do mapa do atributo traçar este mapa do atributo ao Grupo de servidores AAA selecionado (AAA-server).

Nota: A fim facilitar este processo inteiro, a identificação de bug Cisco CSCtr45874 (clientes registrados somente) foi arquivada. Se esta requisição de aprimoramento é executada, permitirá que os usuários identifiquem que tipo do servidor ldap está sendo usado e mudem automaticamente alguns destes mapas padrão para refletir os valores usados por esse servidor particular.

Configurar

Nesta seção, você encontrará informações para configurar os recursos descritos neste documento.

Nota: Use a Command Lookup Tool (somente clientes registrados) para obter mais informações sobre os comandos usados nesta seção.

Configuração de exemplo

Este documento utiliza as seguintes configurações:

Ferramentas AD

A fim verificar o nome absoluto de Distinguised (DN) de um usuário, incorpore um destes comandos do comando prompt AD:

dsquery user -name user1

OU

dsquery user -samid user1

Nota: "user1" mencionado acima está na corda do regex. Você pode igualmente recrutar todos os DN do username que começam com o usuário usando a corda do regex como o “user*”.

A fim recrutar todos os atributos de um usuário único, incorpore este comando do comando prompt AD:

dsquery * -filter "(&(objectCategory=Person)(sAMAccountName=username))" -attr *

Problemas potenciais

Em um desenvolvimento LDAP, a operação de busca é executada primeiramente, e a operação do ligamento é executada mais tarde. Esta operação é executada porque, se o atributo da senha é retornado como parte da operação de busca, a verificação de senha pode ser feita localmente no cliente de LDAP e não há nenhuma necessidade para uma operação extra do ligamento. Se o atributo da senha não é retornado, uma operação do ligamento pode ser executada mais tarde. Uma outra vantagem quando você executa a operação de busca primeiramente e a operação do ligamento são mais tarde que o DN recebido no resultado da busca pode ser usado como o usuário DN em vez da formação de um DN quando o username (valor do CN) é prefixado com uma base DN.

Pôde haver umas edições quando o ligamento-primeiro comando da autenticação é usado junto com um atributo definido pelo utilizador que mudasse onde o mapa do atributo username aponta. Por exemplo, se você usa esta configuração, você é provável ver uma falha em sua tentativa de autenticação:

ldap server ss-ldap
ipv4 192.168.1.3
attribute map ad-map
transport port 3268
bind authenticate root-dn CN=abcd,OU=Employees,OU=qwrt Users,DC=qwrt,DC=com
   password blabla
base-dn DC=qwrt,DC=com
authentication bind-first
ldap attribute-map ad-map
 map type sAMAccountName username

Em consequência, você verá as credenciais inválidas, Mensagem de Erro do código do resultado =49. Os mensagens de registro olharão similares a estes:

Oct  4 13:03:08.503: LDAP: LDAP: Queuing AAA request 0 for processing
Oct  4 13:03:08.503: LDAP: Received queue event, new AAA request
Oct  4 13:03:08.503: LDAP: LDAP authentication request
Oct  4 13:03:08.503: LDAP: Attempting first  next available LDAP server
Oct  4 13:03:08.503: LDAP: Got next LDAP server :ss-ldap
Oct  4 13:03:08.503: LDAP: First Task: Send bind req
Oct  4 13:03:08.503: LDAP: Authentication policy: bind-first
Oct  4 13:03:08.503: LDAP: Dynamic map configured
Oct  4 13:03:08.503: LDAP: Dynamic map found for aaa type=username
Oct  4 13:03:08.503: LDAP: Bind: User-DN=sAMAccountName=abcd,DC=qwrt,DC=com
ldap_req_encode
Doing socket write
Oct  4 13:03:08.503: LDAP:  LDAP bind request sent successfully (reqid=36)
Oct  4 13:03:08.503: LDAP: Sent the LDAP request to server
Oct  4 13:03:08.951: LDAP: Received socket event
Oct  4 13:03:08.951: LDAP: Checking the conn status
Oct  4 13:03:08.951: LDAP: Socket read event socket=0
Oct  4 13:03:08.951: LDAP: Found socket ctx
Oct  4 13:03:08.951: LDAP: Receive event: read=1, errno=9 (Bad file number)
Oct  4 13:03:08.951: LDAP: Passing the client ctx=314BA6ECldap_result
wait4msg (timeout 0 sec, 1 usec)
ldap_select_fd_wait (select)
ldap_read_activity lc 0x296EA104
Doing socket read
LDAP-TCP:Bytes read = 109
ldap_match_request succeeded for msgid 36 h 0
changing lr 0x300519E0 to COMPLETE as no continuations
removing request 0x300519E0 from list as lm 0x296C5170 all 0
ldap_msgfree
ldap_msgfree
Oct  4 13:03:08.951: LDAP:LDAP Messages to be processed: 1
Oct  4 13:03:08.951: LDAP: LDAP Message type: 97
Oct  4 13:03:08.951: LDAP: Got ldap transaction context from reqid 
   36ldap_parse_result
Oct  4 13:03:08.951: LDAP: resultCode:    49     (Invalid credentials)
Oct  4 13:03:08.951: LDAP: Received Bind Responseldap_parse_result 
   ldap_err2string
Oct  4 13:03:08.951: LDAP: Ldap Result Msg: FAILED:Invalid credentials, 
   Result code =49
Oct  4 13:03:08.951: LDAP: LDAP Bind operation result : failed
Oct  4 13:03:08.951: LDAP: Restoring root bind status of the connection
Oct  4 13:03:08.951: LDAP: Performing Root-Dn bind operationldap_req_encode
Doing socket write
Oct  4 13:03:08.951: LDAP: Root Bind on CN=abcd,DC=qwrt,DC=com
initiated.ldap_msgfree
Oct  4 13:03:08.951: LDAP: Closing transaction and reporting error to AAA
Oct  4 13:03:08.951: LDAP: Transaction context removed from list [ldap reqid=36]
Oct  4 13:03:08.951: LDAP: Notifying AAA: REQUEST FAILED
Oct  4 13:03:08.951: LDAP: Received socket event
Oct  4 13:03:09.491: LDAP: Received socket event
Oct  4 13:03:09.491: LDAP: Checking the conn status
Oct  4 13:03:09.491: LDAP: Socket read event socket=0
Oct  4 13:03:09.491: LDAP: Found socket ctx
Oct  4 13:03:09.495: LDAP: Receive event: read=1, errno=9 (Bad file number)
Oct  4 13:03:09.495: LDAP: Passing the client ctx=314BA6ECldap_result
wait4msg (timeout 0 sec, 1 usec)
ldap_select_fd_wait (select)
ldap_read_activity lc 0x296EA104
Doing socket read
LDAP-TCP:Bytes read= 22
ldap_match_request succeeded for msgid 37 h 0
changing lr 0x300519E0 to COMPLETE as no continuations
removing request 0x300519E0 from list as lm 0x296C5170 all 0
ldap_msgfree
ldap_msgfree
Oct  4 13:03:09.495: LDAP: LDAP Messages to be processed: 1
Oct  4 13:03:09.495: LDAP: LDAP Message type: 97
Oct  4 13:03:09.495: LDAP: Got ldap transaction context from reqid 
   37ldap_parse_result
Oct  4 13:03:09.495: LDAP: resultCode:    0     (Success)P: Received Bind 
   Response
Oct  4 13:03:09.495: LDAP: Received Root Bind Response ldap_parse_result
Oct  4 13:03:09.495: LDAP: Ldap Result Msg: SUCCESS, Result code =0
Oct  4 13:03:09.495: LDAP: Root DN bind Successful on:CN=abcd,DC=qwrt,DC=com
Oct  4 13:03:09.495: LDAP: Transaction context removed from list [ldap reqid=37]
ldap_msgfree
ldap_result
wait4msg (timeout 0 sec, 1 usec)
ldap_select_fd_wait (select)
ldap_err2string
Oct  4 13:03:09.495: LDAP: Finished processing ldap msg, Result:Success
Oct  4 13:03:09.495: LDAP: Received socket event

As linhas destacadas indicam o que é errado com o ligamento inicial antes da autenticação. Trabalhará corretamente se você remove o ligamento-primeiro comando da autenticação da configuração acima.

Verificar

Use esta seção para confirmar se a sua configuração funciona corretamente.

A Output Interpreter Tool (apenas para clientes registrados) (OIT) suporta determinados comandos show. Use a OIT para exibir uma análise da saída do comando show.

  • mostre atributos do ldap

  • mostre o servidor ldap todo

Troubleshooting

Esta seção fornece informações que podem ser usadas para o troubleshooting da sua configuração.

Comandos para Troubleshooting

A Output Interpreter Tool (apenas para clientes registrados) (OIT) suporta determinados comandos show. Use a OIT para exibir uma análise da saída do comando show.

Nota: Consulte Informações Importantes sobre Comandos de Depuração antes de usar comandos debug.

  • debugar o ldap todo

  • debugar o evento do ldap

  • debug aaa authentication

  • debug aaa authorization


Informações Relacionadas


Document ID: 113689