LDAP: 그룹의 memberUid로 그룹 구성원을 가져오는 방법은 무엇입니까?

LDAP: 그룹의 memberUid로 그룹 구성원을 가져오는 방법은 무엇입니까?

특정 그룹의 구성원인 사용자를 검색하기 위해 단일 LDAP 검색 필터를 작성하려고 합니다.

우리는 사용자와 그룹 간의 관계가 매핑되는 사용자 정의 LDAP 구현(OpenLDAP: slapd 2.4.40에서 실행)을 실행 중입니다 Group (memberUid) -> User (uid).

사용자 LDIF에는 memberOf 속성이 없으므로 일반적인 접근 방식을 사용할 수 없습니다.(&(objectClass=person)(memberOf=login_group))

사용자 LDIF는 다음과 같습니다.

dn: uid=user1,ou=people,dc=example,dc=com
cn: user1
displayName:: User1
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: shadowAccount
objectClass: posixAccount
uidNumber: 2698
uid: user1

LDIF 그룹은 다음과 같습니다.

dn: cn=login_group,ou=groups,dc=example,dc=com
gidNumber: 1643
objectClass: posixGroup
objectClass: top
objectClass: groupOfUniqueNames
cn: login_group
memberUid: user1
memberUid: user2

SQL JOIN 또는 "IN" 필터와 동일한 기능을 수행하는 단일 LDAP 쿼리를 작성할 수 있습니까?

SELECT u.* FROM user u WHERE u.uid IN (SELECT memberUid FROM group WHERE cn=login_group)

타사 포털에 대한 액세스를 제어하는 ​​데 사용되므로 단일 쿼리여야 하며 클라이언트 구현을 변경할 수 없습니다.

관련 정보