İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Onder Teker
on_der_tek_er@yahoo.com

LDAP ve Directory Service'leri

Directory Service'i Nedir?

LDAP protokolünün giderek daha çok kullanılır hale gelmesi; Netscape, Microsoft, Novell, Sun gibi bir çok firmanın LDAP ve diğer dizin sistemlerini desteklemesi ve yoğun bir şekilde kullanması nedeniyle, bu konu uygulama geliştirenlerin öğrenmesi gereken bir lana haline gelmiştir. Önceleri Java'nın enterprise edition'unda bulunan JNDI (Java Naming and Directory Interface), son sürümlerde standart edition'a alındı. Microsoft, zaten bütün işletim sistemi ve .NET altyapısında ADSI (Activ Directory System Interfaces) yapısını kullanıyor. Netscape ve Novell gibi bir çok firmanın da benzer ürünleri var.

Directory Services, temel olarak bir networkte bulunan kullanıcı, makine, server gibi bileşenlerin belli bir hiyerarşi içerisinde saklandığı ve erişildiği bir sistemtir. SQL server'lar gibi LDAP server'lar da bir database olarak işlev görebilirler. Ancak LDAP (daha genel adıyla directory service'lerinin) SQL'e göre bazı avantajları vardır. DirectoryServices, neyin neye bağlı olduğu bilgisini daha iyi barındırmakta. Yani bir şey mantıksal olarak başka bir şeyin içindeyse zaten onun içindedir. Tıpkı dosya sistemi çerisindeki folderlar ve file'lar gibi. LDAP'ın temel özelliği, veri eklerken veya silerken yavaş olmasına karşın erişim veya arama yaparken hızlıdır. Bu yüzden adres deftreri üyelik gibi bir insanın bir kere kaydoulp yüzlerce kez erişim yaptığı sistemlerde en uygun sistem olarak LDAP ortaya çıkmıştır.

LDAP Directory Yapısı

Bir Directory Server'da genellikle bulunan yapı

o=MyCompany
	ou=Members
		cn=user1
		cn=user2
		...				
	ou=Printers
		cn=prn1
		cn=prn2
		...

şeklindedir. En tepedeki birim şart olmamakla birlikte genellikle 'o' (organization)'dur. Daha altında genellikle 'ou' (organizational unit)'ler bulunur. Her organization'un altında çeşitli 'cn' (common name)'ler bulunur. Bir ou'nun altına başka bir ou konabilir. Eğer benzetme yaparsak o'lar Window dosya sisteminde 'c:' 'd:' şeklindeki sürücülere, ou'lar klasörlere, cn'ler de file'lara benzer.

Naming (İsimlendirme)

LDAP'ta belli bir nesenin konumu bir 'isim'le belirtilir. Örneğin 'cn=user1,ou=Members,o=MyCompany' ifadesi bir nesneyi belirtir. Aynı nesneye bir URL formatında erişmek de mümkündür "LDAP://ldap.mycompany.com:4321/o=MyCompany/ou=Members/cn=user1". Ağa bağlı herhangi bir maikendeki her hangi bir kullanıcıya tek bir satırda erişmek mümkün olmaktadır. LDAP'ın bir özelliği bir nesneye erişmek için sorgu yapmak zorunda bırakmamasıdır.

Schema (Şema)

LDAP'ta her birim (o,ou,cn vs.) bir 'class'a sahiptir. Her class'ın içerisinde hangi değerlerin bulunabileceğini, hangilerinin zorunlu olduğunu belirtir. Bir birimde bulunabilecek değerlere 'attribute' denir. Schema'yı SQL'de 'table' tanımına benzetirsek, attribute'ler de field'lara benzer. Ancak belitgin farklar vardır. Table'larda bulunun field'lar, o table'ın bütün satırlarında bulunur. Belli bir değer yoksa bile boş ("") veya '0' gibi varsayılan değerlere veya NULL gibi ifadelere eşit olurlar. Ama LDAP'ta bir atribute bir nesnede bulunabilri veya hiç bulunmayabilir. Table'larda field sayısı sabittir ve yenilerini ekleme ve çıkarma işlemi bütün o table'daki verileri, hatta tüm datrabase'i etkiler. Bu işlem bazen kullanımda olan server'larda yapılamayacak kadar zo r bir işlemdir. Ama LDAP'da yeni ir attribute eklendiğinde, o schema'ya aiti bütün nesneler etkilenmez. Attribute eklemedn önceki nesneler o atribute'siz çalışmaya devam ederler. LDAP tanımlar konusunda daha 'gevşek'tir. Ancak, belli attributelerin zorunlu olması sağlanabilir. Bir attribute groubuna 'object cass' denir ve bir schema'da birden fazla objectClass bulunabilir. Bu, bir nesne birden fazla objectClass'da tanımlı attributeleri bulundurabilir anlamına gelir.

Schema (Şema)

Ldap'ta belli bir nesneye erişim doğrudan, yani 'adını' vererek olur. Normak şartlarda sadece 'key'iyle bir nesneye ulaşmakl için sorgu yapmak zorunda kalınmaz. Sorgu ancak belli attribute değerlerine sahip olan nesneleri bulmak için yapılır. Sorgular belli bir dizinin altında yapılır. İstenirse 'scope' vererek bir dizinini altındaki bütün alt dizinlerde sorgu yapılabilir. Sorgular filtreler aracılığıyla yapılır. Filtre'lerin ilk bakışta bir çok kişiye garip gelebileck bir söz dizimi bulunmaktadır.

(& (sn=Oduncu)(c=Germany))

Burada 'sn' surname/soyadı, 'c' country/ülke anlamına geliyorsa , Almanyadaki Oduncu soyadlı kişileri bulur. & işareti 've' anlamına gelir. Belirtilen iki koşulun da gerçekleşmesi isteniyorsa kullanılır. | (Veya), ! (Değil) gibi operatörler de kullanılabilir. * operatörü 'wild card' olarak kullanılabilir. (sn=Od*) ifadesi soyadı Od'la başlayanlar demektir.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır