Como o LDAP lida com grupos de usuários suplementares/secundários?

Como o LDAP lida com grupos de usuários suplementares/secundários?

Já vi perguntas semelhantes relacionadas à configuração do Apache para autenticação via LDAP, mas essa questão básica ainda me deixa confuso.

Na minha configuração, criei usuários com o mesmo GID primário e, em seguida, adicionei usuários a vários grupos (suplementares/secundários). Testei essas contas de usuário e, na maioria das situações, tudo funciona bem - minhas permissões baseadas na associação suplementar ao grupo estão funcionando. Usei o smbldap-toolspacote para configurar meus usuários e grupos e, especificamente, smbldap-usermod -G +NEW_GROUP userpara adicionar usuários aos grupos suplementares.

Se eu fizer isso, getent groupverei esses grupos suplementares e seus membros. Bom.

Se eu olhar a entrada LDAP de um dos grupos suplementares, vejo todos os usuários listados conforme esperado.

No entanto,quando olho para a entrada LDAP de cada usuário, apenas um grupo gidNumbercorrespondente ao grupo principal é listado. Ou seja, as entradas LDAP para cada usuário listam apenas o grupo primário e não mencionam grupos secundários.

Como o Samba/LDAP (usando smbldap-tools) lida com grupos suplementares/secundários?

Além disso, como poderia formar um filtro de pesquisa para identificar membros de um grupo suplementar?

Responder1

LDAP é apenas um diretório de informações. Como essas informações são armazenadas e recuperadas depende do aplicativo. Neste caso, usuários e grupos posix são modelados a partir dos arquivos /etc/passwd e /etc/group. Cada entrada de usuário lista o gid de seu grupo principal. Cada grupo lista todos os seus membros (geralmente menos aqueles que o listam como grupo principal).

O Samba e os vários plug-ins nss para armazenar informações de usuários e grupos no LDAP fazem uma pesquisa para encontrar os grupos dos quais um usuário é membro no login. O atributo memberUid deve ser indexado para agilizar as pesquisas de membros de grupos. Para uma determinada conta de usuário, o filtro de pesquisa é algo como:

(&(objectclass=posixGroup)(memberUid=$user))

Se você quiser ver os usuários de um grupo específico, poderá pesquisar com:

(&(objectclass=posixGroup)(cn=$group))

Isso pressupõe que todos os seus grupos sejam da objectClass posixGroup.

Responder2

Não sou um grande usuário do OpenLDAP, mas se este fosse um ambiente do Active Directory, usaria o atributo "memberOf" presente em cada objeto de conta de usuário. No mundo OpenLDAP, parece que osobreposição de membrofará o que você está procurando. eu suspeitoessa questãodirá o que você precisa saber para fazer isso funcionar.

informação relacionada