Active Directory 輕量型目錄服務 (AD LDS) 架構使用物件類別及屬性,定義可以在 AD LDS 目錄中建立及儲存的物件及資料類型。每個 AD LDS 組態集本身都具有獨立的可管理架構,儲存在架構目錄分割中。為了保持 AD LDS 設計概念的簡易及彈性,基本 (或預設) AD LDS 架構只包含啟動 AD LDS 執行個體所需的類別及屬性。系統管理員或應用程式本身可以使用新類別或屬性來延伸架構。此外,可將不需要的架構類別及屬性停用。如同目錄中的所有物件一樣,存取控制清單 (ACL) 可保護架構物件,因此只有授權的使用者才可以修改架構。AD LDS 目錄中的每個物件都是定義在架構中的一個物件類別執行個體 (如下面說明所示)。
物件類別
物件類別代表物件目錄,例如使用者、印表機或應用程式,它們都共用一組共同特性。每一個物件類別的定義都包含可用來說明類別之執行個體的屬性清單。例如,User 類別具有 givenName、surname 和 streetAddress 這類的屬性。類別的屬性清單會分成該類別的物件「必須」包含的屬性,以及物件「可能」包含的其他屬性。每個類別的定義也會列出類別,而這些類別的物件可以是給定類別物件的父項。
例如,下表會顯示 AD LDS User 類別的定義。
屬性 | 值 |
---|---|
Dn |
CN=User,CN=Schema,CN=Configuration |
objectClass |
top; classSchema; |
cn |
User; |
distinguishedName |
CN=User,CN=Schema,CN=Configuration; |
subClassOf |
organizationalPerson; |
mayContain |
audio; carLicense; departmentNumber; displayName; employeeNumber; employeeType; givenName; homePostalAddress; jpegPhoto; labeledURI; photo; preferredLanguage; roomNumber; secretary; uid; userPKCS12; userSMIMECertificate; x500uniqueIdentifier; |
rDNAttID |
cn; |
adminDisplayName |
User; |
adminDescription |
User; |
objectClassCategory |
1; |
lDAPDisplayName |
user; |
name |
User; |
objectGUID |
dac9093a-d2aa-408a-81bb-0fe8179165da; |
schemaIDGUID |
bf967aba-0de6-11d0-a285-00aa003049e2; |
objectCategory |
CN=Class-Schema,CN=Schema,CN=Configuration; |
defaultObjectCategory |
CN=Person,CN=Schema,CN=Configuration; |
屬性
架構也可定義每個屬性。每個屬性的定義包含屬性的唯一識別碼、屬性的語法、屬性值的選用範圍限制、屬性只能具有一個值或多個值,以及屬性是否經過索引。目錄架構只可定義每個屬性一次。之後多個物件類別即可參照每個屬性。例如,description 屬性已定義一次,然後由多個物件類別所參照。
下表顯示 telephone number 的屬性定義,其為代表性的架構屬性。
屬性 | 值 |
---|---|
objectClass |
top; attributeSchema; |
cn |
Telephone-Number; |
distinguishedName |
CN=Telephone-Number,CN=Schema,CN=Configuration; |
instanceType |
0x4 = ( IT_WRITE ); |
whenCreated |
11/12/2002 13 |
22 |
14 Pacific Standard Time Pacific Daylight Time; |
whenChanged |
11/12/2002 13 |
22 |
14 Pacific Standard Time Pacific Daylight Time; |
uSNCreated |
217; |
attributeID |
2.5.4.20; |
attributeSyntax |
2.5.5.12; |
isSingleValued |
TRUE; |
rangeLower |
1; |
rangeUpper |
64; |
uSNChanged |
217; |
showInAdvancedViewOnly |
TRUE; |
adminDisplayName |
Telephone-Number; |
adminDescription |
Telephone-Number; |
oMSyntax |
64; |
searchFlags |
0; |
lDAPDisplayName |
telephoneNumber; |
name |
Telephone-Number; |
objectGUID |
bf19d7eb-ea0f-4f2d-af67-f439a037d8a4; |
schemaIDGUID |
bf967a49-0de6-11d0-a285-00aa003049e2; |
attributeSecurityGUID |
77b5b886-944a-11d1-aebd-0000f80367c1; |
systemOnly |
FALSE; |
systemFlags |
0x10 = ( FLAG_SCHEMA_BASE_OBJECT ); |
isMemberOfPartialAttributeSet |
TRUE; |
objectCategory |
CN=Attribute-Schema,CN=Schema,CN=Configuration; |
單一值及多重值屬性
屬性可以是單一值或多重值。單一值屬性執行個體只能包含單一值。多值屬性的執行個體可以包含多個值,而這些值都必須使用相同的語法。多重值屬性的每一個值都必須是唯一的。
附註 | |
多重值屬性是以隨機順序儲存值。因此,您不應該根據多值屬性中的值順序,以程式方式或手動方式決定目錄。 |
編排屬性索引
編排屬性索引有助於增進使用索引屬性的查詢效能。可以編排單一值及多重值屬性的索引;但是無法編排類別的索引。可透過架構定義,標示屬性以進行索引。編排屬性索引可讓使用者於指定搜尋字串時,使用萬用字元 (*) 做為首碼及尾碼。將屬性標記為索引時,該屬性的所有執行個體都會加入到索引中,而不僅是那些屬於特定類別的執行個體。編排屬性索引,特別是多重值屬性,可能會負面影響複寫及物件建立時間,以及目錄資料庫大小。因此,您應該只編排常用屬性的索引。
如需架構的一般資訊,請參閱<Active Directory 架構>(