Active Directory veri tabanında bulunan objelere ait öz nitelik dediğimiz attiribute’ ler bulunmaktadır. Bu öznitelikler bir takım değerler içermektedir.
Örneğin bir user objesi için displayname öz niteliği hakan uzuner değerini alabilir. Veya samAccountname öz niteliği hakanuzuner değerini alabilir.
Bazı öz nitelikler multi value dediğimiz birden çok değer alabilmektedir.
SPN de aslında objelerde bulunan bir öznitelik ismidir.
bir kullanıcı veya makine hesabı için kontrol ettiğiniz zaman “servicePrincipalName” şeklinde bu öz niteliği görebilirsiniz.
Gelelim SPN nerede kullanılıyor. SPN Kerberos kimlik doğrulamasında kullanılmaktadır. Siz ihtiyaç duyduğunuz bir servis için KDC’ e gelip bir servis bileti almak istediğiniz zaman bu servisin SPN değerini KDC’ ye verirsiniz. KDC bu SPN değerini örneğin aşağıdaki gibi olabilir
MSSQLSvc/PROD-SQL01.cozumpark.com:1433
Bu değeri AD içerisinde arayarak bulur ve bu SPN in bağlı olduğu makine veya servis hesab şifresi ile bu bileti şifreler ve bize verir, bizde bu bileti hiç açmadan direk servis almak istediğimiz makineye veririz, bu bilet bu makine veya o makine üzerindeki servis hesabı ile şifrelendiği için o açar ve bize hizmet sunar. ( yetkilendirme işlemi yapılmış olur )
SPN ler AD veri tabanında tutulur ( objelerin öznitelikleri ) ve tek olmalıdır, eğer birden çok olursa bu sorunlara yol açar
setspn -F -X komutu ile domain ortamındaki dublicate olan SPN leri bulabilir ve silebilirsiniz
sorun ne olur ? birden çok SPN birden çok servis hesabı veya makine hesabı ile bir servisi ilişkilendireceği için bu ilişkilendirilmiş olan şifrelerden biri değişir ise iletişim sorunları olur.
Daha fazla bilgi için
service principal name spn – ÇözümPark Sözlük (cozumpark.com)