Windows Server 2003 Service Pack 1'de özniteliği gizli olarak işaretleme

Bu makalede, Windows Server 2003 Service Pack 1'de özniteliğin nasıl gizli olarak işaretlenmesi açıklanır.

Şunlar için geçerlidir: Windows Server 2003
Özgün KB numarası: 922836

Özet

Microsoft Windows Server 2000 ve Microsoft Windows Server 2003 için Active Directory dizin hizmetinde, kimliği doğrulanmış bir kullanıcının bir özniteliği okumasını engellemek zordur. Genel olarak, kullanıcı bir öznitelik veya özellik kümesi için READ_PROPERTY izinleri isterse, okuma erişimi verilir. Active Directory'de varsayılan güvenlik, kimliği doğrulanmış kullanıcıların tüm özniteliklere okuma erişimine sahip olacak şekilde ayarlanır. Bu makalede, Windows Server 2003 Service Pack 1'de (SP1) bir öznitelik için okuma erişiminin nasıl engellenmesi anlatılmaktadır.

Daha fazla bilgi

Windows Server 2003 SP1, bir özniteliği gizli olarak işaretlemenin bir yolunu sağlar. Bunu yapmak için şemadaki searchFlags özniteliğinin değerini değiştirirsiniz. searchFlags öznitelik değeri, özniteliğin çeşitli özelliklerini temsil eden birden çok bit içerir. Örneğin, bit 1 ayarlanırsa özniteliği dizine eklenir. Bit 7 (128) özniteliğini gizli olarak gösterir.

Gereksinimler ve kısıtlamalar

Yalnızca Windows Server 2003 SP1 veya sonraki bir sürümü çalıştıran etki alanı denetleyicileri gizli öznitelikler için okuma erişim denetimini zorunlu kılır. Gizli öznitelikler özelliği, Windows Server 2003 SP1 veya sonraki bir sürümün yüklenmesine bağlıdır. Bu özellik, etki alanı veya orman işlev düzeyinin etkinleştirilip etkinleştirilmediğine bağlı değildir.

Aşağıdaki koşullar doğru olmadığı sürece gizli öznitelikler özelliğini kullanmayın:

  • Tüm Windows Server 2003 tabanlı etki alanı denetleyicilerinde Windows Server 2003 SP1 veya sonraki bir sürüm yüklüdür.

  • Tüm Windows 2000 tabanlı etki alanı denetleyicileri yükseltildi veya kaldırıldı. Bir etki alanı Windows 2000 Server, Windows Server 2003 ve Windows Server 2003 SP1'in özgün sürümü çalıştıran etki alanı denetleyicilerinin bir karışımını içeriyorsa, aşağıdaki senaryo oluşabilir:

  • Yetkisiz bir istemci gizli öznitelik verileri için Windows 2000 Server tabanlı ve Windows Server 2003 tabanlı etki alanı denetleyicilerini sorgularsa, istemci verileri okuyabilir.

  • Yetkisiz bir istemci gizli öznitelik verileri için Windows Server 2003 SP1 tabanlı etki alanı denetleyicisini sorgularsa, istemci verileri okuyamaz. Temel şema özniteliğini gizli olarak işaretleyemezsiniz. Çalışan kimliği, temel şema özniteliğine örnektir. SystemsFlags öznitelik değeri 0x10 (temel şema) olarak ayarlandığından bu öznitelik gizli olarak işaretlenemiyor. Daha fazla bilgi için "Özniteliğin temel şema özniteliği olup olmadığını belirleme" bölümüne ve "Mevcut bir özniteliği kullandığınızda searchFlags öznitelik değerini belirleme" bölümüne bakın.

Test

Active Directory'de ve herhangi bir şema uzantısında yapılan değişiklikleri test edeceğiniz gibi, üretim ormanınızı yansıtan bir laboratuvarda öznitelik değişikliklerini kapsamlı bir şekilde test etmenizi öneririz. Test, yordamın sorunsuz bir şekilde çalışmasını ve sorunların algılandığını garanti altına alır.

Erişim denetimi denetimleri

Windows Server 2003 SP1 yüklendikten ve Active Directory okuma erişim denetimi gerçekleştirdikten sonra Active Directory gizli öznitelikleri denetler. Gizli öznitelikler varsa ve bu öznitelikler için READ_PROPERTY izinleri ayarlanmışsa, Active Directory ayrıca öznitelikler veya özellik kümeleri için CONTROL_ACCESS izinler gerektirir.

Not

Tam Denetim izni ayarı, CONTROL_ACCESS iznini içerir.

