1.7. ACI 대상 정의
ACL(액세스 제어 명령)의 대상 규칙은 Directory Server가 ACI를 적용하는 항목을 정의합니다. 대상을 설정하지 않으면 ACI는 aci 특성 및 아래 항목이 포함된 항목에 적용됩니다.
ACI에서 다음과 같은 강조 표시된 부분은 대상 규칙입니다.
(target_rule)(version 3.0; acl "ACL_name"; permission_rule bind_rules;)
복잡한 ACI의 경우 Directory Server는 ACI에서 다양한 키워드를 사용하여 여러 대상 규칙을 지원합니다.
(target_rule_1)(target_rule_2)(...)(version 3.0; acl "ACL_name"; permission_rule bind_rules;)
여러 대상 규칙을 지정하는 경우 순서가 관련이 없습니다. ACI에서 다음 각 키워드를 한 번만 사용할 수 있습니다.
-
대상 -
targetattr -
targetattrfilters -
targetfilter -
target_from -
target_to
1.7.1. 대상 규칙의 구문 링크 복사링크가 클립보드에 복사되었습니다!
대상 규칙의 일반적인 구문은 다음과 같습니다.
(keyword comparison_operator "expression")
-
keyword: 대상의 유형을 설정합니다. comparison_operator: 유효한 값은=및!=이며 대상이 표현식에 지정된 오브젝트인지 여부를 나타냅니다.주의보안상의 이유로 다른 모든 항목 또는 속성에 대해 지정된 작업을 허용하므로
!=연산자를 사용하지 않는 것이 좋습니다. 예를 들면 다음과 같습니다.(targetattr != "userPassword");(version 3.0; acl "example"); allow (write) ... );이전 예제에서는 사용자가 ACI를 설정한 Distinguished Name(DN) 아래의
userPassword특성을 제외한 모든 속성을 설정, 업데이트 또는 삭제할 수 있습니다. 그러나 이를 통해 사용자는 예를 들어 이 속성에 대한 쓰기 액세스도 허용하는 추가aci특성을 추가할 수 있습니다.-
expression: 대상을 설정하고 따옴표로 구분해야 합니다. 표현식 자체는 사용하는 키워드에 따라 다릅니다.
1.7.2. 디렉터리 항목 대상 지정 링크 복사링크가 클립보드에 복사되었습니다!
Distinguished Name(DN) 및 그 아래의 항목을 기반으로 액세스를 제어하려면 ACL(액세스 제어 명령)에서 target 키워드를 사용합니다. target 키워드를 사용하는 대상 규칙은 DN을 표현식으로 사용합니다.
(target comparison_operator "ldap:///distinguished_name")
대상 DN 또는 더 높은 수준의 DN에 키워드를 사용하여 ACI를 설정해야 합니다. 예를 들어 ou=People,dc=example,dc=com을 대상으로 지정하는 경우 ou=People,dc=example,dc=com 또는 dc=example,dc=com에 ACI를 설정해야 합니다.
예 1.1. target 키워드 사용
ou=People,dc=example,dc=com 항목에 저장된 사용자를 활성화하려면 해당 항목의 모든 속성을 검색하고 표시합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (target = "ldap:///ou=People,dc=example,dc=com") (version 3.0;
acl "Allow users to read and search attributes of own entry"; allow (search, read)
(userdn = "ldap:///self");)
target 키워드와 함께 와일드카드 사용
* 와일드카드 문자 대상 항목을 여러 개 사용할 수 있습니다.
다음 대상 규칙 예제에서는 ou=People,dc=example,dc=com 의 모든 항목과 일치하며, uid 속성이 문자 a 로 시작하는 값으로 설정됩니다.
(target = "ldap:///uid=a*,ou=People,dc=example,dc=com")
와일드카드 위치에 따라 규칙은 특성 값뿐만 아니라 전체 DN에도 적용됩니다. 따라서 와일드카드를 DN 부분 대신 사용할 수 있습니다.
예 1.2. 와일드카드를 사용하여 디렉터리 항목을 대상으로 지정
다음 규칙은 dc=example,dc=com 항목 자체에 저장된 항목뿐만 아니라 일치하는 uid 속성을 사용하여 dc=example,dc=com 트리의 모든 항목을 대상으로 합니다.
(target = "ldap:///uid=user_name*,dc=example,dc=com")
이전 대상 규칙은 다음과 같은 여러 항목과 일치합니다.
-
uid=user_name,dc=example,dc=com -
uid=user_name,ou=People,dc=example,dc=com -
uid=user_name2,dc=example,dc=com
디렉터리 Serverdoes는 DN의 접미사 부분에 있는 와일드카드를 지원하지 않습니다. 예를 들어 디렉터리 접미사가 dc=example,dc=com 인 경우 이 접미사의 와일드카드가 있는 대상을 사용할 수 없습니다 (target = "ldap:///dc=*.com ").
1.7.3. 대상 속성 링크 복사링크가 클립보드에 복사되었습니다!
ACL(액세스 제어 명령)의 액세스를 특정 속성으로 제한하려면 targetattr 키워드를 사용합니다. 예를 들어 이 키워드는 다음을 정의합니다.
- 읽기 작업에서는 클라이언트에 반환되는 속성입니다.
- 검색 작업에서는 검색할 속성입니다.
- 쓰기 작업에서는 오브젝트에 작성할 수 있는 속성을 지정합니다.
- 추가 작업에서는 새 오브젝트를 생성할 때 추가할 수 있는 속성
특정 상황에서는 다른 대상 키워드를 targetattr 과 결합하여 targetattr 키워드를 사용하여 ACI를 보호할 수 있습니다. 대상 규칙의 고급 사용을 참조하십시오.
읽기 및 검색 작업에서는 기본 대상이 아닌 속성입니다. targetattr 키워드가 없는 ACI는 전체 항목에 영향을 미치는 권한이 있는 ACIs에만 유용합니다(예: 추가 또는 삭제 ).
targetattr 키워드를 사용하는 대상 규칙에서 여러 특성을 분리하려면 || 를 사용합니다.
(targetattr comparison_operator "attribute_1 || attribute_2 || ...")
표현식에 설정된 속성은 스키마에 정의해야 합니다.
표현식에 지정된 속성은 추가 대상 규칙으로 제한되지 않는 경우 ACI 및 그 아래의 모든 항목에 적용되는 항목에 적용됩니다.
예 1.3. targetattr 키워드 사용
dc=example,dc=com 및 모든 하위 항목에 저장된 사용자를 활성화하려면 자체 항목에서 userPassword 특성을 업데이트합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap::server.example.com -x
dn: dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr = "userPassword") (version 3.0;
acl "Allow users updating own userPassword";
allow (write) (userdn = "ldap:///self");)
targetattr 키워드와 함께 와일드카드 사용
* 와일드카드 문자를 사용하면 예를 들어 모든 특성을 대상으로 지정할 수 있습니다.
(targetattr = "*")
보안상의 이유로 운영 특성을 포함하여 모든 속성에 대한 액세스를 허용하므로 targetattr 이 있는 와일드카드를 사용하지 마십시오. 예를 들어 사용자가 모든 속성을 추가하거나 수정할 수 있는 경우 사용자는 추가 ACI를 생성하고 자체 권한을 늘릴 수 있습니다.
1.7.4. LDAP 필터를 사용하여 항목 및 속성 지정 링크 복사링크가 클립보드에 복사되었습니다!
특정 조건과 일치하는 항목 그룹을 대상으로 하려면 LDAP 필터와 함께 targetfilter 키워드를 사용합니다.
(targetfilter comparison_operator "LDAP_filter")
filter 표현식은 표준 LDAP 검색 필터입니다.
예 1.4. targetfilter 키워드 사용
cn=Human Resources,dc=example,dc.com 그룹의 멤버에게 권한을 부여하려면 department 속성이 Engineering 또는 Sales 로 설정된 모든 항목을 수정합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: dc=example,dc=com
changetype: modify
add: aci
aci: (targetfilter = "(|(department=Engineering)(department=Sales)"))
(version 3.0; acl "Allow HR updating engineering and sales entries";
allow (write) (groupdn = "ldap:///cn=Human Resources,dc=example,dc.com");)
targetfilter 키워드는 전체 항목을 대상으로 합니다. targetattr 키워드와 결합하면ACI(액세스 제어 명령)는 대상 항목의 속성 하위 집합에만 적용됩니다. 필터와 일치하는 항목의 특정 속성 지정을 참조하십시오.
LDAP 필터를 사용하면 디렉터리에 분산된 항목 및 속성을 대상으로 할 때 유용합니다. 그러나 필터에서 액세스 권한을 관리하는 오브젝트의 이름을 직접 지정하지 않기 때문에 결과가 예기치 않은 경우가 있습니다. ACI가 대상으로 하는 항목 세트는 속성이 추가되거나 삭제되므로 변경될 수 있습니다. 따라서 ACI에서 LDAP 필터를 사용하는 경우 ldapsearch 작업에서 동일한 필터를 사용하여 올바른 항목과 속성을 대상으로 하는지 확인합니다.
targetfilter 키워드와 함께 와일드카드 사용
targetfilter 키워드는 표준 LDAP 필터와 유사한 와일드카드를 지원합니다. 예를 들어 값이 adm 으로 시작되는 모든 uid 특성을 대상으로 지정하려면 다음을 사용합니다.
(targetfilter = "(uid=adm*) ...)
1.7.5. LDAP 필터를 사용하여 특성 값 지정 링크 복사링크가 클립보드에 복사되었습니다!
액세스 제어를 사용하여 특성의 특정 값을 대상으로 지정할 수 있습니다. 즉, 특성 값이 ACL(액세스 제어 명령)에 정의된 기준을 충족하는 경우 속성에 대한 권한을 부여하거나 거부할 수 있습니다. 특성 값에 따라 액세스를 허용하거나 거부하는 ACI를 값 기반 ACI라고 합니다. 이는 ADD 및 DEL 작업에만 적용됩니다. 검색 권한은 특정 값으로 제한할 수 없습니다.
값 기반 ACI를 생성하려면 다음 구문과 함께 targattrfilters 키워드를 사용합니다.
하나의 속성 및 필터 조합을 사용하는 한 가지 작업의 경우:
(targattrfilters="operation=attribute:filter")여러 속성 및 필터 조합이 있는 하나의 작업에 대해 다음을 수행합니다.
(targattrfilters="operation=attribute_1:filter_1 && attribute_2:filter_2 ... && attribute_m:filter_m")두 작업의 경우 각각 여러 속성 및 필터 조합이 있습니다.
(targattrfilters="operation_1=attribute_1_1:filter_1_1 && attribute_1_2:filter_1_2 ... && attribute_1_m:filter_1_m , operation_2=attribute_2_1:filter_2_1 && attribute_2_2:filter_2_2 ... & attribute_2_n:filter_2_n ")
이전 구문 예제에서 작업을 추가 또는 del 로 설정할 수 있습니다. attribute:filter 조합은 필터와 필터가 적용되는 특성을 설정합니다.
다음은 filter와 일치해야 하는 방법을 설명합니다.
- 항목을 생성하고 필터가 새 항목의 속성에 적용되는 경우 해당 특성의 각 인스턴스가 필터와 일치해야 합니다.
- 항목을 삭제하고 필터가 항목의 속성에 적용되는 경우 해당 특성의 각 인스턴스도 필터와 일치해야 합니다.
-
항목 및 작업을 수정할 때 특성을 추가하면 해당 특성에 적용되는
add필터가 일치해야 합니다. -
작업에서 특성을 삭제하면 해당 특성에 적용되는
del필터가 일치해야 합니다. 항목에 이미 존재하는 속성의 개별 값이 교체되면add및del필터가 모두 일치해야 합니다.
예 1.5. targattrfilters 키워드 사용
사용자가 Admin 역할을 제외한 자신의 항목에 역할을 추가할 수 있는 ACI를 만들고, value가ECDHE 접두사로 시작하는 한, 전화 속성을 추가하려면 다음을 입력합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap::server.example.com -x
dn: dc=example,dc=com
changetype: modify
add: aci
aci: (targattrfilters="add=nsroledn:(!(nsroledn=cn=Admin)) &&
telephoneNumber:(telephoneNumber=123*)") (version 3.0;
acl "Allow adding roles and telephone";
allow (add) (userdn = "ldap:///self");)
1.7.6. 대상 소스 및 대상 DN 링크 복사링크가 클립보드에 복사되었습니다!
특정 상황에서 관리자는 사용자가 디렉터리 항목을 이동할 수 있도록 허용하려고 합니다. ACS(액세스 제어 명령)에서 target_from 및 target_to 키워드를 사용하면 사용자를 활성화하지 않고도 작업의 소스와 대상을 지정할 수 있습니다.
- ACI에 설정된 다른 소스에서 항목을 이동하려면 다음을 수행합니다.
- 항목을 ACI에 설정된 것과 다른 대상으로 이동하려면 다음을 수행합니다.
- 소스 Distinguished Name(DN)에서 기존 항목을 삭제하려면 다음을 수행합니다.
- 대상 DN에 새 항목을 추가하려면 다음을 수행합니다.
target_from 및 target_to 키워드 사용
예를 들어 uid=user,dc=example,dc=com 계정을 활성화하여 사용자 계정을 cn=staging,dc=example,dc=com 항목에서 cn=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_from="ldap:///uid=*,cn=staging,dc=example,dc=com")
(target_to="ldap:///cn=People,dc=example,dc=com")
(version 3.0; acl "MODDN from"; allow (moddn))
userdn="ldap:///uid=user,dc=example,dc=com";)
ACIS는 정의된 하위 트리에만 적용됩니다. 이전 예에서 ACI는 dc=example,dc=com 하위 트리에만 적용됩니다.
target_from 또는 target_to 키워드가 설정되지 않은 경우 ACI는 모든 소스 또는 대상과 일치합니다.