Come posso capire la mia stringa di connessione LDAP?


108

Siamo su una rete aziendale che esegue Active Directory e vorremmo testare alcune cose LDAP (provider di appartenenza Active Directory, in realtà) e finora, nessuno di noi può capire qual è la nostra stringa di connessione LDAP. Qualcuno sa come possiamo fare per trovarlo? L'unica cosa che sappiamo è il dominio in cui ci troviamo.

Risposte:


101

Il provider di appartenenze ASP.NET Active Directory esegue un collegamento autenticato ad Active Directory utilizzando un nome utente, una password e una "stringa di connessione" specificati. La stringa di connessione è composta dal nome del server LDAP e dal percorso completo dell'oggetto contenitore in cui si trova l'utente specificato.

La stringa di connessione inizia con l'URI LDAP://.

Per il nome del server, puoi usare il nome di un controller di dominio in quel dominio-- diciamo "dc1.corp.domain.com". Questo ci dà così LDAP://dc1.corp.domain.com/lontano.

Il bit successivo è il percorso completo dell'oggetto contenitore in cui si trova l'utente di bind. Supponiamo che tu stia utilizzando l'account "Amministratore" e che il nome del tuo dominio sia "corp.domain.com". L'account "Amministratore" si trova in un contenitore denominato "Utenti" situato a un livello sotto la radice del dominio. Così, il completo DN del contenitore "Users" potrebbe essere: CN=Users,DC=corp,DC=domain,DC=com. Se l'utente con cui si esegue il binding si trova in un'unità organizzativa, anziché in un contenitore, il percorso includerà "OU = ou-name".

Pertanto, l'utilizzo di un account in un'unità organizzativa denominata Service Accountsche è un'unità organizzativa secondaria di un'unità organizzativa denominata unità organizzativa Corp Objectssecondaria di un dominio denominato corp.domain.comavrebbe un percorso completo di OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com.

Combina il LDAP://dc1.corp.domain.com/con il percorso completo al contenitore in cui si trova l'utente di bind (come, diciamo, LDAP://dc1.corp.domain.com/OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com) e avrai la tua "stringa di connessione".

(È possibile utilizzare il nome del dominio nella stringa di connessione anziché il nome di un controller di dominio. La differenza è che il nome del dominio si risolverà nell'indirizzo IP di qualsiasi controller di dominio nel dominio. Questo può essere sia positivo che negativo. Non fai affidamento su un singolo controller di dominio per essere attivo e funzionante affinché il provider di appartenenze funzioni, ma il nome sembra risolversi, ad esempio, un controller di dominio in una posizione remota con connettività di rete macchiata, quindi potresti avere problemi con l'appartenenza fornitore di servizi).


Almeno con SBS 2008, sembra che abbiano iniziato a conformarsi al prefisso "OU" standard nella stringa per le unità organizzative: CN = nome, OU = utenti, DC = esempio, DC = locale Stiamo funzionando a livello funzionale 2003.
gravyface

Bella risposta. Posso fornire i dettagli di accesso dell'account di query al controller di dominio esterno nella stringa di connessione?
Dan,

Quindi vuoi dire che la macchina remota che accede ad ActiveDirectory dovrebbe trovarsi nel suo dominio? Cosa succede se il mio computer locale non è nel suo dominio? Se la mia macchina è in un gruppo di lavoro, devo passare 2 credenziali per autenticare un utente? Voglio dire, uno per accedere alla macchina Windows Server e l'altro è convalidare il nome utente e la password dell'utente di ActiveDirectory. Ho ragione?
Dinesh Kumar P,

@DineshKumarP: sto avendo un po 'di problemi ad analizzarti. Il provider di appartenenze utilizza una credenziale valida in Active Directory (AD) per collegarsi alla directory. Il computer che esegue il provider di appartenenze non deve essere un membro di alcun dominio AD, ma è necessario configurarlo con una credenziale valida da AD affinché funzioni.
Evan Anderson,

2
@ArthurRonald - Gli utenti non privilegiati possono associarsi e interrogare Active Directory, per impostazione predefinita. In effetti, probabilmente è meglio se usi utenti senza privilegi. Active Directory ha un modello ACL abbastanza ricco e puoi controllare l'accesso a oggetti e attributi in modo molto granulare. Dovresti legare con un account che ha abbastanza privilegi per farti ciò di cui hai bisogno, ma non di più.
Evan Anderson,

23

Digitare dsquery /?un prompt dei comandi.

Ad esempio: dsquery user -name Ja*ottiene le stringhe di connessione per tutti gli utenti con nomi che iniziano in Ja *.


Mi piace questo approccio, dà il corretto ordinamento di unità organizzative e simili. Per rendere ovvio, per usare questo prendi LDAP: //dc1.corp.domain.com/ e l'output del comando e combinali per formare facilmente una stringa ldap.
RandomUs1r

3
Quali strumenti sono necessari per utilizzare questo comando?
Pred

Pred, vedi questa risposta .
Stas Bushuev l'

18

Uso questo strumento da Softerra (sono un eccellente browser LDAP freeware) per ottenere il DN utente dall'utente attualmente connesso: http://www.ldapbrowser.com/download.htm


Passaggio 1: Al passaggio "Credenziali", selezionare "Utente attualmente connesso (solo ActiveDirectory)". Passaggio 2: quando viene creata la connessione, nelle sue Proprietà vai alla scheda "Voce" e copia l'URL. Passaggio 3: utilizzare tale URL insieme al DN trovato con la soluzione di ErJab.
Nicolas Raoul,

7

Ho sempre avuto problemi a trovare il modo corretto di scrivere l'unità organizzativa. Il comando dsquery ou domainrootti fornirà un elenco dei nomi corretti di tutte le unità organizzative nel tuo dominio. Non sono sicuro se questo aiuterà per un'organizzazione più grande.



4

Se apri ADSIedit, dovrebbe mostrarti il ​​percorso quando scegli di connetterti a ...

inserisci qui la descrizione dell'immagine



1

Ho trovato il modo più semplice :

Puoi anche trovare da

Server Active Directory -> Scegli l'unità organizzativa Unità organizzativa -> Clic destro -> Proprietà -> AttributeEditor -> DistinguishedName

Ho preso questi da Microsoft Windows Server 2012 R2

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.