2017-05-01 1 views
0

Gogs (GitLab과 같은 Git 서버)와 같은 애플리케이션에 사용되는 Apache 서버를 Apache 서버로 사용하고 있습니다. 내 생각은 gogs-users 같은 그룹을 만들고 해당 그룹의 구성원 인 사용자 만 로그인 할 수 있도록 해당 그룹에 로그인을 제한하는 것입니다. 나는 이것을 위해 groupOfNames을 만들었고 gogs 그룹에 추가 된 testuser를 만들었습니다.사용자가 LDAP에 속한 모든 그룹 가져 오기

유형은 groupOfNames이며 내 사용자의 DN (uid = testuser, ou = Users, DC = example, DC = com)을 포함하는 member 속성을 가지고 있습니다. 그래서 나는이 그룹의 구성원 인 볼 수 있습니다.

그러나 사용자이 (가) 모든 그룹을보고 싶습니다. 테스트 사용자를 열면, 그가 회원이 gogs-users임을 알 수있는 속성이 없습니다. 독점적 인 Active Directory에는 memberOf이라는 속성이 있었으며 (&(objectClass=inetOrgPerson)(memberOf=CN=gogs-user,DC=example,DC=com))과 같은 필터에서 쿼리 할 수 ​​있다는 사실을 기억합니다. 그게 내가 원하는 것일거야.

어떻게 이것을 무료 LDAP 구현에서 얻을 수 있습니까? 커스텀 애트리뷰트를 정의하는 것을 제외하고는 아무 것도 볼 수 없다. 그건 좋지 않아, 나는 그 속성을 돌보는 자동화 된 솔루션을 갖고 싶다.

상황이 이미

참고 시도 : 나는 확인하고, 각 기법 가져 오기 후 완전한 리셋을 한 것을 내 테스트는 이전 변경 사항의 영향을받지 않습니다.

+0

(member = uid = testuser, ou = Users, DC = example, DC = com) a 기본 : DC = 예, DC = com이 작동 할 수 있습니다. – jwilleke

+0

@jwilleke 이것은 회원이 아닌 그룹을주었습니다. 'member'는'groupOfNames'의 속성입니다. 그게 내가 가진 문제 야. 그룹에서 회원 사용자에 이르는 참조 만 있지만, 다른 방법으로는 사용자에서 그의 그룹에 대한 참조가 아닙니다. AD에서 'memberOf' 속성은이 문제를 수정합니다. – Lion

답변

0

은 다음 중 하나의 방법을 이동하지만 Microsoft Active Directory를 위해 작동 할 쿼리입니다

all members (중첩 포함) 해결 보안 그룹 (적어도 윈도우 2003 SP2 필요) :

(memberOf:1.2.840.113556.1.4.1941:=CN=gogs-user,DC=example,DC=com) 

그리고 을 모든 그룹 a 중첩 그룹을 포함한 User is a member of 중첩 그룹 포함

(member:1.2.840.113556.1.4.1941:=CN=UserName,CN=Users,DC=YOURDOMAIN,DC=NET)) 
+0

나는 첫 번째 문장에서 말했듯이 나는 서기에 있지 않고 싶지 않습니다. 나는 AD와 함께 과거에 일했고 이것을 알고 있었지만 ApacheDS에서 LDAP와 비슷한 해결책이 필요하다. – Lion

관련 문제