Active Directory, aşağıdaki durumlarda bir nesne üzerinde okuma erişimi denetimi gerçekleştirir:

  • Nesnenin arama filtresiyle eşleşip eşleşmediğini değerlendirdiğinizde.
  • Arama filtresiyle eşleşen bir nesnenin özniteliklerini döndürdüğünüzde. Varsayılan olarak, yalnızca yöneticilerin tüm nesneler üzerinde CONTROL_ACCESS izinleri vardır. Bu nedenle, gizli öznitelikleri yalnızca Yöneticiler okuyabilir. Yöneticiler bu izinleri herhangi bir kullanıcıya veya gruba devredebilir.

Genel ve nesneye özgü erişim denetimi girdileri

Active Directory'deki her nesnenin kendisiyle ilişkili erişim denetimi bilgileri vardır. Bu bilgiler güvenlik tanımlayıcısı olarak bilinir. Güvenlik tanımlayıcısı, kullanıcılara ve gruplara sağlanan erişim türünü denetler. Nesne oluşturulduğunda güvenlik tanımlayıcısı otomatik olarak oluşturulur.

Güvenlik tanımlayıcısı içindeki izin girdileri kümesi, isteğe bağlı erişim denetimi listesi (DACL) olarak bilinir. DACL'deki her izin girdisi, erişim denetimi girdisi (ACE) olarak bilinir.

Nesne üzerinde genel veya nesneye özgü bir erişim denetimi girdisi kullanarak nesneye izin verebilir veya gizli özniteliklere CONTROL_ACCESS izinleri vekleyebilirsiniz. İzinleri nesneye açıkça damgalayarak veya devralmayı kullanarak vererek vererek vekleyebilirsiniz. Devralma, kapsayıcı hiyerarşisinde daha yüksek olan bir kapsayıcıda devralınabilir bir erişim denetimi girdisi ayarladığınız anlamına gelir.

Genel ve nesneye özgü erişim denetimi girişleri temelde aynıdır. Bunları ayıran, erişim denetimi girişlerinin devralma ve nesne erişimi üzerinden sunduğu denetim derecesidir. Genel erişim denetimi girdileri nesnenin tamamına uygulanır. Nesneye özgü erişim denetimi girdileri, erişim denetimi girdisini devralan nesneler üzerinde daha fazla denetim sunar. Nesneye özgü erişim denetimi girdisi kullandığınızda, erişim denetimi girdisini devralacak nesnenin özniteliğini veya özellik kümesini belirtebilirsiniz.

Gizli öznitelikler özelliğini kullandığınızda, kullanıcıya genel erişim denetimi girişi atanarak CONTROL_ACCESS izin verilir. Nesneye özgü erişim denetimi girişi atanarak CONTROL_ACCESS izin verilirse, kullanıcının yalnızca gizli öznitelik üzerinde CONTROL_ACCESS izni olur.

Genel erişim denetimi girdisi kullandığınızda aşağıdaki izinler verilir:

  • Tüm Genişletilmiş Haklar
  • Kimlik Doğrulamasına İzin Verildi
  • Parola Değiştirme
  • Farklı Al
  • Parolayı Sıfırla
  • Farklı Gönder

Genel erişim denetimi girdisi kullandığınızda verilen izinler, nesnenin tamamı üzerinde istenenden daha fazla erişim sağlayabilir. Bu bir sorunsa, nesne üzerinde nesneye özgü bir erişim denetimi girdisi ayarlayabilirsiniz, böylece erişim denetimi girdisi yalnızca gizli özniteliğe uygulanır. Nesneye özgü erişim denetimi girdilerini kullandığınızda, erişim denetimi girişinin uygulandığı özelliği veya özellik kümesini denetleyebilirsiniz.

Windows Server 2003'teki kullanıcı arabirimi Control_Access izinlerini kullanıma sunmaz. Genel erişim denetimi girdisi atayarak Control_Access izinleri ayarlamak için Dsacls.exe aracını kullanabilirsiniz. Ancak, nesneye özgü erişim denetimi girdisi atamak için bu aracı kullanamazsınız. Nesneye özgü erişim denetimi girdisi atayarak Control_Access izinleri ayarlayabilen tek araç, Ldp.exe aracıdır.

Not

Erişim denetiminin ayrıntılı bir tartışması bu makalenin kapsamının dışındadır. Erişim denetimi hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
Access Control (Yetkilendirme)
Kimlik Yönetimi ve Access Control

Devralmayı kullanma

