Cert Publishers Group’unun Scope’unu Modifiye Etmek

Cert Publishers groubu AD DS forest ta her bir domain de bulunan default bir gruptur. Bir domain’in Cert Publishers grubu bu domaindeki user objects ‘in userCertificate attribute’üne certificate information için read ve write permissionları atar . Bu attribute’lere publish edilmiş sertifikalar genellikle , Herhangi birine hedef encryption certificate ‘in public key’ine AD DS’i query ederek elde etmesine izin veren , encryption certificate ‘larıdır.Cert Publishers grubunun scope’unun yakalanması gereken noktası Bu domain için başlangıç domain controller’ının OS ‘i tarafından belirlendiğidir.

■Eğer domain bir Windows 2000–based server üzerinde ( DCPromo.exe kullanılarak ) oluşturulmuş ise Cert Publishers group bir global groupdur.Bu da sadece aynı domainde bulunan computer account’arının Cert Publishers group a üyeliği olabilir demektir.

■Eğer domain bir Windows Server 2003–based server ya da Windows Server 2008–based server üzerinde oluşturulmuş ise, Cert Publishers group bir domain local group dur.Bu da herhangi bir domaindeki computer account’larının Cert Publishers grubunda üyelikleri olabileceği demektir.

Eğer bir CA bir user ‘a certificate issue etmiş ise ve sertifikayı kullanıcının userCertificate attribute’üne publish etmesi gerekirse , bu process CA ‘in kullanıcının domaindeki Cert Publishers group’un üyesi olmadığı için başarısız olacaktır.

Not Eğer bir enterprise CA ‘in , bir sertifikayı userCertificate attribute’üne yazmak için yeterli hakkı yok ise , bu durumda aşağıdaki event log CA server’ın application log un da görünecektir.

Event ID: 80

Description:

Certificate Services could not publish a Certificate for request # (where # is the request ID of the certificate request) to the following location on server dc.example.com: CN=brian.smith,OU=users,OU=Accounts,DC=east,DC=example,DC=com.

Insufficient access rights to perform the operation. 0x80072098 (WIN32:8344).

Sonraki örnekler için , Forest’ınızın Aşağıdaki resimde olduğu gibi yapılandırıldığını farzedelim.

Blog-3_thumb2

Resim Örnek bir domain yapılandırması

Forest ta CA1 ve CA2 olmak üzere iki enterprise CA vardır ve bu CA lerin computer account ‘u example.com domain ‘inde bulunmaktadır.

Group bir Domain Local Group olduğunda Cert Publishers Population’ı

Eğer example.com, west.example.com, ve east.example.com domainleri Windows Server 2003 ya da Windows Server 2008 de oluşturuldu ise , tüm yapmanız gereken example.com domain deki CA computer account larine east.example.com and west.example.com da olan Cert Publishers groups’a eklemek olacaktır.CA computer accountları Example domainindeki Cert Publishers group a eklemenize gerek yoktur çünkü Active Directory Certificate Services‘ı yüklerken bu grup population’ı otomatik olarak uygulanır. Bu computer accountların east.example.com ve west.example.com Cert Publishers group a eklenmesi manuel olarak yapılabileceği gibi aşağıdaki VBS script kullanılarak ta yapılabilir :

Set grp = GetObject("LDAP://CN=Cert Publishers,CN=Users,DC=west,DC=example,DC=com")

grp.SetInfogrp.add ("LDAP://CN=CA1,CN=Computers,DC=example,DC=com")

grp.SetInfogrp.add ("LDAP://CN=CA2,CN=Computers,DC=example,DC=com")

grp.SetInfo

Set grp = GetObject("LDAP://CN=Cert Publishers,CN=Users,DC=east,DC=example,DC=com")

grp.SetInfogrp.add ("LDAP://CN=CA1,CN=Computers,DC=example,DC=com")

grp.SetInfogrp.add ("LDAP://CN=CA2,CN=Computers,DC=example,DC=com")

grp.SetInfo

Eğer grup bir Global Group ise Cert Publishers Stratejileri

Eğer Domain Windows 2000 ‘de oluşturulmuşsa , iki strateji vardır :

■Her bir CA ‘in domain’inin Cert Publishers group’una foresttaki diğer tüm domainler için userCertificate attribute‘üne read ve write permissionları izin vermesi için permissionlarıo modifiye etmek

