Posso obter uma explicação da sintaxe dos sufixos da base de pesquisa do LDAP?

11

Sei que um sufixo de base de pesquisa LDAP geralmente corresponde ao nome do host do servidor de diretório. Em outras palavras, sei que se o nome do host for od.foobar.com , devo usar o sufixo da base de pesquisa: dc=od,dc=foorbar,dc=com

Me incomoda não entender por que estou fazendo isso. Alguém poderia fornecer algum conhecimento e explicar precisamente o que estou fazendo?

    
por username 22.05.2009 / 17:27

4 respostas

7

Antes da adoção, ampliação e alteração do LDAP pela Microsoft, a maioria das implementações tinha objetos para representar a raiz da árvore. Ou seja Você tem que começar de algum lugar.

Por razões que não estou completamente claro, no Active Directory, cada Domínio na árvore / floresta está enraizado com um nome que dc = domínio, dc = com que não é realmente dois objetos separados, mas sim uma raiz virtual do espaço do nome do diretório.

Acho que parte disso deriva do fato de que, independentemente do que é dito sobre o Active Directory, ainda é uma série de domínios vinculados e cada domínio precisa ser tratado como uma entidade autônoma.

Agora, há as confianças transitivas automáticas em uma árvore do AD, o que faz com que seja menos importante para os usuários finais, mas mesmo que o namespace pareça contíguo, na verdade não é.

Isso se torna mais evidente com algumas das regras de nomenclatura do AD. Por exemplo, sAMAccountName deve ser exclusivo dentro de um domínio, independentemente de estarem no mesmo contêiner ou não. Ou seja O nome distinto completo deve ser exclusivo (você não pode ter dois usuários John Smith no mesmo contêiner), mas o nome abreviado usado para muitas coisas internamente (sAMAccountName) precisa ser exclusivo em todo o domínio.

Outros serviços de diretório possuem requisitos similares, como uniqueID que deve ser exclusivo em todo o diretório, mas isso é mais porque os aplicativos geralmente fazem essa suposição, já que os redatores de aplicativos têm sido preguiçosos demais para lidar com a questão complexa. culpá-los, é um problema difícil) de como lidar com dois usuários com nomes curtos de jsmith tentando usar um serviço, mas existindo em dois contêineres diferentes. (Ou seja, talvez cn = jsmith, ou = Londres, dc = acme, dc = com e cn = jsmith, ou = Texas, dc = acme, dc = com).

Como seu aplicativo que usa esse diretório deve decidir qual usuário usar? A resposta usual é deixar o usuário decidir. Mas isso significa pegar esse caso, apresentar uma interface do usuário para o usuário escolher e outros.

A maioria dos criadores de aplicativos simplesmente ignora essa possibilidade e apenas usa uniqueID ou sAMAccountName porque isso é único (mais ou menos) e mais fácil de fazer.

A diferença entre uniqueID e sAMAccountName seria que uniqueID deve ser exclusivo em todo o espaço de nome de diretório. Considerando que sAMAccountName só é garantido como único dentro do domínio. Se a árvore AD possui vários domínios, não há garantia de exclusividade, entre domínios.

    
por 22.05.2009 / 17:46
8

Outros explicaram por que usar um nome de domínio é uma boa ideia (mas não é obrigatório). Acabei de acrescentar que a pergunta está errada: ter um sufixo base baseado no nome de uma máquina não é recomendado (por razões óbvias: e se você substituir gandalf.example.com por sarouman.example.com ?) . Normalmente, você usa apenas o nome de domínio delegado, portanto, se tiver example.com , use dc=example,dc=com .

    
por 26.05.2009 / 09:20
7

A raiz do diretório tem que ser definida para algo. Pode ser definido como você quiser. Configurá-lo para o nome do domínio é simplesmente uma convenção útil que garante que o espaço do nome do diretório seja exclusivo.

    
por 22.05.2009 / 22:49
3

Versão resumida: combine seu nome de domínio como garantia de que o caminho base é único.

Faça isso e você não se parecerá com um novo administrador se sua empresa se fundir com outra, e você precisar mesclar sistemas :)

Ok, essa foi uma versão curta muito =)

    
por 22.05.2009 / 22:39

Tags