Bu makalemde, Active Directory yapısındaki kullanıcı nesneleri için TC. Kimlik No Attribute'u nasıl oluşturulur konusuna değiniyor olacağım. Ancak makale konusuna girmeden önce bilinmesi gerekir ki Domain yapısı, dolayısı ile de Active Directory yapısı oluşturulduktan sonra Schema yapısı da oluşturulmaktadır. Ek bilgi olarak Active Directory Schema, 5 adet FSMO rolünün Forest bazında bulunan iki rolden de bir tanesidir. Active Directory Schema, Active Directory Users and Computers konsolunda yer alan tüm nesnelerin özelliklerini barındırır. Barındırdığı bu özelliklere de Attribute (öznitelik) ismi verilmektedir. Bu Attribute'ların tamamı, Class (sınıf) adı verilen sınıflar içinde yer almaktadır ki Schema yapısının ana gövdesini Class'lar, Class'ların yapısını da Attribute'lar oluşturmaktadır. Active Directory Schema içinde Class'lara ait Attribute'lar vardır ancak istersek kendimiz de ek Attribute'lar oluşturup, Class'lara bağlayarak Active Directory yapısında kullanabiliriz. Active Directory yapısındaki nesnelerden birisi olan kullanıcı nesneleri, telefon numarası, adres, şehir, telefon, ülke vb. kullanıcılara özel bilgileri barındırmaktadır yani aslında kullanıcıların kimlik kartlarıdır. Domain ortamında varlıklarını sürdürebilmeleri için de bu nesnel oluşuma ihtiyaçları vardır. Temel kullanıcı özelliklerine ek olarak, ülkemiz vatandaşlarının kullandığı TC. Kimlik No bilgilerini de Active Directory üzerinde kullanıcı özelliklerine de ekleyebiliriz.
Bilgi!: Oluşturulan Attribute'leri silmek zor olduğu için, herhangi bir yanlışlıkta sorun yaşayabilirsiniz. Bu yüzden mutlaka;
• Bu uygulamayı mutlaka test yapısında deneyerek, test edin.
• Uygulama aşamasına geçmeden Active Directory yedeği (System State) yedeğini alın.
Mevcut Active Directory yapım aşağıdaki gibidir.

Active Directory TC. Kimlik No Attribute'u Oluşturma
1- Atrribute ayarlarını görmek ve yenisini oluşturmak için Active Directory Schema konsoluna ihtiyacımız var. Active Directory Schema konsolu, varsayılan olarak görünür durumda değildir. Bu nedenle de Schema Master rolünü barındıran Domain Controller'a bağlanıyoruz ve RUN (çalıştır) üzerinde regsvr32 schmmgmt.dll yazarak iligli DLL'i tetikletilerek Schema konsolunu görünür hale getiriyoruz.


1.1- Bu işlemden sonra, MMC konsolunu açarak Schema Master konsolunu ekliyoruz. Yazımın başında Active Directory Schema yapısının, Class (Sınıf) ve Attribute (öznitelik)'lerden oluştuğundan bahsetmiştim.
2- Attribute üzerinde sağ tıklıyor, açılan menüden New > Attribute... seçeneğini seçiyorum.

Uyarı!: Bir kez oluşturulan Attribute, pasif edilebiliyor ancak silinemiyor. Sadece üzerine yazma şansınız olduğu için oluştururken çok dikkatli olun!

Devam etmeden önce, Root OID (Object Identifier)'nizi öğrenmek zorundayız. Bu Root OID (Object Identifier) bilgisini Attribute oluştururken kullanacağız.

Aşağıdaki Script'i, server C:\ ana dizinine kopyalıyor, daha sonrasında da Script'imi çalıştırıyorum. Oluşan Root OID (Object Identifier) değerini bir yere not edin.
İlgili VB Script'i güvenli bir şekilde aşağıdaki butondan indirebilirsiniz.
İNDİR
2.1- Common Name alanına TCkimlikNo yazıyorum.
LDAP Display Name de Common Name ile birlikte otomatik yazılıyor.
Bu, görünür isim olmayacaktır. Sadece Attribute'a ait olan ismidir. Bu ismi daha sonra birçok ayarda ve Script içerisinde kullanacağız. Bir yere not edebilirsiniz. Kesinlikle Türkçe karakter kullanmayın!
2.1.1- Unique X500 IbjectID ise Script'ten aldığınız Root OID (Object Identifier) değeridir.
2.1.2- Son olarak da Syntax'ı belirliyoruz. Burası önemli bir alandır. Nasıl değer gireceğimizi burada belirliyoruz. TC. Kimlik numarası gibi uzun bir sayı için Case Insensitive String kullanılması uygundur. Menu'de farklı ihtiyaçlar için bir çok Syntax da yer almaktadır.

2.1.3- tCKimlikNo isimli Attribute'umuzu oluştuduktan sonra, OK butonuna basarak işlemi sonlandırıyorum. Görüldüğü gibi ilgili Attribute oluşturuldu.

3- Class için Attribute ekleme işleminden sonra sıra, oluşturmuş olduğumuz Attribute'u user Class'ına atama işlemine geldi.
3.1- Bunun için Classes'a tıklayıp, sağ bölümde user Class'ını bulup, çift tıklıyorum.

3.2- Açılan user Properties penceresinde Attributes sekmesine tıklıyorum. Oluşturmuş olduğumuz Attribute'u user Class'ına atama işlemini bu sekmede gerçekleştireceğiz.
3.3- Attributes sekmesi altında Optinal bölümündeki liseteye oluşturmuş olduğumuz Attribute'u eklemek için sağdaki Add... butonuna tıklıyorum.

