2011-05-10 3 views
2

프로그래밍 방식으로 OpenLDAP 2.4 서버를 쿼리하여 사용자가 수정할 수있는 개체의 특성을 알아낼 수 있습니까? 아니면 현재 사용자가 권한을 가지고 있지 않은 수정을 서버가 무시하도록하는 방법으로 전체 요청을 거부하는 대신?프로그래밍 방식으로 LDAP 사용 권한 쿼리

어떤 방법 으로든 사용자가 LDAP 관리 웹 응용 프로그램에서 편집 가능한 필드를 확인해야하는 것을 피할 수있는 방법을 찾고 있습니다.

+0

내 머리 위로 답을 알 수는 없지만 올바른 방향으로 안내 할 수 있습니다. Apache Directory Studio 소스 코드의 소스 코드를 살펴보십시오. 그것은 아파치의 LDAP 서버에 대한 공식적인 GUI 관리자입니다. – cheekoo

답변

0

내가 발견 한 바에 따르면 from the UnboundID folks은 ACL 정보를 검색하는 공식 표준이 없으므로 구현은 서버마다 다릅니다.

UnboundID의 상용 서버는 특정 항목에 대한 효과적인 액세스 제어 기능을 제공하며 Sun/Oracle DSEE와 OpenDS는 비슷한 기능을 구현합니다. 389 Directory Server (Red Hat Directory Server라고도하는 Fedora Directory Server라고도 함)에는 일부 지원이있을 수 있습니다.

그래서 내가 다른 디렉토리 서버로 마이그레이션하는 번거 로움을 겪고 싶지 않다면 OpenLDAP 서버에서 운이 없어진 것 같습니다.

+0

나는 그것을 듣고 슬프다! 하지만 여기에 넣어 주셔서 감사합니다, 나는 누군가 또는 다른 사람이 토론의 형태로 도움이 될 것이라고 확신합니다! – cheekoo

+0

UnboundID LDAP SDK (상용 버전)에서 사용할 수있는 컨트롤의 이름은 EffectiveRightsEntry입니다. 이 요청 제어는 액세스 권한을 결정하기위한 지원을 제공합니다. –

+0

OpenLDAP는이 컨트롤을 지원하지 않습니다. – EJP

1

this이 도움이되는지 확인하십시오.

이 예제에서 그는 특정 개체에 대한 ACL을 변경하려고합니다. 동일하거나 유사한 코드를 다시 사용할 수 있습니다.

+0

만약 내가 따라하면,'acl'이라는 작전 속성을 읽는 중입니까? 나는 ApacheDS에 표시된 조작 상 속성을 가지고 있으며 아무 곳에서나'acl' 속성을 보지 못했습니다. 'acl' 속성은 그 객체를위한 규칙만을 보여줍니까? –

+0

LDAP 작업을 중단한지 얼마되지 않아 솔직히 ACL 작업을 할 필요가 없었습니다. 디버그 모드에서, 예제에서와 같이 객체의 ACL을 가져와보십시오. ACL은 오브젝트에 대한 숨겨진 속성 일 수 있습니다. 여기에 결과를 게시하면 다른 사람들에게 유용 할 수 있습니다. Google의 LDAP를 사용하여 ACL에 대한 자세한 내용을 볼 수 있습니다. – cheekoo

0

slapd가 cn = config를 사용하도록 구성된 경우 ACL 정보를 가져 오는 바로 가기가있을 수 있습니다. slapd가 slapd.conf 대신 cn = config를 사용하게하려면 : http://www.zytrax.com/books/ldap/ch6/slapd-config.html 적어도 Ldap을 통해 ACL을 사용할 수 있으면 수정 요청을 실행하기 전에 필터링 할 수 있습니다.

slapadd -u는 드라이 런 (백엔드에 쓰지 않음) 모드를 사용합니다.

이 시나리오를 처리하는 데 유용할까요?

+0

좋은 아이디어지만 내가 정말로 찾고 있던 것은 편집 양식을 현재 사용자의 권한으로 맞추는 방법이었습니다. 서로 다른 사용자가 동일한 객체의 서로 다른 속성에 쓸 수 있으며 어떻게 든 UI에 반영해야합니다. 서버에 "이 사용자가이 속성을 편집 할 수 있습니까?"라고 물어볼 방법이 없습니다. 나는 어떤 종류의 하드 코딩 된 솔루션을 고집 할 것이다. –