Bu yazımızda SPN yani, service principal name‘den bahsedeceğiz. Active Directory ortamlarımızın veri tabanlarında bulunan her objeye ait öz nitelik olarak adlandırılan attiribute’lar bulunmaktadır. Bu attiribute’lar da birçok değerleri barındırmaktadır.
Örnek vermek gerekirse; user objesi için displayname öz niteliği, osman.osman olabilir. Ya da samaccountname öz niteliği osmanosman olabilmektedir. Hatta bazı öz nitelikler ise multi value denilen yani, birden fazla değer alabilmektedir.
SPN (service principal name) denilen tanım da objeler üzerinde bulunan öznitelik ismi olarak bilinmektedir. User ya da bir computer hesabı için kontrol etmek isterseniz, “serviceprincipalname” kısmından öz niteliğini görebilirsiniz.
SPN Kaydı İşlemini Nerede Kullanıyoruz?
SPN (Service Principal Name), Kerberos kimlik doğrulaması yaparken kullanılmaktadır. İhtiyaç duyduğunuz anda Kerberos DC üzerine gelerek, servis bileti alarak dilediğiniz zaman SPN değerini Kerberos DC üzerine vermelisiniz. Ardından Kerberos DC verdiğiniz bu SPN (Service Principal Name) değeri için verilen örneği de aşağıda kolaylıkla görebilirsiniz.
MSSQLSvc/PROD-SQL01.domain.com:1433
Yukarıda gördüğünüz değeri Active Directory içerisinde arar, bulur ve ardından bu service principal name ile bağlantılı olan computer ya da servis hesabının şifresi ile birlikte bu bileti şifrelemektedir. Hemen sonrasında bize teslim eder. Biz, bu bileti açmayız. Ve direkt olarak servis almak istenen makine üzerine veririz. Oluşturulan bu bilet ile ya o makineye erişim verilmiş olur. Ya da makine üzerindeki servis hesabı ile şifrelenmiş olduğu için o açabilecektir. Bu sayede yetkilendirme işlemi yapılmış olacaktır.
Şu unutulmamalıdır ki; yapacağınız SPN kayıtlarını domain controller üzerinde gerçekleştirmelisiniz. Çünkü SPN yani service principal name kayıtları Active Directory veritabanında tutulmaktadır. Ve en önemlisi kesinlikle tek olmasıdır. SPN kayıtlarının birden fazla olması demek, bazı sorunlar yaşamanıza sebebiyet verecektir. Aşağıda sizler için girilecek olan örnek bir SPN kaydı mevcuttur. Mecburen sunucu ve domain ismi kapatılmıştır.
Domain ortamınızdaki dublicate yani çift olan SPN (service principal name) kayıtlarını setspn -F -X komutunu kullanarak kolaylıkla görebilirsiniz. Dublicate SPN girilirse ne olur? Son olarak birden fazla SPN kaydı girildiğinde, makine hesabı ya da birden çok servis hesabı aynı zamanda belirli servisler ile ilişki kurmuş olduğundan dolayı şifrelerden birisi değişirse iletişim ve erişim sorunlarına yol açabilmektedir.