12.8. 대상 규칙의 고급 사용
여러 키워드를 결합하여 복잡한 대상 규칙을 만들 수 있습니다. 이 섹션에서는 대상 규칙의 고급 사용 예를 제공합니다.
12.8.1. 그룹 생성 및 유지 관리 권한 위임
특정 상황에서 관리자는 권한을 다른 계정 또는 그룹에 위임하려는 경우가 있습니다. 대상 키워드를 결합하면 이 요청을 해결하는 ACI(Secure Access Control instructions)를 만들 수 있습니다.
예 12.7. 그룹 생성 및 유지 관리 권한 위임
uid=user,ou=People,dc=example,dc=com" 계정을 활성화하여 ou=groups,dc=example,dc=com 항목에서 그룹을 생성하고 업데이트하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: dc=example,dc=com
changetype: modify
add: aci
aci: (target = "ldap:///cn=*,ou=Groups,dc=example,dc=com")
(targattrfilters="add=objectclass:(|(objectclas=top)(objectclass=groupOfUniqueNames)))
(targetattr="cn || uniqueMember || objectClass")
(version 3.0; acl "example"; allow (read, search, write, add)
(userdn = "ldap:///uid=test,ou=People,dc=example,dc=com");)
보안상의 이유로 이전 예제에서는 특정 제한 사항을 추가합니다. uid=test,ou=People,dc=example,dc=com
사용자
-
top
및groupOfUniqueNames
오브젝트 클래스를 포함해야 하는 오브젝트를 생성할 수 있습니다. -
account
와 같은 추가 오브젝트 클래스를 추가할 수 없습니다. 예를 들어 로컬 인증에 Directory Server 계정을 사용하여root
사용자의 경우0
과 같은 잘못된 사용자 ID를 사용하여 새 사용자를 만들 수 없습니다.
targetfilter
규칙을 사용하면 ACI 항목이 groupofuniquenames
개체 클래스의 항목에만 적용되고 targetattrfilter
규칙을 통해 다른 개체 클래스가 추가되지 않도록 합니다.
12.8.2. 항목 및 속성 모두 대상 지정
대상은
고유 이름(DN)에 따라 액세스를 제어합니다. 그러나 와일드카드와 targetattr
키워드와 함께 사용하는 경우 항목과 속성을 모두 대상으로 지정할 수 있습니다.
예 12.8. 항목 및 속성 모두 대상 지정
dc=example,dc=com
하위 트리의 모든 조직 단위에서 uid=user,ou=People,dc=example,dc.com
사용자를 활성화하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: dc=example,dc=com
changetype: modify
add: aci
aci: (target="ldap:///cn=*,dc=example,dc=com")(targetattr="member" || "cn") (version 3.0;
acl "Allow uid=user to search and read members of groups";
allow (read, search) (userdn = "ldap:///uid=user,ou=People,dc=example,dc.com");)
12.8.3. 필터와 일치하는 항목의 특정 속성을 대상으로 지정
두 개의 대상 규칙에 targetattr
및 targetfilter
키워드를 결합하는 경우 필터와 일치하는 항목의 특정 특성을 대상으로 지정할 수 있습니다.
예 12.9. 필터와 일치하는 항목의 특정 속성을 대상으로 지정
cn=Engineering Admins,dc=example,dc=com
그룹의 멤버가 department
특성을 Engineering
으로 설정한 모든 항목의 jpeg
ECDHE 및 manager
특성을 수정할 수 있도록 허용하려면 다음을 입력합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr = "jpegPhoto || manager")
(targetfilter = "(department=Engineering)") (version 3.0;
acl "Allow engineering admins updating jpegPhoto and manager of department members";
allow (write) (groupdn = "ldap:///cn=Engineering Admins,dc=example,dc.com");)
12.8.4. 단일 디렉터리 항목 지정
단일 디렉터리 항목을 대상으로 하려면 targetattr
및 targetfilter
키워드를 결합합니다.
예 12.10. 단일 디렉터리 항목 지정
uid=user,ou=People,dc=example,dc=com 사용자를 활성화하려면 ou=Engineering,dc=example,dc=com 항목에서 ou 및 cn 속성을 읽고 검색합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=Engineering,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr = "ou || cn")
(targetfilter = "(ou=Engineering)") (version 3.0;
acl "Allow uid=user to search and read engineering attributes";
allow (read, search) (userdn = "ldap:///uid=user,ou=People,dc=example,dc.com");)
이전 예제를 활성화하여 ou=Engineering,dc=example,dc=com
항목, ou=Engineering,dc=example,dc=com
의 하위 항목만 대상으로 지정하려면 ou
속성이 Engineering
으로 설정되어 있지 않아야 합니다.
디렉터리 구조가 변경되면 이러한 종류의 ACI가 실패할 수 있습니다.
또는 바인딩 요청의 사용자 입력과 일치하는 바인딩 규칙을 대상 항목에 저장된 특성 값을 사용하여 생성할 수 있습니다. 값이 일치하는 값을 기반으로 액세스 정의를 참조하십시오.