Büyük bir etki alanında, gizli özniteliği olan her nesne için bir kullanıcıya veya gruba el ile denetim erişimi atamak pratik değildir. Çözüm, kapsayıcı hiyerarşisinde daha yüksek olan devralılabilir bir erişim denetimi girdisi ayarlamak için devralmayı kullanmaktır. Bu erişim denetimi girdisi, söz konusu kapsayıcının tüm alt nesneleri için geçerlidir.

Varsayılan olarak devralma, yerleşik yönetici hesabı dışında tüm kuruluş birimleri (OU) ve tüm kullanıcı hesapları için etkinleştirilir. Devralma devre dışı bırakılmış kullanıcı hesapları oluşturuyorsanız veya yerleşik yönetici hesabını kopyalayarak yönetim hesapları oluşturuyorsanız, bu hesaplar için devralmayı etkinleştirmeniz gerekir. Aksi takdirde devralma modeli bu hesaplar için geçerli değildir.

Gizli öznitelik oluşturma

  1. Hangi özniteliğin gizli olarak işaretleneceğini belirleyin veya gizli hale getirmek istediğiniz bir öznitelik ekleyin.
  2. Kullanıcıların öznitelik verilerini görüntüleyebilmesi için uygun kullanıcılara izin Control_Access verin.

Gizli bir öznitelik oluşturmak için Ldp.exe aracı ve Adsiedit.msc aracı gibi araçlar kullanılabilir. .ldf dosyaları genellikle şemayı genişletmek için kullanılır. Bu dosyalar, bir özniteliği gizli olarak işaretlemek için de kullanılabilir. Bir uygulama için oluşturduğunuz dosyalar test aşamasında ayarlanmalıdır, böylece üretime dağıtım yaparken şemaya tam olarak ne eklediğinizi bilirsiniz. .ldf dosyaları hataları önlemeye yardımcı olur.

Aşağıdaki örnek .ldf dosyaları aşağıdakileri yapmak için kullanılabilir:

  • Şemaya öznitelik ekleme
  • Özniteliği gizli olarak işaretleme
  • Özniteliğini kullanıcı sınıfına ekleme

Not

.ldf dosyalarını kullanmadan önce, şemaya nesne ve öznitelik ekleme hakkında önemli bilgiler için "Nesne tanımlayıcıları" ve " Öznitelik söz dizimi" bölümlerini okuduğunuzdan emin olun.

Örnek .ldf dosyaları

Aşağıdaki kod şemaya bir öznitelik ekler ve ardından özniteliği gizli olarak işaretler.

dn: CN=ConfidentialAttribute-LDF,CN=Schema,Cn=Configuration,DC=domain,DC=com
changetype: add
objectClass: attributeSchema
lDAPDisplayName: ConfidentialAttribute
adminDescription: Bu öznitelik kullanıcının gizli verilerini depolar
attributeID: 1.2.840.113556.1.xxxx.xxxx.1.x
attributeSyntax: 2.5.5.12
oMSyntax: 64
isSingleValued: TRUE
showInAdvancedViewOnly: TRUE
searchFlags: 128

Dn:
changeType: modify
add: schemaupdatenow
schemaupdatenow: 1
-

Aşağıdaki kod, kullanıcı sınıfına yeni özniteliği ekler.

dn: CN=User,CN=Schema,CN=Configuration,DC=domain,DC=com
changetype: modify
add: mayContain
mayContain: ConfidentialAttribute
-

Dn:
changeType: modify
add: schemaupdatenow
schemaupdatenow: 1
-

Yönetici olmayan kullanıcıların öznitelik verilerini görmesine izin verme

Not

Aşağıdaki yordamlar, Windows Server 2003 R2 Active Directory Uygulama Modu'na (ADAM) dahil olan Ldp.exe aracını kullanmanızı gerektirir. Ldp.exe aracının diğer sürümleri izinleri ayarlayamaz.

Kullanıcı hesabında Control_Access izinlerini el ile ayarlama

  1. Windows Server 2003 R2 ADAM ile birlikte gelen Ldp.exe aracını açın.
  2. Dizine bağlanın ve bağlayın.
  3. Bir kullanıcı hesabı seçin, hesaba sağ tıklayın, Gelişmiş'e tıklayın, Güvenlik Tanımlayıcısı'na ve ardından Tamam'a tıklayın.
  4. DACL kutusunda ACE Ekle'ye tıklayın.
  5. Güvenen kutusuna, izin vermek istediğiniz grup adını veya kullanıcı adını yazın.
  6. Denetim Erişimi kutusunda, 5. adımda yaptığınız değişiklikleri doğrulayın.

