Active Directory'de Schema genişletmesi, Domain ortamınızda yönetilmesi gereken özel veri türlerini ve gereksinimleri karşılamak için kritik bir adımdır. Özellikle Türkiye'de yaygın olarak kullanılan TC Kimlik No gibi bir Attribute bilgisini Schema içindeki User Class içine eklemek, hem veri yönetimi hem de kimlik doğrulama süreçleri açısından büyük önem taşır.
Schema'daki her Class ve Attribute, Active Directory'nin nasıl çalıştığını belirleyen temel bileşenlerdir. User Class'ı, Active Directory'de her kullanıcı hesabının temsil edildiği temel yapıdır. Bu Class, kullanıcılara ilişkin verilerin nasıl saklanacağı ve erişileceği konusunda önceden tanımlanmış bir dizi Attribute içerir. Ancak, standart Attribute'lar her zaman tüm kurumsal ihtiyaçları karşılayamayabilir. Örneğin, Türkiye'de kullanıcıları benzersiz bir şekilde tanımlamak için yaygın olarak kullanılan TC Kimlik No'yu yönetmek istiyorsanız, bu veriyi User Class'ına eklemeniz gerekir.
Schema'da TC Kimlik No Eklemek Neden Önemlidir?
Domain ortamındaki User Class'ına TC Kimlik No gibi bir Attribute eklemek, kullanıcı kimlik doğrulama süreçlerini yerel gereksinimlere uygun hale getirir. Bu Attribute, her kullanıcıya atanmış benzersiz bir kimlik numarası olarak işlev görür ve bu sayede kimlik doğrulama, erişim denetimi ve yetkilendirme süreçlerinde daha hassas bir yönetim sağlar. Özellikle kamu kurumları veya finansal kuruluşlar gibi yüksek güvenlik gerektiren ortamlarda, TC Kimlik No gibi benzersiz bir Attribute'un varlığı, veri güvenliği ve uyumluluk açısından kritik olabilir.
Bu işlemi gerçekleştirirken, ilk adım olarak Schema'daki mevcut yapıların iyi anlaşılması gerekir. Schema'nın genişletilmesi geri döndürülemez bir işlemdir; bu yüzden Schema'ya yeni bir Attribute eklemeden önce ayrıntılı bir planlama ve test süreci yürütülmelidir. TC Kimlik No gibi bir Attribute eklemek için, öncelikle yeni bir OID (Object Identifier) belirlemeniz ve bu OID'yi Schema'da doğru bir şekilde kaydetmeniz gerekir. OID'ler, her Attribute'u küresel olarak benzersiz kılan tanımlayıcılardır ve Schema'da çakışmalara neden olmamak için doğru bir şekilde yönetilmelidir.
Yeni Attribute'un tanımlanmasında dikkat edilmesi gereken diğer önemli bir nokta, veri türüdür. TC Kimlik No'nun sayısal ve belirli bir uzunluğa sahip olması gerekmektedir. Bu tür veri özellikleri, Active Directory'nin veri tutarlılığını ve doğruluğunu sağlamak için kritik öneme sahiptir. Attribute tanımlarken, syntax türü olarak Numeric String veya Integer gibi bir seçim yapılabilir. Ancak, Türkiye'deki TC Kimlik No'nun standart yapısı göz önünde bulundurulduğunda, Numeric String syntax türü daha uygun olabilir. Bu, Attribute'un yalnızca sayısal değerleri kabul etmesini sağlar ve veri girişi sırasında hataları en aza indirir.
Replikasyon ve Performans Etkileri
Yeni bir Attribute eklemenin en önemli teknik zorluklarından biri, bu değişikliğin Domain Controller'lar arasında replikasyon yönetimidir Active Directory, Schema, değişikliklerini tüm Domain Controller'lara yayar ve bu süreç zaman alıcı olabilir. Özellikle geniş ve dağınık bir Domain ortamında, replikasyon süresi uzayabilir ve bu durum performans üzerinde geçici bir etkiye neden olabilir. Bu nedenle, değişikliklerin en az kullanıcı etkisi yaratacak şekilde planlanması önemlidir. Replikasyon sürecinde, yeni Attribute'un doğru şekilde dağıtıldığından ve her Domain Controller'da düzgün çalıştığından emin olunmalıdır.
Güvenlik ve Erişim Denetimi
Yeni bir Attribute eklerken güvenlik açısından da dikkatli olunmalıdır. TC Kimlik No gibi hassas bir bilginin Schema'ya eklenmesi, bu veriye erişim yetkisinin kimlere verileceği konusunda titiz bir planlama gerektirir. Active Directory'deki her Attribute için özel erişim denetimleri tanımlanabilir ve bu sayede yalnızca yetkili kullanıcıların veya sistemlerin bu bilgilere erişmesine izin verilir. Ayrıca, Attribute'un yalnızca gerekli olduğu yerlerde kullanılmasını sağlamak için Group Policy yapılandırmaları veya özel ACL'ler (Access Control List) uygulanabilir. Bu, verinin kötüye kullanımını ve yetkisiz erişimleri önlemeye yardımcı olur.
Pratik Uygulama ve Yönetim
Yeni bir Attribute'un Schema'ya eklenmesi, sonrasında bu Attribute'un nasıl kullanılacağını da belirler. TC Kimlik No Attribute'u eklendikten sonra, bu Attribute'un her kullanıcı hesabına doğru bir şekilde atanması ve yönetilmesi gerekir. Kullanıcı hesabı oluşturma veya düzenleme süreçlerinde bu Attribute'un zorunlu hale getirilmesi, veri tutarlılığını sağlamak için faydalı olabilir. Ayrıca, mevcut kullanıcı hesapları için toplu bir güncelleme yapılarak bu bilginin tüm hesaplara eklenmesi sağlanabilir.
Sonuç olarak, Active Directory'de Schema genişletmesi ve TC Kimlik No gibi özel bir Attribute'un eklenmesi, Domain ortamınızda kullanıcı verilerini daha etkin ve güvenli bir şekilde yönetmenize olanak tanır. Bu süreç, dikkatli bir planlama, test ve uygulama gerektirir, ancak doğru adımlar atıldığında sisteminize önemli avantajlar kazandıracaktır.
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.
Active Directory yapısına TC Kimlik No gibi özel bir Attribute eklemek, organizasyonların kullanıcı verilerini daha özelleştirilebilir ve güvenilir bir şekilde yönetmesine olanak tanır. Bu süreç, Active Directory Schema'sının dikkatli ve doğru bir şekilde genişletilmesini gerektirir, zira yanlış yapılan bir değişiklik, tüm dizin yapısının işleyişini etkileyebilir. Makalede ele alınan adımlar, bu tür kritik değişikliklerin nasıl güvenli bir şekilde yapılabileceğini detaylı bir biçimde sunmaktadır.
Bu noktada, dikkat edilmesi gereken en önemli husus, Schema üzerinde yapılan değişikliklerin geri alınamaz ve kalıcı olduğudur. Dolayısıyla, sistemde yapılan her adımın test edilmiş ve doğrulanmış olması büyük önem taşır. Ayrıca, eklenen Attribute'un kullanım amacına uygun bir şekilde tanımlanması ve yapılandırılması, ileride doğabilecek güvenlik ve uyumluluk sorunlarının önüne geçer. Organizasyonlar, bu tür özelleştirilmiş yapılarla, sistemde daha fazla kontrol ve takip imkânı sağlayarak, güvenlik ve yönetim süreçlerini daha verimli hale getirebilirler.
Sonuç olarak, bu makalede açıklanan yöntemler, Active Directory altyapısında özelleştirme yapmanın doğru yollarını ve potansiyel risklerini gözler önüne sermektedir. Bu tür bir değişikliğin uygulanması, ancak yeterli bilgi ve tecrübeye sahip bir ekip tarafından dikkatli bir şekilde gerçekleştirilmelidir.
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.