Un esquema de los Servicios de directorio ligero de Active Directory (AD LDS) define, mediante clases y atributos de objetos, los tipos de objetos y de datos que se pueden crear y almacenar en un directorio de AD LDS. Cada conjunto de configuración de AD LDS tiene su propio esquema, que se puede administrar por separado y se almacena en la partición de directorio de esquema. En consonancia con los conceptos de simplicidad y flexibilidad del diseño de AD LDS, el esquema base (o predeterminado) de AD LDS sólo contiene las clases y los atributos necesarios para iniciar una instancia de AD LDS. Los administradores, y las propias aplicaciones, pueden extender el esquema con más clases y atributos. Además, las clases y atributos de esquema que no sean necesarios se pueden desactivar. Como sucede con todos los objetos del directorio, las listas de control de acceso (ACL) protegen los objetos del esquema, para que sólo lo puedan modificar los usuarios autorizados. Cada uno de los objetos del directorio de AD LDS es una instancia de una clase de objeto definida en un esquema, como se muestra en la siguiente ilustración.
Clases de objetos
Una clase de objeto representa una categoría de objetos, como usuarios, impresoras o aplicaciones, que comparten un conjunto de características comunes. La definición de cada clase de objeto contiene una lista de los atributos que se pueden usar para describir instancias de la clase. Por ejemplo, la clase User tiene atributos como givenName, surname y streetAddress. La lista de atributos de una clase se divide en los atributos que un objeto de la clase debe tener y los atributos adicionales que puede tener. En la definición de cada clase se enumeran también las clases cuyos objetos pueden ser objetos principales de los objetos de una clase determinada.
Por ejemplo, en la tabla siguiente se muestra la definición de la clase User de AD LDS.
Atributo | Valor |
---|---|
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; |
nombre |
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; |
Atributos
El esquema define también cada uno de los atributos. La definición de cada atributo contiene los identificadores únicos del atributo, su sintaxis, los límites de intervalo opcionales para los valores del atributo, indica si el atributo sólo puede tener un valor o puede tener varios, y si el atributo está indizado. En el esquema de directorio se define cada atributo exactamente una vez. Posteriormente, varias clases de objeto pueden hacer referencia a cada atributo. Por ejemplo, el atributo description se define una vez y, posteriormente, muchas clases de objeto hacen referencia a él.
En la tabla siguiente se muestra la definición del atributo telephone number, un atributo de esquema representativo.
Atributo | Valor |
---|---|
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; |
nombre |
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; |
Atributos de uno y múltiples valores
Los atributos pueden tener un solo valor o múltiples valores. Una instancia de un atributo de un solo valor únicamente puede contener un valor. Una instancia de un atributo multivalor puede contener varios valores que deben usar la misma sintaxis. Cada uno de los valores del atributo multivalor debe ser exclusivo.
Nota | |
Un atributo multivalor almacena los valores en un orden aleatorio. Por ello, no se debe tomar ninguna decisión relativa al directorio, ya sea de forma manual o mediante programación, en función del orden de los valores de un atributo multivalor. |
Atributos indizados
La indización de los atributos contribuye a mejorar el rendimiento de las consultas que se basan en el atributo indizado. Se pueden indizar los atributos de un solo valor y los atributos multivalor, pero no se pueden indizar las clases. Los atributos se pueden marcar para su indización en su definición de esquema. La indización de un atributo también permite que los usuarios utilicen caracteres comodín (*) como prefijos y sufijos cuando especifican una cadena de búsqueda. Al marcar un atributo como indizado, todas las instancias del atributo se agregan al índice y no sólo las que pertenecen a una clase en particular. La indización de atributos, especialmente los multivalor, puede tener efectos negativos sobre el tiempo de replicación y de creación de objetos, así como sobre el tamaño de la base de datos de directorio. Por lo tanto, sólo debe indizar los atributos usados habitualmente.
Para obtener información general acerca de los esquemas, consulte el esquema de Active Directory (