3.4- Add... butonuna tıkladıktan sonra açılan Select Schema Object penceresinde oluşturmuş olduğumuz tCKimlikNo isimli Attribute'u seçip, OK butonuna basıyorum.

3.5- Oluşturmuş olduğumuz tCKimlikNo isimli Attribute, user Class'a eklendi. Shema Master üzerinde yapılacak işlemlerimiz bu kadar.

4- Yapılan şema değişiklikler; Intra-site Domain Controller'larda varsayılan olarak 15 dakika, Inter-site Domain Controller'larda varsayılan olarak 180 dakika içerisinde güncellerler ancak beklemek istemiyorsanız, bu işlemi Reaload the Schema menü seçeneğini kullanarak elle de tetikleyebilirsiniz.

TC Kimlik No Menu Item Ekleme
5- Oluşturduğumuz yeni Attribute, Active Directory User Properties üzerinde Attribute Editor sekmesi altında ilgili Attribute oluşmuş olup, artık değer girilebilecek hale gelmiştir.

5.1- Dilerseniz, kullanımını biraz daha kolaylaştırmak amacıyla kullanıcının üzerine sağ tıkladığınızda açılan menü üzerine de yeni Attribute'müzü ekleyebiliriz. Bu işlem için bir Script'e ihityacınız var. Aşağıdaki Script'i, içerisinde kendinize uygun olarak gerekli değişiklikleri yaptıktan sonra server'da C:\ ana dizinine kopyalıyor ve çalıştırıyorum.
İlgili VB Script'i güvenli bir şekilde aşağıdaki butondan indirebilirsiniz.
İNDİR
Aşağıdaki Script satırlarında Attribute için kullandığım isimler yer almaktadır. Siz de kendi Attribute isminizi, ilgili Script kodlarını içinde bularak bu alanları değiştirebilirsiniz.
● oDisp.PutEx 3,"AttributeDisplayNames" , Array("TCKimlik,TC Kimlik No")
● sOutFile.WriteLine "MsgBox " & Chr(34) & "TC Kimlik No" & Chr(34) & " & vbCRLF & " & Chr(34) & "TC Kimlik No: " & Chr(34) & " & oUser.TCKimlik"
● sOutFile.WriteLine "temp = InputBox(" & Chr(34) & "Mevcut No: " & Chr(34) & " & oUser.TCKimlik & vbCRLF & " & Chr(34) & "Yeni Numara" & Chr(34) & ")"
● sOutFile.WriteLine "if temp <> " & Chr(34) & Chr(34) & " then oUser.Put " & Chr(34) & "TCKimlik" & Chr(34) & ",temp"
|
Aşağıdaki satırda, menüde gözükecek isim yer alır. Yine bu kısmı da istediğiniz şekilde değiştirebilirsiniz.
● sNewMenu = CStr(iCount) & ",&TC Kimlik No...,hrshell.vbs" |
5.2- C:\ dizinindeki Script üzerine tıkladığınızda ilgili Script çalışacaktır.

OK butonuna basıyorum.

OK butonuna basıyorum.

OK butonuna basıyorum.

OK butonuna basıyorum.

OK butonuna basıyorum.

OK butonuna basıyorum.

OK butonuna basıyorum.

5.3- İşlem sonunda da %SYSTEMROOT%\System32 klasörüne iki adet dosya oluşturulacaktır. Menu'den her tıkladığında bu Script'ler çalıştırılmaktadır.

6- Active Directory Users and Computers konsolunu açıp, kullanıcı nesneleri üzerinde sağ tıkladığımda, TC. Kimlik No... isimli menü elemanının oluştuğunu göreceksiniz.

6.1- TC Kimlik No... isimli menü elemanını tıkladığınzda da karşınıza, ilgili kullanıcının TC. Kimlik bilgilerini girebileceğiniz bir kutucuk açıkacaktır. Girişi yapıp, OK butonuna basıyorum.

6.1- Girilen örnek TC Kimlik Numarası, User Properties (Kullanıcı Özellikleri) üzerinde Attribute Editor sekmesi altındaki tCKimlikNo Attribute alanına kaydedildi.

TC Kimlik No Bilgilerini Active Directory Users and Computers'ta Listeleme
7- Girdiğim TC Kimlik No bilgilerinin Active Directory Users and Computers konsolunda da Name, Type, Description alanları gibi görünmesini isterseniz, ADSI Edit üzerinde yapmamız gereken işlem, oluşturduğumuz Attiribute'u burada tanımlamak olacak. Bunun için;
7.1- ADSI Edit'i açıyor, sırası ile CN=Configuration,DC=firatboyan,DC=com > CN=DisplaySpecifiers > CN=409 > CN=organizationalUnit-Display kaydına çift tıklayarak açıyorum.

7.2- CN=organizationalUnit-Display Attribute Editor sekmesinde extraColumns Attribute'una çift tıklıyorum.

7.3- Value to add alanına tCKimlikNo,TC Kimlik No,1,150,0 yazıp Add butonuna tıklayarak ekliyorum. Bu belirttiğim değer, Attribute'u referans alıp, belirlediğim isim altında Active Directory Users and Computers konsolunda görünecek.



8- Girdiğim TC. Kimlik No bilgileri artık Active Directory Users and Computers konsolunda da görünür halde olacaktır.

Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.