INFO: Como utilizar ADSI para consultar um servidor LDAP de terceiros

Traduções de Artigos Traduções de Artigos
Artigo: 251195 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

O fornecedor (LIGHTWEIGHT Directory Access Protocol) para interfaces de serviço de directório Active Directory (ADSI) é utilizado para obter informações de servidores LDAP de outros fabricantes. Este artigo descreve vários problemas que podem surgir e a ultrapassá-los.

Mais Informação

Quando utilizar ADSI para obter informações de um servidor LDAP de outros fabricantes, tem de:
  • Determine a disponibilidade de informações de esquema.
  • Obtenha a autenticação correcta.
  • Impedir que uma procura num contentor não existente.

Determinar a disponibilidade das informações de esquema

De acordo com o RFC Request for Comments () 2251, LDAP versão 3 servidores devem expor um atributo subSchemaSubEntry fora da empresa de serviço de directório (rootDSE) raiz. ADSI utiliza este atributo para localizar informações subschema, que, em seguida, tenta validar e colocar em cache.

Para obter informações adicionais no como ADSI coloca em cache o subschema, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
251189INFO: Localizar um esquema de servidor LDAP em cache por ADSI
ADSI utiliza as informações de subschema para expor as interfaces adequadas para uma determinada classe e para obter atributos a sintaxe correcta a partir da cache de propriedades.

Se não conseguir localizar ou valida correctamente as informações de subschema ADSI, utiliza o esquema de versão 2 do LDAP predefinido. Porque o LDAP versão 2 servidores não expõem um subschema, ADSI mantém informações de esquema internamente sobre muitos atributos padrão e classes. Se ADSI utiliza o esquema da versão 2 predefinido, não tem acesso às informações de esquema não padrão, incluindo personalizadas classes ou atributos que foram criados no servidor.

Se não existem informações de esquema sobre a sintaxe do atributo estiverem disponíveis, não consegue obter o atributo da cache de propriedades ADSI. Neste caso, pode utilizar o método IADsPropertyList.GetPropertyItem para especificar uma sintaxe para o atributo da propriedade pedido. Quando especificar um valor de ADsTYPE, evite a necessidade de sintaxe de informações sobre esse atributo.

Se utilizar o Microsoft ActiveX Data Objects (ADO) e não tem informações de esquema disponíveis, que terá de obter a cadeia ADsPath do objecto, ligar o objecto no directório e, em seguida, utilize o método IADsPropertyList.GetPropertyItem . Não existe nenhuma solução para utilizar o ADO directamente sem informações de esquema.

Obter autenticação correcta

Existem várias formas para autenticar um cliente LDAP a um servidor LDAP com ADSI. Entre estes métodos, só um enlace simples é suportado originalmente pelo LDAP para transmitir credenciais para o servidor. Noutros casos, o cliente e o servidor tem concordar em método, normalmente com a utilização de outra autoridade de segurança ou protocolo proprietário.

Por exemplo, o método GetObject (ou a função ADsGetObject C) utiliza o sinalizador ADS_SECURE_AUTHENTICATION, que poderá resultar numa ligação LDAP que utiliza o Microsoft Windows NT Challenge/Response (NTLM). Este enlace é provável que falhar porque muitos servidores de terceiros não aceitam NTLM. Se a autenticação falhar, a ligação segura é desqualificada para uma ligação anónima; por exemplo, uma simples ligar sem quaisquer credenciais de utilizador. Neste ponto, a aplicação poderá ter acesso apenas a um subconjunto de informações (ou mesmo para não) dependendo da configuração do servidor.

Para evitar esta situação, efectuar uma ligação simples utilizando o método OpenDSObject (ou a função ADsOpenObject C) e especifique zero (sem sinalizadores) ou ADS_FAST_BIND (descrita abaixo) para o parâmetro lnReserved . Com o enlace simples, passar um nome de utilizador attributed válido (cn = nome de utilizador, cn =...) e uma palavra-passe para o servidor LDAP para verificação. Para obter um enlace simples com o ADO, defina a propriedade Encriptar palavra-passe do objecto ADODB.Connection como FALSO e atribuir o attributed nome de utilizador e palavra-passe às propriedades do ID de utilizador e palavra-passe respectivamente.

Impedir que uma procura de um contentor não existente

Por predefinição, o ADSI executa uma procura objectClass do objecto base especificado numa consulta ou ligação. Esta procura falhará se o nome distinto que for especificado não existir no directório.

Por exemplo, suponha que uma procura está definida para iniciar em "the = empresa, c = US" para todos os utilizadores no directório. A estrutura do directório é que não existe não contentor "Empresa" real, mas em vez de dois objectos na raiz do directório com nomes distintos de "ou = América do Norte, o = empresa, c = US"e"ou = Europa, o = empresa, c = US". ADSI emite uma procura objectClass "the = empresa, c = US" que falhar, parou a procura para os utilizadores antes de ser iniciado.

A solução mais fácil para este problema consiste em especificar um objecto de base que realmente existe no directório. Se não for possível, devido a implementação do directório, para efectuar a procura pretendida com um objecto de base válido, tem de evitar ADSI efectuem uma procura de objectClass inicial.

Para impedir que uma procura de objectClass no objecto, de passar o sinalizador ADS_FAST_BIND no parâmetro lnReserved do método OpenDSObject (ou a função ADsOpenObject C). Uma vez que este sinalizador determina acções do ADSI depois do enlace, não afecta autenticação correcta. Tenha em atenção que este sinalizador não está disponível antes a ADSI versão 2.5.

O fornecedor de ADO para o Microsoft Windows 2000 expõe propriedades de ADSI sinalizador no objecto ADODB.Connection . Pode definir o sinalizador ADS_FAST_BIND para esta propriedade impedir que as consultas de ADO efectuar uma procura de objectClass. A propriedade de ADSI sinalizador não está presente no ADSI versão 2.5 para o Microsoft Windows NT versão 4.0 ou Microsoft Windows 9 x. Para obter uma solução possível, consulte o seguinte artigo:

223049COMO: Consultar Exchange 5.x anonimamente através de ADSI

Referências

Para obter informações adicionais sobre ADSI, consulte os seguintes artigos na base de dados de conhecimento da Microsoft:
233023COMO: Localizar todos os fornecedores de ADSI num sistema
187529COMO: Utilizar ADO para objectos de acesso através de um fornecedor de ADSI LDAP
251189INFO: Localizar um esquema de servidor LDAP em cache por ADSI
223049COMO: Consultar Exchange 5.x anonimamente através de ADSI

Para obter informações gerais sobre ADSI, consulte o seguinte Web site:
http://msdn2.microsoft.com/library/aa772170.aspx

Propriedades

Artigo: 251195 - Última revisão: 28 de setembro de 2007 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft Active Directory Service Interfaces 2.5
Palavras-chave: 
kbmt kbinfo kbmsg KB251195 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 251195
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com