■Cert Publishers group ‘un scope’unu domain local group ‘a çevirip basitçe CA computer account larine her bir domain’in Cert Publishers group’una eklemek

http://support.microsoft.com/kb/300532

Modifying Permissions in Active Directory Windows Knowledge Base Article 300532,

“Windows 2000 Enterprise CAs Not Added to Certificate Publishers Group in Windows Server 2003 Domain,”

Yukardaki makale Cert Publishers group’una bir domainden bir user’ın, user’ın account’u farklı bir domainde iken , userCertificate attribute‘üne nasıl permissionları tanımlayacağınıza rehberlik etmeyi sağlar.

Adımlar aşağıdaki şekilde özetlenebilir :

1. example.com domain’in Cert Publishers group unu foresttaki diğer domainlerde Read userCertificate permission atayınız.

2. example.com domain’in Cert Publishers group unu foresttaki diğer domainlerde Write userCertificate permission atayınız

3. example.com domain’in Cert Publishers group unu foresttaki diğer domainlerde CN=adminsdholder,CN=system,DomainName container’ına Read userCertificate permission atayınız.

4.example.com domain’in Cert Publishers group unu foresttaki diğer domainlerde CN=adminsdholder,CN=system,DomainName container’ına Write Read userCertificate permission atayınız.

Not Eğer forestta birden fazla domainde CA computer acoount’u mevcut ise , Belirli bir CA’in domaininin Cert Publishers group‘u için forestta diğer tüm domainler için permission atamasını modifiye etmelisiniz.

Windows Support Tools ta bulunan dsacls.exe komutu kullanarak bu permission atamalarını script yardımı ile yapabilirsiniz. Örneğimizde domainler Windows Server 2003’de oluşturulduğu için CA computer accountları (CA1 ve CA2) Example.com domain ‘inde olduğu farzedilmiştir.

:: Assign permissions to the east.example.com domain

dsacls "dc=east,dc=example,dc=com" /I:S /G “Example\Cert Publishers”:RP;userCertificate,user

dsacls "dc=east,dc=example,dc=com" /I:S /G “Example\Cert Publishers”:WP;userCertificate,user

:: Assign permissions to the west.example.com domain

dsacls "dc=west,dc=example,dc=com" /I:S /G “Example\Cert Publishers”:RP;userCertificate,user

dsacls "dc=west,dc=example,dc=com" /I:S /G “Example\Cert Publishers”:WP;userCertificate,user

:: Assign permissions to the Adminsdholder container in east.example.com

dsacls " cn=adminsdholder,cn=system,dc=east,dc=example,dc=com" /G “Example\Cert Publishers”:RP;userCertificate

dsacls " cn=adminsdholder,cn=system,dc=east,dc=example,dc=com" /G “Example\Cert Publishers”:WP;userCertificate

:: Assign permissions to the Adminsdholder container in west.example.com

dsacls " cn=adminsdholder,cn=system,dc=west,dc=example,dc=com" /G “Example\Cert Publishers”:RP;userCertificate

dsacls " cn=adminsdholder,cn=system,dc=west,dc=example,dc=com" /G “Example\Cert Publishers”:WP;userCertificate

İpucu Bu script’i ortamınızda kullanmak için basitçe domain isimlerini sizinki olacak şekilde modifiye etmelisiniz . Forest ‘ınızda tüm diğer domainler için AdminSDHolder container ve CA’in domain’inin Cert Publishers group ‘una permissionları atamalısınız.

Cert Publishers group’un scope ‘unu değiştirmek

Forestta her bir domain’i incelemeden Cert Publishers group ‘un scope’unun ne olduğunu kolayca tahmin edemeyeceğinizi öngörebiliriz. Scope sadece initial domain controller’ın OS ‘inin ne olduğu ile bağlantılıdır.Eğer domain Windows 2000 üzerine inşa edilmiş ise Cert Publishers scope’u bir global group dur. Eğer domain Windows Server 2003 ya da Windows Server 2008 üzerine inşa edilmiş ise scope’u bir domain local dir.

Genellikle sadece forest root domain’in ve diğer initial olarak deploy edilmiş domainlerin Cert Publishers grubu global group olduğunu görürüz.Tüm sonradan eklenmiş domainlerin Cert Publishers groubu domain local group dur.Bu scope tiplerinin karışımı permissionları modifiye ederken gerçek bir karmaşıklığa neden olur.

