Como posso descobrir minha cadeia de conexão LDAP?


108

Estamos em uma rede corporativa que está executando o diretório ativo e gostaríamos de testar algumas coisas LDAP (provedor de associação ao diretório ativo, na verdade) e até agora, nenhum de nós pode descobrir qual é a nossa cadeia de conexão LDAP. Alguém sabe como podemos encontrá-lo? A única coisa que sabemos é o domínio em que estamos.

Respostas:


101

O provedor de associação do ASP.NET Active Directory faz uma ligação autenticada ao Active Directory usando um nome de usuário, senha e "cadeia de conexão" especificados. A cadeia de conexão é composta pelo nome do servidor LDAP e o caminho completo do objeto de contêiner em que o usuário especificado está localizado.

A cadeia de conexão começa com o URI LDAP://.

Para o nome do servidor, você pode usar o nome de um controlador de domínio nesse domínio - digamos "dc1.corp.domain.com". Isso nos dá muito tempo LDAP://dc1.corp.domain.com/.

O próximo bit é o caminho completo do objeto contêiner em que o usuário de ligação está localizado. Digamos que você esteja usando a conta "Administrador" e o nome do seu domínio seja "corp.domain.com". A conta "Administrador" está em um contêiner chamado "Usuários" localizado um nível abaixo da raiz do domínio. Assim, o DN completo do "Usuários" container seria: CN=Users,DC=corp,DC=domain,DC=com. Se o usuário com o qual você está se vinculando estiver em uma OU, em vez de em um contêiner, o caminho incluirá "OU = ou-name".

Portanto, o uso de uma conta em uma OU nomeada Service Accountsque seja uma sub-OU de uma OU nomeada Corp Objectsque seja uma sub-OU de um domínio nomeado corp.domain.comteria um caminho completo de OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com.

Combine o LDAP://dc1.corp.domain.com/caminho completo com o contêiner em que o usuário de ligação está localizado (como, por exemplo, LDAP://dc1.corp.domain.com/OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com) e você terá sua "cadeia de conexão".

(Você pode usar o nome do domínio na cadeia de conexão em oposição ao nome de um controlador de domínio. A diferença é que o nome do domínio será resolvido para o endereço IP de qualquer controlador de domínio no domínio. Isso pode ser bom e ruim. Você não depende de nenhum controlador de domínio para estar em funcionamento para que o provedor de associação funcione, mas o nome é resolvido por, por exemplo, um controlador de domínio em um local remoto com conectividade de rede irregular, portanto, você pode ter problemas com a associação fornecedor a trabalhar.)


Com o SBS 2008, pelo menos, parece que eles começaram a estar em conformidade com o prefixo "OU" padrão na cadeia de caracteres para as OUs: CN = Seu nome, OU = Usuários, DC = exemplo, DC = local Estamos executando o nível funcional 2003.
gravyface 08/04

Ótima resposta. Posso fornecer os detalhes de logon da conta de consulta ao controlador de domínio externo na cadeia de conexão?
Dan

Então você quer dizer que a máquina remota que acessa o ActiveDirectory deve estar em seu próprio domínio? E se minha máquina local não estiver em seu domínio? Se minha máquina estiver em um grupo de trabalho, preciso passar 2 credenciais para autenticar um usuário? Quero dizer, um para fazer login na máquina WindowsServer e o outro é validar o nome de usuário e a senha do usuário do ActiveDirectory. Estou certo?
Dinesh Kumar P

@DineshKumarP: Estou com um pouco de dificuldade para analisar você. O provedor de associação usa uma credencial válida no Active Directory (AD) para vincular ao diretório. O computador que executa o provedor de associação não precisa ser membro de nenhum domínio do AD, mas é necessário configurá-lo com uma credencial válida do AD para que ele funcione.
Evan Anderson

2
@ArthurRonald - Usuários sem privilégios podem se associar e consultar o Active Directory, por padrão. De fato, provavelmente é melhor se você usar usuários sem privilégios. O Active Directory tem um modelo de ACL bastante rico e você pode controlar o acesso a objetos e atributos de uma maneira muito granular. Você deve vincular uma conta que tenha privilégios suficientes para fazer o que você precisa, mas não mais.
Evan Anderson #

23

Digite dsquery /?um prompt de comando.

Por exemplo: dsquery user -name Ja*obtém as cadeias de conexão para todos os usuários com nomes começando em Ja *.


Eu gosto dessa abordagem, ela fornece a ordem correta das UOs e tal. Para tornar isso óbvio, use LDAP: //dc1.corp.domain.com/ e a saída do comando e combine-os para formar uma string ldap silenciosa facilmente.
RandomUs1r

3
Quais ferramentas você precisa instalar para usar este comando?
Pred

Pred, veja esta resposta .
Stas Bushuev

18

Eu apenas uso essa ferramenta do Softerra (eles são um excelente navegador LDAP freeware) para obter o DN do usuário do usuário atualmente conectado: http://www.ldapbrowser.com/download.htm


Etapa 1: na etapa "Credenciais", selecione "Usuário conectado no momento (somente ActiveDirectory)". Etapa 2: Quando a conexão é criada, em suas Propriedades, vá para a guia "Entrada" e copie o URL. Etapa 3: use esse URL junto com o DN encontrado na solução da ErJab.
Nicolas Raoul

7

Sempre tive problemas para encontrar a maneira correta de digitar a UO. O comando dsquery ou domainrootfornecerá uma lista dos nomes corretos de todas as OUs do seu domínio. Não tenho certeza se isso ajudará uma organização maior.



4

Se você abrir o ADSIedit, ele deverá mostrar o caminho quando você escolher Conectar-se a ...

insira a descrição da imagem aqui



1

Eu encontrei a maneira mais fácil :

Você também pode encontrar em

Servidor do Active Directory -> Escolha a OU da Unidade Organizacional -> Clique com o Botão Direito -> Propriedades -> Editor de Atributos -> Nome Distinto

Eu os peguei no Microsoft Windows Server 2012 R2

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.