Um esquema dos Serviços AD LDS (AD LDS) define, utilizando classes e atributos de objeto, os tipos de objetos e dados que podem ser criados e armazenados no diretório do AD LDS. Cada conjunto de configurações do AD LDS tem seu próprio esquema gerenciável de maneira independente, que é armazenado na partição de diretório do esquema. Acompanhando os conceitos de simplicidade e flexibilidade de design do AD LDS, o esquema básico (ou padrão) do AD LDS contém apenas as classes e os atributos necessários para iniciar uma instância do AD LDS. Os administradores ou os próprios aplicativos podem estender o esquema com classes e atributos novos. Além disso, é possível desativar as classes e os atributos de esquema desnecessários. Assim como ocorre com todos os objetos no diretório, as ACLs (listas de controle de acesso) protegem os objetos do esquema, de modo que somente os usuários autorizados possam alterar o esquema. Cada objeto em um diretório do AD LDS é uma instância de uma classe de objeto definida em um esquema, conforme mostrado na ilustração a seguir.
Classes do objeto
Uma classe de objeto representa uma categoria de objetos, como usuários, impressoras ou programas de aplicativo, que compartilham um conjunto de características comuns. A definição para cada classe de objeto contém uma lista dos atributos que podem ser usados para descrever instâncias da classe. Por exemplo, a classe User tem atributos como givenName, surname e streetAddress. A lista de atributos para uma classe divide-se entre os atributos que um objeto dessa classe deve conter e os atributos adicionais que um objeto pode conter. A definição de cada classe também lista as classes cujos objetos podem ser pais dos objetos de uma determinada classe.
Por exemplo, a tabela a seguir mostra a definição da classe User do AD LDS.
Atributo | Valor |
---|---|
Dn |
CN=User,CN=Schema,CN=Configuration |
objectClass |
top; classSchema; |
cn |
Usuário; |
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 |
Usuário; |
adminDescription |
Usuário; |
objectClassCategory |
1; |
lDAPDisplayName |
usuário; |
nome |
Usuário; |
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
O esquema também define cada atributo. A definição de cada atributo contém identificadores exclusivos para o atributo, a sintaxe do atributo, limites de intervalo opcionais para os valores do atributo e definições se o atributo pode ter apenas um valor ou vários e se é indexado. O esquema de diretório define cada atributo exatamente uma vez. Assim, cada atributo pode ser referenciado por várias classes de objeto. Por exemplo, o atributo de descrição é definido uma vez e depois referenciado por várias classes de objeto.
A tabela a seguir mostra a definição de atributo para número de telefone, um atributo representativo do esquema.
Atributo | Valor |
---|---|
objectClass |
top; attributeSchema; |
cn |
Número de Telefone; |
distinguishedName |
CN=Telephone-Number,CN=Schema,CN=Configuration; |
instanceType |
0x4 = ( IT_WRITE ); |
whenCreated |
11/12/2002 13 |
22 |
14 Hora Padrão do Pacífico Horário de Verão do Pacífico; |
whenChanged |
11/12/2002 13 |
22 |
14 Hora Padrão do Pacífico Horário de Verão do Pacífico; |
uSNCreated |
217; |
attributeID |
2.5.4.20; |
attributeSyntax |
2.5.5.12; |
isSingleValued |
TRUE; |
rangeLower |
1; |
rangeUpper |
64; |
uSNChanged |
217; |
showInAdvancedViewOnly |
TRUE; |
adminDisplayName |
Número de Telefone; |
adminDescription |
Número de Telefone; |
oMSyntax |
64; |
searchFlags |
0; |
lDAPDisplayName |
telephoneNumber; |
nome |
Número de Telefone; |
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 exclusivos e multivalorados
Os atributos podem ter um valor exclusivo ou valores múltiplos. Uma instância de um atributo de valor exclusivo só pode conter um único valor. Uma instância de um atributo multivalorado pode conter vários valores que devem usar a mesma sintaxe. Cada valor de um atributo multivalorado deve ser exclusivo.
Observação | |
Um atributo multivalorado armazena seus valores em ordem aleatória. Portanto, você não deve tomar nenhuma decisão sobre o diretório — manual ou por programação — com base na ordem dos valores em um atributo multivalorado. |
Atributos indexados
A indexação de atributos ajuda a melhorar o desempenho das consultas com base no atributo indexado. Os atributos exclusivos e multivalorados podem ser indexados; as classes não. É possível marcar os atributos para indexação por meio de sua definição do esquema. A indexação de um atributo também permite que os usuários usem curingas (*) como prefixos e sufixos durante a especificação da sequência de pesquisa. Quando você marca um atributo como indexado, todas as ocorrências do atributo são adicionadas ao índice, não apenas as ocorrências que são membros de determinada classe. Os atributos de indexação, particularmente os atributos multivalorados, podem afetar negativamente o tempo de replicação e de criação de objetos, como também o tamanho de bancos de dados de diretório. Portanto, você somente deverá indexar atributos usados comumente.
Para obter informações gerais sobre esquemas, consulte a página sobre o esquema do Active Directory (