Control_Access izinleri atamak için devralmayı kullanma

Devralmayı kullanmak için, kapsayıcı hiyerarşisinde gizli özniteliklere sahip nesnelerden daha yüksek olan istenen kullanıcılara veya gruplara Control_Access izinleri veren bir erişim denetimi girdisi oluşturun. Bu erişim denetimi girdisini etki alanı düzeyinde veya kapsayıcı hiyerarşisinde bir kuruluş için iyi çalışan herhangi bir noktada ayarlayabilirsiniz. Gizli öznitelikleri olan alt nesnelerin devralma etkin olmalıdır.

Control_Access izinleri atamak için şu adımları izleyin:

  1. Windows Server 2003 R2 ADAM'da bulunan Ldp.exe dosyasını açın.

  2. Bir dizine bağlanın ve bağlayın.

  3. Kapsayıcı hiyerarşisinde gizli özniteliklere sahip nesnelerden daha yüksek olan bir OU veya kapsayıcı seçin, OU'ya veya kapsayıcıya sağ tıklayın, Gelişmiş'e tıklayın, Güvenlik Tanımlayıcısı'na tıklayın ve ardından Tamam'a tıklayın.

  4. DACL kutusunda ACE Ekle'ye tıklayın.

  5. Güvenen kutusuna, izin vermek istediğiniz grup adını veya kullanıcı adını yazın.

  6. Denetim Erişimi kutusunda, 5. adımda yaptığınız değişiklikleri doğrulayın.

  7. Nesne Türü kutusunda, eklediğiniz gizli özniteliğe tıklayın.

  8. Devralma özelliğinin hedef nesnelerde etkinleştirildiğinden emin olun.

Mevcut bir özniteliği kullandığınızda systemFlags öznitelik değerini belirleme

Mevcut bir nesneyi kullanıyorsanız, geçerli searchFlags öznitelik değerinin ne olduğunu doğrulamanız gerekir. Bir nesne eklerseniz, nesneyi eklerken değeri tanımlayabilirsiniz. searchFlags öznitelik değerini almanın birçok yolu vardır. Sizin için en uygun yöntemi kullanın.

searchFlags öznitelik değerini almak için Ldp.exe aracını kullanmak için şu adımları izleyin:

  1. Başlat'a tıklayın, Çalıştır'a tıklayın, LDP yazın ve tamam'a tıklayın.

  2. Bağlantı'ya ve ardından Bağla'ya tıklayın.

  3. Kök etki alanının Yöneticisi olarak bağlama veya Kuruluş Yöneticisi olan bir hesap olarak bağlama.

  4. Görünüm'e ve ardından Ağaç'a tıklayın.

  5. CN=schema,cn=configuration,dc=rootdomain ve ardından Tamam'a tıklayın.

  6. Sol bölmede CN=schema,cn=configuration,dc=rootdomain öğesini genişletin.

  7. Gizli olarak işaretlemek istediğiniz özniteliğin etki alanı adını bulun ve genişletin.

  8. Nesne için doldurulan öznitelikler listesinde, o nesnenin geçerli searchFlags öznitelik değerini belirlemek için searchFlags'ı bulun.

Not

Yeni searchFlags öznitelik değerini belirlemek için aşağıdaki formülü kullanın:
128 + currentsearchFlagsattribute değeri = newsearchFlagsattribute değeri.

Özniteliğin temel şema özniteliği olup olmadığını belirleme

Özniteliğin temel şema özniteliği olup olmadığını belirlemek için Ldp.exe aracını kullanarak systemFlags öznitelik değerini inceleyin.

Employee-ID - systemFlags' in LDP çıkışı: 0x10 = (FLAG_SCHEMA_BASE_OBJECT)

Aşağıdaki örnek Ldp.exe çıktısında Ldp.exe systemFlags öznitelik değerini 0x10 ve temel şema özniteliği olarak tanımlar. Bu nedenle, bu özniteliği gizli olarak işaretleyemezsiniz.

