Por que meus grupos do Active Directory não aparecem ao consultar o usuário?

Por que meus grupos do Active Directory não aparecem ao consultar o usuário?

Eu tenho dois domíniosAeB

Domínio Acontém um grupo de segurançaSEC. Este grupo é usado para acessar um aplicativo da web. O grupo é um grupo de segurança e o tipo do grupo é domínio local. Este domínio também contém a maioria dos usuários.

Domínio Bcontém alguns usuários, e esses usuários são membros diretos do grupo de segurança localizado no domínioA

Na minha aplicação web (ASP.NET MVC) eu uso o provedor de autenticação integrado do Windows, que verifica se um usuário é membro do grupo de segurança. Depois, localizo o usuário no diretório ativo e atribuo ao usuário várias funções com base nos grupos do diretório ativo dos quais ele é membro.

Ao consultar a propriedade tokengroups nos usuários do domínioAposso ver que eles são membros doSECgrupo.

Mas ao consultar os membros do domínioB, também usando a propriedade tokengroups, não vejo oSECgrupo na propriedade tokengroups.

Minhas perguntas

  • Por que os membros no domínioBparece não ser membro do grupo, quando na verdade é? Eu uso a propriedade tokengroups ao procurar grupos de um usuário.

    A razão pela qual acredito que sim é porque posso ver os usuários na lista de membros ao observar as propriedades do grupo. Além disso, eles são autenticados na aplicação web, mas quando meu módulo tenta encontrar os grupos dos membros do domínioB, oSECo grupo simplesmente não está lá.

  • A configuração atual com todos os grupos sendo grupos de segurança e domínio local é realmente a melhor maneira? O que eu preciso é de vários grupos de "marcadores" aos quais eu possa adicionar grupos e usuários, de vários domínios.

Para obter os grupos de segurança de um usuário, uso a propriedade tokengroups. Assimhttp://tutorials.csharp-online.net/User_Management_with_Active_Directory%E2%80%94Retriev_the_Users_Token_Groups

Responder1

Acho que você precisa se vincular a um GC para recuperar corretamente tokenGroups do Active Directory. ou seja, em sua bindstring, você deve substituir LDAP: // por GC: // e esperamos que isso funcione.

informação relacionada