Bagaimana cara mengetahui string koneksi LDAP saya?

108

Kami berada di jaringan perusahaan yang menjalankan direktori aktif dan kami ingin menguji beberapa hal LDAP (penyedia keanggotaan direktori aktif, sebenarnya) dan sejauh ini, tidak ada di antara kami yang bisa mengetahui apa string koneksi LDAP kami. Adakah yang tahu bagaimana kita bisa menemukannya? Satu-satunya yang kami tahu adalah domain tempat kami berada.

Allen
sumber

Jawaban:

101

Penyedia Keanggotaan Direktori Aktif ASP.NET melakukan ikatan yang diautentikasi ke Direktori Aktif menggunakan nama pengguna, kata sandi, dan "string koneksi" yang ditentukan. String koneksi terdiri dari nama server LDAP, dan jalur yang sepenuhnya memenuhi syarat objek kontainer tempat pengguna yang ditentukan berada.

String koneksi dimulai dengan URI LDAP://.

Untuk nama server, Anda dapat menggunakan nama pengontrol domain di domain itu - katakanlah "dc1.corp.domain.com". Itu memberi kita LDAP://dc1.corp.domain.com/jauh.

Bit berikutnya adalah jalur yang sepenuhnya memenuhi syarat dari objek kontainer tempat pengguna yang mengikat berada. Katakanlah Anda menggunakan akun "Administrator" dan nama domain Anda adalah "corp.domain.com". Akun "Administrator" berada dalam wadah bernama "Pengguna" yang terletak satu tingkat di bawah akar domain. Dengan demikian, yang memenuhi syarat DN dari "Pengguna" wadah akan menjadi: CN=Users,DC=corp,DC=domain,DC=com. Jika pengguna yang Anda ikat berada dalam OU, alih-alih sebuah wadah, path akan menyertakan "OU = ou-name".

Jadi, menggunakan akun di OU bernama Service Accountsitu adalah sub-OU dari OU bernama Corp Objectsitu sub-OU dari domain bernama corp.domain.comakan memiliki jalur yang sepenuhnya memenuhi syarat OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com.

Gabungkan LDAP://dc1.corp.domain.com/dengan jalur yang sepenuhnya memenuhi syarat ke wadah tempat pengguna yang mengikat berada (seperti, katakanlah LDAP://dc1.corp.domain.com/OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com) dan Anda mendapatkan "string koneksi".

(Anda dapat menggunakan nama domain di string koneksi sebagai lawan dari nama pengontrol domain. Perbedaannya adalah bahwa nama domain akan menyelesaikan ke alamat IP dari setiap pengontrol domain di domain. Itu bisa baik dan buruk. Anda tidak bergantung pada pengontrol domain tunggal apa pun untuk menjalankan dan menjalankan penyedia keanggotaan untuk bekerja, tetapi nama itu terjadi untuk, katakanlah, DC di lokasi yang jauh dengan konektivitas jaringan yang kotor maka Anda mungkin memiliki masalah dengan keanggotaan penyedia bekerja.)

Evan Anderson
sumber
Setidaknya dengan SBS 2008, sepertinya mereka mulai menyesuaikan dengan awalan "OU" standar dalam string untuk OU: CN = Nama Anda, OU = Pengguna, DC = contoh, DC = lokal Kami menjalankan level fungsional 2003.
gravyface
Jawaban yang bagus Bisakah saya memberikan detail login dari akun kueri ke pengontrol domain asing di string koneksi?
Dan
Jadi maksud Anda, mesin jarak jauh yang mengakses ActiveDirectory harus dalam domainnya sendiri? Bagaimana jika mesin lokal saya tidak ada dalam domainnya? Jika mesin saya ada di workgroup, apakah saya harus melewati 2 kredensial untuk mengautentikasi pengguna? Maksud saya, Satu untuk login ke mesin WindowsServer dan yang lainnya adalah untuk memvalidasi nama pengguna dan kata sandi ActiveDirectory. Apakah saya benar?
Dinesh Kumar P
@DineshKumarP: Saya mengalami sedikit kesulitan untuk menguraikan Anda. Penyedia Keanggotaan menggunakan kredensial yang valid di Active Directory (AD) untuk mengikat ke Direktori. Komputer yang menjalankan Penyedia Keanggotaan tidak perlu menjadi anggota dari domain AD apa pun, tetapi Anda harus mengonfigurasinya dengan kredensial yang valid dari AD agar dapat berfungsi.
Evan Anderson
2
@ArthurRonald - Pengguna yang tidak berhak dapat mengikat dan meminta Direktori Aktif, secara default. Bahkan, mungkin yang terbaik adalah jika Anda menggunakan pengguna yang tidak memiliki hak. Active Directory memiliki model ACL yang cukup kaya, dan Anda dapat mengontrol akses ke objek dan atribut dengan cara yang sangat terperinci. Anda harus mengikat dengan akun yang memiliki hak istimewa cukup untuk melakukan apa yang Anda butuhkan tetapi tidak lebih.
Evan Anderson
23

Ketikkan dsquery /?prompt perintah.

Misalnya: dsquery user -name Ja*mendapatkan string koneksi untuk semua pengguna dengan nama yang dimulai dengan Ja *.

ErJab
sumber
Saya suka pendekatan ini, ini memberikan urutan OU yang benar dan semacamnya. Untuk membuatnya jelas, untuk menggunakan ini ambil LDAP: //dc1.corp.domain.com/ dan output dari perintah & gabungkan mereka untuk membentuk string ldap dengan mudah.
RandomUs1r
3
Alat apa yang perlu Anda instal untuk menggunakan perintah ini?
Pred
Pred, lihat jawaban ini .
Stas Bushuev
18

Saya hanya menggunakan alat ini dari Softerra (mereka membuat Browser LDAP freeware yang sangat baik) untuk mendapatkan DN Pengguna dari pengguna yang saat ini masuk: http://www.ldapbrowser.com/download.htm

gravyface
sumber
Langkah 1: Pada langkah "Kredensial", pilih "Pengguna yang saat ini masuk (hanya ActiveDirectory)". Langkah 2: Ketika koneksi dibuat, dalam Properties-nya pergi ke tab "Entri" dan salin URL. Langkah 3: Gunakan URL itu bersama-sama dengan DN yang ditemukan dengan solusi ErJab.
Nicolas Raoul
7

Saya selalu mengalami masalah dalam menemukan cara yang benar untuk mengetikkan OU. Perintah itu dsquery ou domainrootakan memberi Anda daftar nama yang benar dari semua OU di domain Anda. Tidak yakin apakah ini akan membantu organisasi yang lebih besar.

Nixphoe
sumber
4

Jika Anda membuka ADSIedit, itu akan menunjukkan kepada Anda jalan ketika Anda memilih untuk ...

masukkan deskripsi gambar di sini

KERR
sumber
1

Saya menemukan cara termudah :

Anda juga dapat menemukan dari

Server direktori aktif -> Pilih Unit Organisasi OU -> Klik Kanan -> Properti -> AttributeEditor -> DistinguishedName

Saya mendapatkan ini dari Microsoft windows server 2012 R2

Aravin
sumber