Tüm Cert Publishers grubunun domain local group olması için değiştirmek çok daha kolaydır diye düşünebiliriz. Gruplar domain local group’a değiştirildiğinde permission sorunu kolaylıkla çözülür. Sadece CA computer accountları her bir domainin Cert Publishers group una eklenir.Burada yakalanması gerekn nokta bu scope u Active Directory Users and Computers console’dan yapamazsınız.Bu scope değişikliğini sadece scripting kullanarak yapabilirsiniz.

Script aşağıdakileri uygulamalıdır :

1. Cert Publishers group ‘u global group tan universal group ‘a convert etmeli

2. Cert Publishers group ‘u universal group’tan domain local group’a convert etmeli

3. Grubu forest ta olan tüm CA computer account’ları içerecek şekilde doldurmalı

Önemli Bir grubu direk global group’tan domain local group’a convert edemezsiniz. Bu geçiş daima global den universal’e ve domain local’e olacak şekilde gereklidir.

Bunu yapan script Cert Publishers group domain local group iken populate etmek için kullanılan scriptten çok farklı değildir. Farklılık groupType attribute value’leri modify ederkendir. Bir universal group ‘un groupType attribute value –2147483640 ‘dir ve domain local group’un groupType attribute value –2147483644’dür

Example.com domain senaryo örneğimizde olduğu gibi , script aşağıdaki gibi olmalıdır :

Set grp = GetObject("LDAP://CN=Cert Publishers,CN=Users,DC=west,DC=example,DC=com")

grp.Put "groupType","-2147483640"

grp.SetInfo

grp.Put "groupType","-2147483644"

grp.SetInfo

grp.SetInfogrp.add ("LDAP://CN=CA1,CN=Computers,DC=example,DC=com")

grp.SetInfogrp.add ("LDAP://CN=CA2,CN=Computers,DC=example,DC=com")

grp.SetInfo

Set grp = GetObject("LDAP://CN=Cert Publishers,CN=Users,DC=east,DC=example,DC=com")

grp.Put "groupType","-2147483640"

grp.SetInfo

grp.Put "groupType","-2147483644"

grp.SetInfo

grp.SetInfogrp.add ("LDAP://CN=CA1,CN=Computers,DC=example,DC=com")

grp.SetInfogrp.add ("LDAP://CN=CA2,CN=Computers,DC=example,DC=com")

grp.SetInfo

grp.SetInfo

İpucu Eğer bir domain’in Cert Publishers group’u zaten domain local group ise bu durumda basitçe bu scriptten grp.Put “groupType” ve group.setInfo line’larını bu spesifik domain için kaldırınız

Windows Server 2008 Enterprise CA ‘leri Non–AD DS Environment lara deploy etmek

Windows Server 2008 enterprise CA’lerin non–AD DS environment’larında olması mümkün değildir. Bir enterprise CA configuration information ve certificate publishing depolaması için AD DS varlığına ihtiyaç duyar. Ayrıca security policy ve authentication functionalitysi içinde buna ihtiyaç duyar. Bu Windows Server 2008 PKI’I non–AD DS environment’a kuramazsınız demek değildir. Sadece bu tür bir işlem ile PKI hiyerarşisindeki herbir CA standalone CA olmalı demektir.

Bir standalone CA environmentta , Issue edilen sertifikaların içeriğini tanımlamak için AD DS de ki certificate template’i kullanmaktansa , sertifikaların içeriği gerçek sertifika request’i içerisinde tanımlanmıştır.İlave olarak , tüm sertifika requestleri varsayılan olarak pending status’a ayarlıdır ve certificate manager’ın bu standalone CA ‘e submit olan her bir sertifika request’ini approve ya da deny etmesi gerekmektedir.

Not Bu default davranışı değiştirebiliyor olmanıza ve sertifikaları otomatik olarak issue edebilmenize ragmen , bu işlem önerilmez. certificate templates olmadan Eğer bir standalone CA automatic olarak requestleri işler ve bu requestleri temel alarak sertifikaları issue eder ise herhangi bir authentication ya da validation sistemi uygulanmaz

Kaynak : Windows Server 2008 PKI and Certificate Security