>> Dn: CN=Employee-ID,CN=Schema,CN=Configuration,DC=domain,DC=com
2> objectClass: top; attributeSchema;
1> cn: Çalışan Kimliği;
1> distinguishedName: CN=Employee-ID,CN=Schema,CN=Configuration,DC=domain,DC=com;
1> instanceType: 0x4 = ( IT_WRITE );
1> whenCreated: <DateTime>;
1> whenChanged: <DateTime>;
1> uSNCreated: 220;
1> attributeID: 1.2.840.113556.1.4.35;
1> attributeSyntax: 2.5.5.12 = ( SYNTAX_UNICODE_TYPE );
1> isSingleValued: TRUE;
1> rangeLower: 0;
1> rangeUpper: 16;
1> uSNChanged: 220;
1> showInAdvancedViewOnly: TRUE;
1> adminDisplayName: Çalışan Kimliği;
1> adminDescription: Çalışan Kimliği;
1> oMSyntax: 64 = ( OM_S_UNICODE_STRING );
1> searchFlags: 0x0 = ( );
1> lDAPDisplayName: employeeID;
1> ad: Çalışan Kimliği;
1> objectGUID: 64fb3ed1-338f-466e-a879-595bd3940ab7;
1> schemaIDGUID: bf967962-0de6-11d0-a285-00aa003049e2;
1> systemOnly: FALSE;
1> systemFlags: 0x10 = ( FLAG_SCHEMA_BASE_OBJECT );
1> objectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,DC=domain,DC=com;

Employee-Number systemFlags'ın LDP çıkışı: 0x0 = ( )

Aşağıdaki örnek Ldp.exe çıktısında Ldp.exe systemFlags öznitelik değerini 0 olarak tanımlar. Bu öznitelik gizli olarak işaretlenebilir.

>> Dn: CN=Employee-Number,CN=Schema,CN=Configuration,DC=warrenw,DC=com
2> objectClass: top; attributeSchema;
1> cn: Çalışan-Numarası;
1> distinguishedName: CN=Employee-Number,CN=Schema,CN=Configuration,DC=warrenw,DC=com;
1> instanceType: 0x4 = ( IT_WRITE );
1> whenCreated: <DateTime>;
1> whenChanged: <DateTime>;
1> uSNCreated: 221;
1> attributeID: 1.2.840.113556.1.2.610;
1> attributeSyntax: 2.5.5.12 = ( SYNTAX_UNICODE_TYPE );
1> isSingleValued: TRUE;
1> rangeLower: 1;
1> rangeUpper: 512;
1> mAPIID: 35943;
1> uSNChanged: 221;
1> showInAdvancedViewOnly: TRUE;
1> adminDisplayName: Employee-Number;
1> adminDescription: Çalışan-Numarası;
1> oMSyntax: 64 = ( OM_S_UNICODE_STRING );
1> searchFlags: 0x0 = ( );
1> lDAPDisplayName: employeeNumber;
1> ad: Çalışan-Numarası;
1> objectGUID: 2446d04d-b8b6-46c7-abbf-4d8e7e1bb6ec;
1> schemaIDGUID: a8df73ef-c5ea-11d1-bbcb-0080c76670c0;
1> systemOnly: FALSE;
1> systemFlags: 0x0 = ( );
1> objectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,DC=warrenw,DC=com;

Nesne tanımlayıcıları

Şemaya bir öznitelik veya sınıf nesnesi eklediğinizde, gerekli özniteliklerden biri nesne tanımlayıcısıdır (OID olarak da bilinir). Nesne tanımlayıcıları, nesne sınıflarını ve özniteliklerini benzersiz olarak tanımlamak için kullanılır. Şirketinizin özniteliğini tanımlamak için benzersiz bir nesne tanımlayıcısı edindiğinden emin olun. Oidgen.exe aracı gibi nesne tanımlayıcıları oluşturan araçlar desteklenmez. Microsoft'tan nesne tanımlayıcısı almak için aşağıdaki Microsoft Web sitesini ziyaret edin:
Microsoft'tan Nesne Tanımlayıcısı Alma

Öznitelik söz dizimi

şemaya yeni nesneler eklemek için attributeSyntax özniteliği de gereklidir. Bu öznitelik, özellik türlerinin karşılaştırmaları için depolama gösterimini, bayt sıralamasını ve eşleştirme kurallarını tanımlar. Söz dizimi, öznitelik değerinin bir dize mi, sayı mı yoksa zaman birimi mi olması gerektiğini tanımlar. Her nesnenin her özniteliği tam olarak bir söz dizimi ile ilişkilendirilir. Yeni öznitelik için doğru öznitelik söz dizimini seçtiğinizden emin olun. Basit Dizin Erişim Protokolü (LDAP) dizinini başka bir LDAP diziniyle eşitlerseniz bu özellikle önemlidir. Öznitelik şemaya eklendikten sonra öznitelik söz dizimi değiştirilemez.

attributeSyntax özniteliği hakkında daha fazla bilgi için bkz . Attribute-Syntax özniteliği.

Daha fazla bilgi için Search-Flags özniteliğine bakın.