2017-09-12 11 views
0

필립 필립 - 앱의 LDAP 백엔드로 FreeIPA를 사용하고 있습니다.모든 LDAP 그룹 구성원 목록 가져 오기

LDAP_BASE_DN="dc=myrealm,dc=com" 
LDAP_REALM_NAME="MyFunRealm" 
LDAP_OBJECTS_DN="dn" 
LDAP_USER_OBJECT_FILTER="(&(objectclass=inetorgperson)(uid=%s))" 
LDAP_GROUP_MEMBERS_FIELD="member" 
LDAP_GROUP_OBJECT_FILTER="(&(objectclass=groupofnames)(member=%s))" 
LDAP_GROUP_MEMBER_FILTER="member=%s" 
LDAP_GROUP_MEMBER_FILTER_FIELD="cn" 

내가 그룹 내 그룹을 배치 할 내 사용자의 LDAP 구조를 변경하려면 : 지금까지 나는 다음과 같은 옵션이 잘 작동하는 사용자의 그룹 구성원을 얻기 위해 OpenLDAP를 함께 플라스크-simpleldap을 사용했습니다 그러나 위의 설정은 사용자의 "첫 번째 수준"그룹 만 제공합니다. (죄송합니다. LDAP에 익숙하지 않고 전문 용어입니다.)

그룹/그룹 구성원 자격을 통해 사용자가 속한 모든 그룹의 목록을 가져 오도록 쿼리/필터를 변경하려면 어떻게해야합니까?

+0

그룹에 속한 그룹의 의미는 무엇입니까? 필터'(& (objectclass = groupofnames) (member = % s))'는 그룹이 트리에 있는지에 관계없이 사용자 '% s'이 (가) 'memberOf' 인 모든 그룹을 제공합니다. – Esteban

+0

그룹에 사용자 또는 다른 그룹이 포함될 수 있습니다. 사용자가 다른 그룹의 구성원 인 그룹에있는 경우이 두 그룹을 검색에 표시하려고합니다. 내 질문에 검색 직접 그룹 멤버십을 반환합니다. – Lars

답변

0

가 나는 OpenLDAP를이 (내 지식) 중첩 된 그룹에 필터를 수행하는기구를 내장하고 있지 않습니다

셋업 (즉, 플라스크 + OpenLDAP를) 고려 가능하다고 생각하지 않습니다. 플라스크가 요청을 처리하므로 재귀 검색을 쉽게 구현할 수 없습니다. 다른 디렉토리에서

(예 : AD)이 라인을 따라 중첩 된 그룹, 뭔가를 필터링하는 확장 가능한 일치 규칙을 지정할 수 있습니다

(&(objectclass=groupofnames)(member:1.2.840.113556.1.4.1941:=%s))

그러나이 특정 확장 가능한 일치 규칙은 OpenLDAP를

에 존재하지 않는
+0

답변 해 주셔서 감사합니다. 지금 당장 질문을 공개하겠습니다. – Lars