Un schéma AD LDS (Active Directory Lightweight Directory Services) définit, à l’aide de classes d’objets et d’attributs, les types d’objets et de données qui peuvent être créés et stockés dans un annuaire AD LDS. Chaque jeu de configuration AD LDS possède son propre schéma gérable de manière indépendante, stocké dans la partition d’annuaire de schéma. Conforme aux principes de conception d’AD LDS fondés sur la simplicité et la flexibilité, le schéma de base (ou par défaut) d’AD LDS contient uniquement les classes et attributs nécessaires pour démarrer une instance AD LDS. Le schéma peut être étendu avec des classes et attributs nouveaux, tant par les administrateurs que par les applications elles-mêmes. De plus, les classes et attributs de schéma inutiles peuvent être désactivés. Comme tous les objets de l’annuaire, les listes de contrôle d’accès protègent les objets Schéma. Ainsi, seuls les utilisateurs autorisés peuvent modifier le schéma. Chaque objet d’un répertoire AD LDS est une instance d’une classe d’objet qui est définie dans un schéma, comme le montre l’illustration suivante.
Classes d’objet
Une classe d’objet représente une catégorie d’objets, tels qu’utilisateurs, imprimantes ou programmes d’application, qui partagent un ensemble de caractéristiques communes. La définition de chaque classe d’objet contient une liste des attributs qui peuvent être utilisés pour décrire les instances de la classe. Par exemple, la classe Utilisateur a des attributs tels que givenName, surname et streetAddress. La liste des attributs d’une classe se subdivise entre les attributs qu’un objet de cette classe doit contenir et les attributs supplémentaires qu’un objet peut contenir. La définition de chaque classe répertorie également les classes dont les objets peuvent être parents d’objets d’une classe donnée.
Par exemple, le tableau suivant montre la définition de la classe Utilisateur AD LDS.
Attribut | Valeur |
---|---|
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; |
nom |
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; |
Attributs
Le schéma définit également chaque attribut. La définition de chaque attribut inclut des identificateurs uniques pour l’attribut, sa syntaxe, les limites de plage facultatives pour ses valeurs. Elle indique aussi si l’attribut peut avoir une ou plusieurs valeurs et s’il est indexé. Le schéma d’annuaire définit une fois chaque attribut de manière exacte. Chaque attribut peut alors être référencé par plusieurs classes d’objet. Par exemple, l’attribut description est défini une fois, puis référencé par de nombreuses classes d’objet.
Le tableau suivant montre la définition d’attribut pour telephone number, un attribut de schéma représentatif.
Attribute | Valeur |
---|---|
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; |
Attributs à valeur simple et à valeurs multiples
Les attributs peuvent contenir une ou plusieurs valeurs. Une instance d’un attribut à valeur simple ne peut contenir qu’une valeur. Une instance d’un attribut à valeurs multiples peut contenir plusieurs valeurs qui doivent toutes utiliser la syntaxe. Chaque valeur d’un attribut à valeurs multiples doit être unique.
Remarques | |
Un attribut à valeurs multiples stocke ses valeurs dans un ordre aléatoire. Par conséquent, vous ne devez prendre aucune décision concernant l’annuaire - que ce soit par programme ou en mode manuel - en fonction de l’ordre des valeurs dans un attribut à valeurs multiples. |
Attributs indexés
L’indexation des attributs vous aide à améliorer les performances des requêtes qui sont basées sur l’attribut indexé. Les attributs à valeur simple ou à valeurs multiples peuvent être indexés ; les classes ne le peuvent pas. Les attributs sont identifiés pour l’indexation selon leur définition de schéma. L’indexation d’un attribut permet également aux utilisateurs d’utiliser des caractères génériques (*) en tant que préfixes et suffixes lorsqu’ils spécifient une chaîne de recherche. Lorsque vous marquez un attribut comme indexé, toutes les instances de l’attribut sont ajoutées à l’index et non simplement les instances qui appartiennent à une classe spécifique. L’indexation des attributs, notamment celle des attributs à valeurs multiples, peut avoir des effets négatifs sur le temps de réplication et de création des objets ainsi que sur la taille de la base de données de l’annuaire. Par conséquent, vous ne devez indexer que les attributs d’utilisation courante.
Pour plus d’informations sur les schémas, visitez la page, éventuellement en anglais, traitant des schémas Active Directory (