Active Directory’den Logon Name’i Değiştirilen Kullanıcıları Microsoft SharePoint Portal Server 2003’te Çalışır Kılmak Microsoft SharePoint Portal Server 2003"te bizleri en çok zorlayan konu ne yazılım geliştirme ne de sistemin yönetimidir. En zor konu, site hiyerarşisini oluşturmak, oluşturulan hiyerarşideki tüm sitelere ve kütüphanelere firmadaki çalışanların görevlerine göre yetkilendirmede bulunmaktır. Genelde esnek olan görevler beraberinde zor bir yetkilendirme tasarım sürecini beraberinde getirir.
Active directory üzerinde tanımlanmış kullanıcılarımızı, gerek bağlı bulundukları gruplar gerekse kendi hesapları çerçevesinde SharePoint Portal Server 2003 sitelerine kullanıcı olarak ekleyip yetkilendirme yaptıktan sonra bizi üzecek konuların başında bu kullanıcıların logon name"lerinin değişmesi gelmektedir. Firmaların kullanıcılara logon name verirken kullandıkları yapılar bellidir, ancak belli bir zaman sonra bu yapıyı değiştirmek isteyebilirler. Bu noktada Active Directory üzerinde yapılacak işlem çok kolaydır; Active Directory Users And Computers arayüzünden ilgili kişinin özelliklerinin gösterildiği menüde logon name alanını değiştirmek yeterlidir. Gel gelelim, bu değişiklik acaba SharePoint tarafında bizi zora sokar mı?
Microsoft SharePoint Portal Server 2003 her ne kadar alt yapı olarak Active Directory"yi kullansa da Active Directory ile bir senkronizasyon alt yapısını sağlamamaktadır. Profil oluşturma özelliğinde her ne kadar Active Directory"den SharePoint"e bilgi taşıma mümkün olsa da, bu özellik SID, logon name, kullanıcı adı taşımamaktadır. Bir kişiyi SharePoint üzerinde kullanıcı olarak eklediğiniz zaman, ilgili sitenin varsayılan kurulumlarda _SITE ile biten ismi bulunan içerik veritabanında ( Content Database ) UserInfo isimli tabloda o kişi için bir kayıt girilmektedir. Bu kayıtta kullanıcının adı, SID"si, domain kullanıcı adı bulunmaktadır. Active Directory üzerinde yapılan değişikliğin SharePoint üzerine yansımamasının nedeni, SharePoint"in kullanıcılarının kullanıcı adlarını, SID"lerini ve logon name"lerini bu tablo üzerinden kullanıyor olmasıdır.
İlk başta sorun büyük değilmiş gibi gözükebilir. Kişiler SharePoint sitelerine girebilir ve sistemi kullanabilir durumda olacaklardır. Bunun nedeni, kişinin sisteme giriş yaparken sağladığı logon name"inin, SharePoint tarafından önemsenmemesi, kullanıcının SID"si üzerinden işlem yapmayı tercih etmesidir. Ancak asıl sorun, kurulu sistem üzerinde, bir siteye, bir döküman kütüphanesine kişiyi kullanıcı olarak eklemek istediğimizde ortaya çıkar. Kişiyi Microsoft SharePoint Portal Server 2003"ün kullanıcı ekleme arayüzündeki Active Directory üzerinden kullanıcı arama arayüzünden aratırken, "name of user", "alias of user" gibi seçenekler yardımıyla arattığınızda kişinin bilgileri güncel olarak Active Directory üzerinden gelmektedir. Ancak bulmuş olduğunuz kişiyi sisteme eklemek istediğimizde "User does not exist" hatası alırız.
Bunun nedeni biraz enteresandır. Bir siteye ya da kütüphaneye eklenecek olan kullanıcının, aynı SharePoint üst seviye web sitesine (Top Level Web Site ) bağlı herhangi bir alt sitede (subsite ) bir kullanıcı olması durumunda, yani UserInfo tablosunda önceki logon name"i ile kayıtlı olması durumunda SharePoint hata vermektedir, çünkü bu yeni logon name"li kullanıcının SID"si zaten başka bir logon name ile UserInfo tablosunda kayıtlıdır.
Bunu aşmanın çok basit ama Microsoft tarafından desteklenmeyen bir yolu bulunmaktadır. Aynı SID"ye sahip bu, biri eski logon name"li, diğeri yeni logon name"li aynı kullanıcıların SharePoint"te de tek kullanıcı olarak çalışabilmesi için, UserInfo tablosunda bulunan eski logon name"leri yenileriyle değiştirmek gereklidir. Onun için de yazılacak script son derece basittir.
Mesela, yazgelistir\nezih logon name"li kullanıcıyı, Active Directory üzerinde yazgelistir\nezih.tinas yaptığımızı farzedelim. Yapılması gereken işlem, içerik veritabanının bulunduğu SQL Server"a bağlanıp, ilgili veritabanına geçmek ve:
Set tp_login = "yazgelistir\nezih.tinas"
Where tp_login = "yazgelistir\nezih"
scriptini yürütmektir. Bu işlem sonucunda, deneyimlerim sonucunda başarıya ulaştığımı ve hiç bir sorunla karşılaşmadığımı söyleyebilirim. Ancak, bu yöntem sistem veritabanlarına elle müdehale anlamına geldiği için Microsoft tarafından önerilmemekle birlikte, bu işlem sonucunda ortaya çıkacak olan sıkıntılar noktasında da Microsoft"un size destek verememesine yol açmaktadır. Bu noktada karar sizin.