LDAP'de bağlama DN'si tam olarak nedir?


19

LDAP sunucularına bağlanan ve sorguları çalıştıran çeşitli kod parçaları yazdım, ancak her zaman bana voodoo oldu. Gerçekten anlamadığım bir şey, bir bağlama DN kavramıdır. İşte ldapsearchopenldap tarafından sağlanan komut satırı aracını kullanan bir örnek . (Kimlik doğrulama eksikliğini yoksayın.)

ldapsearch -h 1.2.3.4 -D dc=example,dc=com [query]

Bunun bir kısmının amacı ve işlevi nedir -D dc=example,dc=com? Neden dizin hiyerarşisinde belirli bir konuma bağlanmamız gerekiyor? Sorgularım dizinin hangi kısmına uygulanmalı? Örneğin, dizinin kök düğümü dc=comve iki alt öğesi ( dc=foove dc=bar) varsa, belki de sorgularımın dc=foo,dc=comalt ağaçlara değil alt ağaçlara karşı olmasını isterim dc=bar,dc=com?

Yanıtlar:


18

Bağlama DN'si, yapmaya çalıştığınız her şeyi yapmanıza izin vermek için LDAP'nin içine bağladığınız bir nesnedir. Bazı (çok?) LDAP örnekleri anonim bağlara izin vermez veya belirli işlemlerin anonim bağlarla yürütülmesine izin vermez, bu nedenle bu işlemi gerçekleştirmek üzere bir kimlik elde etmek için bir bindDN belirtmeniz gerekir.

Benzer bir teknik olmayan şekilde - ve evet bu bir streçtir - bir banka, herhangi bir kimlik vermeden girmenize ve faiz oranlarına bakmanıza izin verir, ancak bir hesap açmak veya para çekmek için bildikleri bir kimliğe sahip olmak - o kimlik bindDN'dir.


BindDN her zaman dizindeki bir düğüme karşılık geliyor mu? Yoksa keyfi bir dize olabilir mi?
dirtside

Evet. Parola özniteliğini taşıyabilecek veya başka türlü kimlik doğrulaması yapılabilecek bir düğüme karşılık gelmelidir.
John

Tomayto, tomahto. 🍅 Kullanıcı adı, DN'yi bağlayın. Feb🏻‍♂️
emallove

31

BaseDN ve bindDN arasında karışmayın .

Bir aramanın baseDN'si başlangıç ​​noktasıdır. Nerede aramaya başlayacak. Oldukça açıklayıcı.

Binddn DN temelde bir LDAP kimlik doğrulaması için kullandığınız kimlik olduğunu. Bir bindDN kullanırken genellikle onunla ilişkili bir parola gelir.

Başka bir deyişle, bir bindDN belirttiğinizde, LDAP ağacından geçmek için bu nesne güvenlik erişimini kullanırsınız.

Şimdi, dc = example, dc = com dizesi bir LDAP ağacı için bir "etki alanı" olduğu için bir bindDN için en iyi örnek değildir . DC açılımı alan bileşeni ve her LDAP ağaç dc = dize, dc = dize, şeklinde bir dize ile kendi kök tanımlar ... Ama bu dizeleri ağacın kalanı gibi bir "yol" değildir.

Geçerli örnekler:

  • DC = örneğin, DC = com
  • DC = etkialanım
  • dc = Avery, dc = uzun, dc = liste, dc = içinde, dc = etki

Ancak, bu kök unsurlar bölünemez. Onlar ağacın kalanı gibi bir yol temsil birkaç unsurlardır gibi görünür, ancak bunlar değil . Örneğin, son örnekte dc = of, dc = etki alanları nesnesi mevcut değildir.

C: sürücünüzü "D: \ my \ folder \" olarak adlandırdığınızı düşünün. Oradaki her yol "D: \ klasörüm \ klasörüm \ gerçek \ yol" gibi bir şey gibi görünecektir. Bu, bir dc = elementler kümesiyle LDAP tabanının (kök) görünüşüdür.

İlgili bağlantı: http://docs.oracle.com/cd/E19199-01/816-6400-10/lsearch.html


7
Bu gereksiz derecede kafa karıştırıcı bir tasarım gibi görünüyor, ancak açıklamanız mantıklı.
dirtside

1
Evet katılıyorum. Kökünüzü de adlandırmak bir yol gibi görünmek en iyi seçim değil ama sanırım bunun nedenleri olmalı. Artık tüm DN'lerin neden bir dizi dc = bileşenle bittiğini biliyorsunuz. =)
Marcelo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.