Como alguém restringe os direitos de leitura a determinados atributos do usuário no Active Directory?

3

Usamos esse código para consultar uma instância do ADAM.

DirectoryEntry adRoot = new DirectoryEntry(ConfigurationManager.AppSettings["LdapConnectionString"].ToString());

DirectorySearcher adSearch = new DirectorySearcher(adRoot);
adSearch.Filter = "(&(objectClass=user)(objectCategory=person))";
SearchResultCollection searchResults = adSearch.FindAll();

return searchResults;

Isso está em uma tag no App.config:
add key="LdapConnectionString" value="LDAP: // nome_do_servidor: número_da_porta / dc = nome_do_domínio "
Usamos o código para imprimir todos os nomes de propriedade que estamos recuperando de uma instância do ADAM.

DirectoryEntry entry = searchResults[0].GetDirectoryEntry();
foreach (string property in entry.Properties.PropertyNames)  
{  
    Console.WriteLine(property);  
}

PropertiesToLoad é o StringCollection vazio, PropertyNamesOnly é falso.

Não estamos recuperando proxyAddresses, street, zipCode e muitos outros atributos que precisamos para nosso programa.
Eu encontrei aqui que:

If you do not specify a list of attributes, the search returns values for all attributes permitted by the access control set in the directory.

Então, minha pergunta ... onde está esse conjunto de controle de acesso e como o modificamos para que pudéssemos ter acesso a esses atributos?

    
por seekerOfKnowledge 14.09.2010 / 17:54

3 respostas

1

Use ADSIEdit, você pode quebrar coisas, então tenha cuidado. (http://technet.microsoft.com/pt-br/library/cc773354 % 28WS.10% 29.aspx )

Eu nunca tive que ir tão fundo, é um pouco enterrado. Você abre o ADSIEdit e acessa o objeto que você quer dar uma olhada (ou um recipiente inteiro / UO), clique com o botão direito e vá para "propriedades".

Clique na guia de segurança, clique no botão "avançado", clique em "editar" para dar uma olhada no que você pode fazer (não faça nenhuma alteração ainda). Você verá as permissões padrão como "Controle total" ou "Modificar proprietário" e acima onde se aplica "Somente este objeto"

Existe outra aba "Propriedades" onde você está - onde estão todas as coisas boas. "Ler funções comerciais" e "Ler endereços de proxy" e tais estão lá.

Você pode adicionar um novo grupo, marcar as caixas que você gosta lá, aplicá-lo a todo o contêiner ou UO e você deve estar pronto.

    
por 14.09.2010 / 18:39
0

Isso é realmente uma função de duas coisas:

  1. O contexto do usuário no qual a consulta é executada.

  2. O ACE está no objeto sendo lido.

Minha pergunta para você é em qual contexto de usuário a consulta está sendo executada?

Os usuários autenticados devem ter a capacidade de ler todas as propriedades, se não me engano.

Além disso, você deve ser capaz de facilitar isso através do assistente de Delegação de Controle, bem como via ADSIEdit.

    
por 14.09.2010 / 19:04
0

link

It is the command-line equivalent of the Security tab in the Windows Active Directory snap-in tools such as Active Directory Users and Computers and Active Directory Sites and Services.

A sintaxe é divertida de aprender, mas eu consegui negar com êxito o acesso em um ambiente de ambiente de simulação com o ADAM usando o prompt de linha de comando do ADAM com:

dsacls "\localhost\OU=ouname,OU=ou2name,DC=domainname,DC=domainname2" /d domain\group:GR

/ d nega domínio \ grupo GR (leitura genérica) que inclui muitas propriedades como proxyAddresses, street e muitas outras. Vou precisar pedir-lhes para conceder o grupo root é um membro do GR ou me fazer outro usuário ou algo assim. De qualquer maneira, nós descobrimos isso.

    
por 14.09.2010 / 21:30