Autenticação LDAP

O Lightweight Directory Access Protocol (LDAP) é um protocolo de Internet para acessar e manter serviços de informações de diretório distribuído em uma rede. Se você depender do LDAP para autenticar usuários para aplicativos da web, reserve um tempo para revisar o conteúdo deste tópico antes de iniciar.

Diretrizes de Programação

Ao autenticar com LDAP, observe as diretrizes a seguir:
  • Use somente uma interface LDAP -- os usuários podem ser autenticados somente por meio de um conexão com um servidor LDAP.
  • Active Directory -- o uso de uma interface do Active Directory é proibido, no entanto, a autenticação LDAP com o Active Directory é suportada.
  • Propriedades do administrador -- o administrador de LDAP deve ter acesso a todas as propriedades LDAP do usuário.
Atributos LDAP lidos por IBM® API Connect são os seguintes:
Atributo Definição
mail Endereço de e-mail SMTP do usuário.
cn Usado internamente para determinar o nome comum do usuário.
sn Usado internamente para determinar o sobrenome do usuário.
givenname Usado internamente para determinar o nome do usuário.
Prefixo de Search dn Usado como nome do usuário.

Usando um servidor LDAP para autenticação do usuário

Toda entrada em um servidor do diretório LDAP tem um nome distinto (DN). O DN é o nome que identifica exclusivamente uma entrada no diretório. Um DN é composto de pares attribute=value, separados por vírgulas. Por exemplo:
cn=Ben Gray,ou=editing,o=New York Times,c=US
cn=Lucille White,ou=editing,o=New York Times,c=US
cn=Tom Brown,ou=reporting,o=New York Times,c=US

Qualquer um dos atributos definidos no esquema do diretório pode ser usado para compor um DN. A ordem dos pares de valores de atributo do componente é importante. O DN contém um componente para cada nível da hierarquia de diretório da raiz até o nível no qual a entrada reside. DNs de LDAP começam com o atributo mais específico (em geral, algum tipo de nome) e continuam com atributos progressivamente mais amplos, muitas vezes terminando com um atributo de país. O primeiro componente do DN é referenciado como Nome Distinto Relativo (RDN). Ele identifica uma entrada distintamente de quaisquer outras entradas que possuem o mesmo pai. Nos exemplos anteriores, o RDN "cn=Ben Gray" separa a primeira entrada da segunda entrada, (com RDN "cn=Lucille White"). Esses dois DNs de exemplo são, ao contrário, equivalentes. O par atributo=valor que compõe o RDN para uma entrada também deve estar presente na entrada. (Isso não é verdadeiro para os outros componentes do DN.)

Exemplos

Nos exemplos a seguir, uma procura de usuário é executada a partir do DN Base. A procura é feita anonimamente, ou se a ligação autenticada for usada, um usuário autenticado será usado. O DN de procura anexa o prefixo, o nome do usuário fornecido e o sufixo. Se o prefixo usado for (uid= e o sufixo usado for ")", uid se tornará o atributo de nome do usuário.. O filtro de procura padrão usado é: (|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter})) e atributos usados para o prefixo também são incluídos no filtro de procura. Nesse caso, em que '(uid=' é o prefixo, ao procurar usuários, o filtro de procura se torna:
  (|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter}*)(uid={filter}*))
em que {filter} é substituído por texto real.

O DN de ligação autenticada é um usuário no servidor LDAP externo com permissão para obter os DNs base e procurar o diretório LDAP dentro da base de procura definida. Ele também deverá estar apto a ler outras propriedades do usuário e será usado se o acesso anônimo ao LDAP para obter DNs base e para procurar e obter acesso a atributos do usuário não for permitido. Quando uma procura é executada para Steve, o filtro de consulta LDAP mostrado no exemplo a seguir é usado e a procura é feita a partir do DN base especificado na IU. Quando o DN do usuário é retornado, o DN e a senha são usados para autenticar o usuário:

(|(cn=Steve*)(sn=Steve*)(mail=Steve*)(givenName=Steve*)(uid=Steve*)).
Para ligação durante chamadas de login, a sequência de procura usada é o prefixo. Por exemplo, se o prefixo é '(uid=', a sequência de procura usada para procurar um usuário durante o login se torna: (uid=Steve).
Usando o atributo mail como o nome do usuário
Quando você deseja usar um endereço de e-mail como o nome do usuário (por exemplo, steve@company.com), geralmente você usa o atributo de e-mail como o prefixo '(mail='. Nesse caso, use a sequência de procura a seguir para executar a procura internamente (assumindo '(mail=' como prefixo):
(|(cn=steve@company.com*)(sn=steve@company.com*)(mail=steve@company.com*)
(givenName=steve@company.com*)(mail=steve@company.com*))  
No exemplo anterior, se o DN for localizado, a senha será usada com o DN para executar uma ligação. O primeiro resultado é obtido, portanto, certifique-se de usar um atributo exclusivo para o nome do usuário. Em seguida, as propriedades LDAP para o usuário são lidas (cn, sn, mail, givenName). Se as propriedades LDAP não puderem ser lidas usando o usuário conectado, elas serão lidas a partir do DN do usuário usando credenciais de ligação autenticadas. Se o atributo de nome de usuário for diferente, ele também será consultado. Por exemplo, se o prefixo é '(uid=', o atributo uid também é lido a partir objeto DN do usuário:
(|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter}*))
Nota: o prefixo e o sufixo não podem ser usados para obter o DN do usuário diretamente. Por exemplo, a tentativa a seguir para obter diretamente o DN de um usuário falha:
Prefix: "uid=", Suffix: ",ou=users,dc=company,dc=com"

Indicações de LDAP

As indicações de LDAP permitem que uma árvore de diretórios seja particionada e distribuída entre múltiplos servidores LDAP. Uma indicação de LDAP a maneira de um controlador de domínio de indicar a um aplicativo cliente que ele não tem uma cópia de um objeto solicitado, enquanto fornece ao cliente um local que provavelmente retém o objeto. O cliente usa então o objeto como base para uma procura DNS para um controlador de domínio.

O suporte do API Connect para indicação LDAP inclui:
  • Procurar usuários que fazem parte de múltiplas árvores e florestas do Active Directory.
  • Autenticação de usuários no Cloud Manager, no API Manager e no portal CMS.
Nota: API Connect O suporte de indicação LDAP depende das seguintes condições:
  • Um único host/porta LDAP está configurado com credenciais do administrador e todos os usuários são referidos a partir do DN base da árvore/servidor.
  • Como parte da procura de usuário seguindo a indicação de LDAP, as mesmas credenciais do administrador são usadas nas árvores/florestas de recebimento de dados.
  • A autenticação da API LDAP não suporta indicação de LDAP externa. A indicação de LDAP interna é suportada.