1.10. ACI 바인딩 규칙 정의
ACL(액세스 제어 명령)의 바인딩 규칙은 Directory Server가 ACI를 적용하도록 충족해야 하는 필수 바인딩 매개 변수를 정의합니다. 예를 들어 다음을 기반으로 바인딩 규칙을 설정할 수 있습니다.
- DNS
- 그룹 멤버십 또는 할당된 역할
- 항목이 바인딩해야 하는 위치
- 바인딩 중 사용해야 하는 인증 유형
- 바인딩이 발생한 시간 또는 일
ACI에서 다음과 같이 강조 표시된 부분은 bind 규칙입니다.
(target_rule) (version 3.0; acl "ACL_name"; permission_rule bind_rules;)
1.10.1. 바인딩 규칙의 구문 링크 복사링크가 클립보드에 복사되었습니다!
바인딩 규칙의 일반 구문은 다음과 같습니다.
keyword comparison_operator "expression"
-
keyword: 바인딩 작업 유형을 설정합니다. -
comparison_operator: 유효한 값은=및!=이며 대상이 표현식에 지정된 오브젝트인지 여부를 나타냅니다. 키워드가 추가 비교 연산자를 지원하는 경우 해당 섹션에 언급됩니다. -
expression: 표현식을 설정하고 따옴표로 구분해야 합니다. 표현식 자체는 사용하는 키워드에 따라 다릅니다.
1.10.2. 사용자 기반 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
userdn 키워드를 사용하면 하나 이상의 DN에 따라 액세스 권한을 부여하거나 거부할 수 있으며 다음 구문을 사용할 수 있습니다.
userdn comparison_operator "ldap:///distinguished_name || ldap:///distinguished_name || ..."
표현식의 DN을 다음과 같이 설정합니다.
- DN: userdn 키워드가 있는 DN 사용에서 확인할 수 있습니다.
- LDAP 필터: LDAP 필터와 함께 userdn 키워드 사용을 참조하십시오.
-
anyonealias: anonymous 액세스 부여를 참조하십시오. -
allalias: 인증된 사용자에 대한 액세스 권한 부여를 참조하십시오. -
자체별칭: 사용자가 자신의 항목에 액세스할 수 있도록 활성화 를 참조하십시오. -
상위별칭: 사용자의 하위 항목에 대한 액세스 설정을 참조하십시오.
LDAP URL 내에서 호스트 이름 또는 포트 번호를 지정하지 마십시오. URL은 항상 로컬 서버에 적용됩니다.
userdn 키워드와 함께 DN 사용
userdn 키워드를 DN(고유 이름)으로 설정하여 일치하는 항목에만 ACI를 적용합니다. 여러 항목을 일치시키려면 DN의 * 와일드카드를 사용합니다.
DN과 함께 userdn 키워드를 사용하면 다음 구문과 일치해야 합니다.
userdn comparison_operator ldap:///distinguished_name
예 1.11. userdn 키워드와 함께 DN 사용
uid=admin,ou=People,dc=example,dc=com 사용자를 활성화하려면 ou=People,dc=example,dc=com 항목에 있는 다른 모든 사용자의 manager 속성을 읽습니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="manager") (version 3.0; acl "Allow uid=admin reading manager attribute";
allow (search, read) userdn = "ldap:///uid=admin,ou=People,dc=example,dc=com";)
LDAP 필터와 함께 userdn 키워드 사용
사용자에게 권한을 동적으로 허용하거나 거부하려면 LDAP 필터와 함께 userdn 키워드를 사용합니다.
userdn comparison_operator "ldap:///distinguished_name??scope?(filter)"
LDAP 필터는 * 와일드카드를 지원합니다.
예 1.12. LDAP 필터와 함께 userdn 키워드 사용
department 속성이 human Resources 로 설정된 사용자가 ou=People,dc=example,dc=com 항목에 있는 사용자의 homePostalAddress 특성을 업데이트하도록 하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="homePostalAddress") (version 3.0;
acl "Allow HR setting homePostalAddress"; allow (write)
userdn = "ldap:///ou=People,dc=example,dc=com??sub?(department=Human Resources)";)
익명 액세스 권한 부여
특정 상황에서는 관리자가 디렉터리의 데이터에 대한 익명 액세스를 구성하려고 합니다. 익명 액세스는 다음을 제공하여 디렉터리에 바인딩할 수 있음을 나타냅니다.
- DN 및 암호 바인딩되지 않음
- 유효한 바인딩 DN 및 암호
익명 액세스를 구성하려면 bind 규칙에서 userdn 키워드와 함께 ldap:///anyone 표현식을 사용합니다.
userdn comparison_operator "ldap:///anyone"
예 1.13. 익명 액세스 권한 부여
인증이 없는 사용자를 활성화하여 ou=People,dc=example,dc=com 항목의 sn,givenName 및 telephoneNumber 속성을 읽고 검색하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H __ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="sn" || targetattr="givenName" || targetattr = "telephoneNumber")
(version 3.0; acl "Anonymous read, search for names and phone numbers";
allow (read, search) userdn = "ldap:///anyone")
인증된 사용자에게 액세스 권한 부여
특정 상황에서 관리자는 익명 바인딩을 제외하고 Directory Server에 성공적으로 바인딩할 수 있는 모든 사용자에게 권한을 부여하려고 합니다. 이 기능을 구성하려면 bind 규칙에 userdn 키워드와 함께 ldap:///all 표현식을 사용합니다.
userdn comparison_operator "ldap:///all"
예 1.14. 인증된 사용자에게 액세스 권한 부여
인증된 사용자가 ou=example,ou=groups,dc=example,dc=com 그룹의 멤버로 추가하고 제거할 수 있도록 하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=example,ou=Groups,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="member") (version 3.0;
acl "Allow users to add/remove themselves from example group";
allow (selfwrite) userdn = "ldap:///all")
사용자가 자신의 항목에 액세스할 수 있도록 허용
사용자에게 자신의 항목에 대한 액세스를 허용하거나 거부하는 ACI를 설정하려면 bind 규칙의 userdn 키워드와 함께 ldap:///self 표현식을 사용합니다.
userdn comparison_operator "ldap:///self"
예 1.15. 사용자가 자신의 항목에 액세스할 수 있도록 허용
ou=People,dc=example,dc=com 항목에서 사용자를 활성화하여 자체 userPassword 특성을 업데이트하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="userPassword") (version 3.0;
acl "Allow users updating their password";
allow (write) userdn = "ldap:///self")
사용자의 하위 항목에 대한 액세스 설정
바인딩 DN이 대상 항목의 상위인 경우에만 항목에 대한 액세스 권한이 부여되거나 거부되도록 지정하려면 바인딩 규칙에 userdn 키워드와 함께 self:///parent 표현식을 사용합니다.
userdn comparison_operator "ldap:///parent"
예 1.16. 사용자의 하위 항목에 대한 액세스 설정
cn=user,ou=People,dc=example,dc=com 사용자를 활성화하려면 cn=example,cn=user,ou=People,dc=example,dc=com 과 같은 자체 하위 항목의 manager 속성을 업데이트합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: cn=user,ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="manager") (version 3.0;
acl "Allow cn=user to update manager attributes";
allow (write) userdn = "ldap:///parent")
1.10.3. 그룹 기반 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
그룹 기반 액세스 제어 명령(ACI)을 사용하면 그룹에 사용자를 추가하거나 제거하여 액세스를 관리할 수 있습니다. 그룹 멤버십을 기반으로 하는 ACI를 구성하려면 groupdn 키워드를 사용합니다. 사용자가 지정된 그룹 중 하나 또는 여러 그룹의 멤버인 경우 ACI는 일치합니다.
groupdn 키워드를 사용할 때 Directory Server는 다음 특성을 기반으로 그룹 멤버십을 확인합니다.
- 멤버
- uniqueMember
- memberURL
- memberCertificateDescription
groupdn 키워드를 사용하여 규칙을 바인딩하려면 다음 구문을 사용합니다.
groupdn comparison_operator "ldap:///distinguished_name || ldap:///distinguished_name || ..."
표현식에서 고유 이름(DN)을 다음과 같이 설정합니다.
- A DN. groupdn 키워드를 사용하여 DN 사용을 참조하십시오.
- LDAP 필터. LDAP 필터와 함께 groupdn 키워드 사용을참조하십시오.
하나의 바인딩 규칙에 여러 DN을 설정하면 인증된 사용자가 이러한 그룹 중 하나의 멤버인 경우 Directory Server는 ACI를 적용합니다. 사용자를 여러 그룹의 멤버로 설정하려면 여러 groupdn 키워드를 사용하고 부울 및 연산자를 사용하여 결합합니다. 자세한 내용은 부울 Operator를 사용하여 바인딩 규칙 결합 을 참조하십시오.
LDAP URL 내에서 호스트 이름 또는 포트 번호를 지정하지 마십시오. URL은 항상 로컬 서버에 적용됩니다.
groupdn 키워드를 사용하여 DN 사용
그룹 멤버에 ACI를 적용하려면 groupdn 키워드를 그룹의 DN으로 설정합니다.
DN으로 설정된 groupdn 키워드는 다음 구문을 사용합니다.
groupdn comparison_operator ldap:///distinguished_name
예 1.17. groupdn 키워드와 함께 DN 사용
cn=example,ou=Groups,dc=example,dc=com 그룹의 멤버를 활성화하려면 ou=People,dc=example,dc=com 에서 항목의 manager 속성을 검색하고 읽습니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="manager") (version 3.0;
acl "Allow example group to read manager attribute";
allow (search, read) groupdn = "ldap:///cn=example,ou=Groups,dc=example,dc=com";)
LDAP 필터와 함께 groupdn 키워드 사용
groupdn 키워드와 함께 LDAP 필터를 사용하면 인증된 사용자가 ACI와 일치하도록 필터 검색에서 반환하는 그룹 중 하나 이상의 멤버여야 함을 정의할 수 있습니다.
LDAP 필터가 포함된 groupdn 키워드는 다음 구문을 사용합니다.
groupdn comparison_operator "ldap:///distinguished_name??scope?(filter)"
LDAP 필터는 * 와일드카드를 지원합니다.
예 1.18. LDAP 필터와 함께 groupdn 키워드 사용
manager 속성이 example으로 설정된 dc=example,dc=com 및 subtrees 그룹 멤버를 활성화하려면 ou=People,dc= 에서 항목의 example,dc=comhomePostalAddress 를 업데이트합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="homePostalAddress") (version 3.0;
acl "Allow manager=example setting homePostalAddress"; allow (write)
userdn = "ldap:///dc=example,dc=com??sub?(manager=example)";)
1.10.4. 값 일치에 따른 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
바인딩 규칙에 userattr 키워드를 사용하여 디렉터리와 대상 항목에 바인딩하는 데 사용된 항목 간에 일치해야 하는 속성을 지정합니다.
userattr 키워드는 다음 구문을 사용합니다.
userattr comparison_operator "attribute_name#bind_type_or_attribute_value
자세한 내용은 다음을 참조하십시오.
기본적으로 Directory Server는 생성된 항목에 대한 액세스 권한을 평가합니다. 그러나 동일한 수준의 사용자 개체를 방지하기 위해 Directory Server는 userattr 키워드를 사용할 때 ACI(액세스 제어 명령)를 설정하는 항목에 추가 권한을 부여하지 않습니다. 이 동작을 구성하려면 parent 키워드와 함께 userattr 키워드를 사용하고 수준 0에서 추가 권한을 부여합니다.
ECDHE에 대한 자세한 내용은 값 일치 값을 기반으로 액세스 정의를 참조하십시오.
USERDN 바인딩 유형 사용
바인딩 사용자 고유 이름(DN)이 속성에 저장된 DN과 일치하는 경우 USERDN 바인딩 유형을 사용합니다.
USERDN 바인딩 유형의 userattr 키워드에는 다음 구문이 필요합니다.
userattr comparison_operator "attribute_name#USERDN"
예 1.19. USERDN 바인딩 유형 사용
관리자에게 해당 담당자의 phone Number 속성에 모든 권한을 부여하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr = "telephoneNumber")
(version 3.0; acl "Manager: telephoneNumber";
allow (all) userattr = "manager#USERDN";)
이전 ACI는 ou=People,dc=example,dc=com 의 항목에서 작업을 수행하는 사용자의 DN이 이 항목의 manager 속성에 저장된 DN과 일치하는 경우 true로 평가됩니다.
GROUPDN 바인딩 유형 사용
바인딩 사용자 DN이 속성에 그룹 세트의 멤버인 경우 ACI를 적용하려면 GROUPDN 바인딩 유형을 사용합니다.
GROUPDN 바인딩 유형의 userattr 키워드에는 다음 구문이 필요합니다.
userattr comparison_operator "attribute_name#GROUPDN"
예 1.20. GROUPDN 바인딩 유형 사용
사용자에게 ou=Socialrule,ou=Groups,dc=example,dc=com 항목에서 소유한 그룹 항목을 삭제할 수 있는 권한을 부여하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=Social Committee,ou=Groups,dc=example,dc=com
changetype: modify
add: aci
aci: (target="ou=Social Committee,ou=Groups,dc=example,dc=com)
(targattrfilters="del=objectClass:(objectClass=groupOfNames)")
(version 3.0; acl "Delete Group";
allow (delete) userattr = "owner#GROUPDN";)
이전 ACI는 작업을 수행하는 사용자의 DN이 owner 속성에 지정된 그룹의 멤버인 경우 true로 평가됩니다.
지정된 그룹은 동적 그룹일 수 있으며 그룹의 DN은 데이터베이스의 접미사 아래에 있을 수 있습니다. 그러나 서버에 의한 이러한 유형의 ACI 평가는 매우 리소스 집약적입니다.
대상 항목과 동일한 접미사가 있는 정적 그룹을 사용하는 경우 더 나은 성능을 위해 다음 표현식을 사용합니다.
userattr comparison_operator "ldap:///distinguished_name?attribute_name#GROUPDN"
ROLEDN 바인딩 유형 사용
바인딩 사용자가 속성에 지정된 역할에 속하는 경우 ACI를 적용하려면 ROLEDN 바인딩 유형을 사용합니다.
ROLEDN 바인딩 유형의 userattr 키워드에는 다음 구문이 필요합니다.
userattr comparison_operator "attribute_name#ROLEDN"
예 1.21. ROLEDN 바인딩 유형 사용
cn=Administrators,dc=example,dc=com 역할의 사용자를 활성화하려면 ou=People,dc=example,dc=com 에서 항목의 manager 속성을 검색하고 읽습니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (version 3.0; acl "Allow example role owners to read manager attribute";
allow (search, read) userattr = manager#ROLEDN;)
지정된 역할은 데이터베이스의 접미사 아래에 있을 수 있습니다. 필터링된 역할을 사용하는 경우 이 유형의 ACI 평가에서는 서버에서 많은 리소스를 사용합니다.
정적 역할 정의를 사용하고 있으며 역할 항목이 대상 항목과 동일한 접미사 아래에 있는 경우 성능 향상을 위해 다음 표현식을 사용합니다.
SELFDN 바인딩 유형 사용
SELFDN 바인딩 유형을 사용하면 바인딩된 사용자의 DN이 항목의 단일 값 속성에 설정된 경우 권한을 부여할 수 있습니다.
SELFDN 바인딩 유형의 userattr 키워드에는 다음 구문이 필요합니다.
userattr comparison_operator "attribute_name#SELFDN"
예 1.22. SELFDN 바인딩 유형 사용
사용자가 ipatokenOwner 속성에 bind 사용자의 DN이 설정된 ipatokenuniqueid=*,cn=otp,dc=example,dc=com 항목을 추가하도록 활성화하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=otp,dc=example,dc=com
changetype: modify
add: aci
aci: (target = "ldap:///ipatokenuniqueid=*,cn=otp,dc=example,dc=com")
(targetfilter = "(objectClass=ipaToken)")(version 3.0;
acl "token-add-delete"; allow (add) userattr = "ipatokenOwner#SELFDN";)
LDAPURL 바인딩 유형 사용
바인딩 DN이 대상 항목의 속성에 지정된 필터와 일치하는 경우 ACL을 적용하려면 LDAPURL 바인딩 유형을 사용합니다.
LDAPURL 바인딩 유형의 userattr 키워드에는 다음 구문이 필요합니다.
userattr comparison_operator "attribute_name#LDAPURL"
예 1.23. LDAPURL 바인딩 유형 사용
ldap:///ou=People,dc=example,dc=com?one?(uid=user*):로 설정된 aciurl 특성이 포함된 사용자 오브젝트에 읽기 및 검색 권한을 부여하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr = "*")
(version 3.0; acl "Allow read,search "; allow (read,search)
(userattr = "aciurl#LDAPURL);)
userattr 키워드와 함께 사용
userattr 키워드를 사용하여 대상 항목과 바인딩하는 데 사용되는 항목을 연결하면 ACI는 지정된 대상에만 적용되며 그 아래의 항목에는 적용되지 않습니다. 특정 상황에서 관리자는 대상 항목 아래의 ACI의 애플리케이션을 여러 수준으로 확장하려고 합니다. 이는 상위 키워드를 사용하고 ACI를 상속해야 하는 대상 아래의 수준 수를 지정할 수 있습니다.
userattr 키워드를 parent 키워드와 함께 사용하는 경우 구문은 다음과 같습니다.
userattr comparison_operator "parent[inheritance_level].attribute_name#bind_type_or_attribute_value
-
inherited_level: 대상에서 ACI 아래에 있는 수준 수를 나타내는 쉼표로 구분된 목록입니다. 대상 항목 아래에 5개 수준(0,1,2,3,4)을 포함할 수 있습니다.0(0)은 대상 항목을 나타냅니다. -
attribute_name:userattr또는groupattr키워드가 대상으로 하는 속성입니다. -
bind_type_or_attribute_value:USERDN과 같은 속성 값 또는 바인딩 유형을 설정합니다.
예를 들면 다음과 같습니다.
userattr = "parent[0,1].manager#USERDN"
바인딩 DN이 대상 항목의 manager 특성과 일치하는 경우 이 바인딩 규칙은 true로 평가됩니다. 바인딩 규칙이 true로 평가될 때 부여된 권한은 대상 항목과 그 아래의 모든 항목에 적용됩니다.
예 1.24. userattr 키워드와 함께 사용
사용자가 cn=Profiles,dc=example,dc=com 항목을 읽고 검색할 수 있도록 하려면 사용자의 DN이 owner 속성에 설정되어 있는 첫 번째 레벨과 cn=mail,cn=Profiles,dc=example,dc=com 및 cn=news,cn=Profiles,dc=example,dc=com 을 포함하는 하위 항목의 첫 번째 수준도 있습니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: cn=Profiles,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="*") (version 3.0; acl "Profile access",
allow (read,search) userattr="parent[0,1].owner#USERDN" ;)
1.10.5. 특정 IP 주소 또는 범위에서 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
bind 규칙의 ip 키워드를 사용하면 특정 IP 주소 또는 IP 주소 범위에서 액세스 권한을 부여하거나 거부할 수 있습니다.
ip 키워드를 사용한 바인딩 규칙은 다음 구문을 사용합니다.
ip comparison_operator "IP_address_or_range"
예 1.25. 바인딩 규칙에서 IPv4 주소 범위 사용
192.0.2.0/24 네트워크에서 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: (targetattr = "*") (version 3.0;acl "Deny 192.0.2.0/24"; deny (all)
(userdn = "ldap:///anyone") and (ip != "192.0.2.");)
예 1.26. 바인딩 규칙에서 IPv6 주소 범위 사용
2001:db8::/64 네트워크에서 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: (targetattr = "*") (version 3.0;acl "Deny 2001:db8::/64"; deny (all)
(userdn = "ldap:///anyone") and (ip != "2001:db8::");)
1.10.6. 특정 호스트 또는 도메인의 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
bind 규칙의 dns 키워드를 사용하면 특정 호스트 또는 도메인의 액세스 권한을 부여하거나 거부할 수 있습니다.
Directory Server에서 DNS를 사용하여 정규화된 도메인 이름(FQDN)에 연결 IP 주소를 확인할 수 없는 경우 서버는 이 클라이언트에 대한 dns 바인딩 규칙에 ACI(액세스 제어 명령)를 적용하지 않습니다.
DNS를 사용하여 클라이언트 IP 주소를 확인할 수 없는 경우 대신 ip 키워드 및 IP 주소를 사용합니다. 특정 IP 주소 또는 범위에서 액세스 정의를 참조하십시오.
dns 키워드를 사용하여 규칙을 바인딩하려면 다음 구문을 사용합니다.
dns comparison_operator "host_name_or_domain_name"
예 1.27. 특정 호스트의 액세스 정의
client.example.com 호스트에서 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: (targetattr = "*") (version 3.0;acl "Deny client.example.com"; deny (all)
(userdn = "ldap:///anyone") and (dns != "client.example.com");)
예 1.28. 특정 도메인에서 액세스 정의
example.com 도메인 내의 모든 호스트에서 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: (targetattr = "") (version 3.0;acl "Deny example.com"; deny (all) (userdn = "ldap:///anyone") and (dns != ".example.com");)
1.10.7. 연결에서 특정 수준의 보안 필요 링크 복사링크가 클립보드에 복사되었습니다!
연결 보안은 보안 강화 요인(SSF)에 따라 결정되는데, 이는 운영을 처리하는 데 필요한 최소의 주요 강점을 설정합니다. 바인딩 규칙에 ssf 키워드를 사용하여 연결이 일정 수준의 보안을 사용하도록 설정할 수 있습니다. 따라서 암호 변경과 같이 암호화된 연결을 통해 작업을 강제 수행할 수 있습니다.
모든 작업에 대한 SSF의 값은 TLS 연결과 SASL 바인딩 간의 값보다 높습니다. 즉, 서버가 TLS를 통해 실행되도록 구성되어 SASL/GSSAPI에 대해 복제 계약이 구성된 경우 작업의 SSF는 사용 가능한 암호화 유형이 더 안전합니다.
ssf 키워드를 사용한 바인딩 규칙은 다음 구문을 사용합니다.
ssf comparison_operator key_strength
다음과 같은 비교 연산자를 사용할 수 있습니다.
-
=(예:) -
!(Not equal to) -
< 이하만 해당) -
> (greater than) -
what(less than or equal to) -
>= (greater than 또는 equal to)
key_strength 매개변수가 0 으로 설정된 경우 LDAP 작업에는 보안 작업이 필요하지 않습니다.
예 1.29. 연결에서 특정 수준의 보안 필요
dc=example,dc=com 항목에서 사용자를 구성하려면 SSF가 128 이상인 경우에만 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") and (ssf >= "128");)
1.10.8. 특정 요일에 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
바인딩 규칙의 dayofweek 키워드를 사용하면 요일에 따라 액세스 권한을 부여하거나 거부할 수 있습니다.
Directory Server는 서버의 시간을 사용하여 클라이언트의 시간이 아니라 ACI(액세스 제어 명령)를 평가합니다.
dayofweek 키워드로 규칙을 바인딩하려면 다음 구문을 사용합니다.
dayofweek comparison_operator "comma-separated_list_of_days"
예 1.30. 특정 요일에 대한 액세스 권한 부여
토요일 및 데네임의 서버에 바인딩하기 위해 uid=user,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: (version 3.0; acl "Deny access on Saturdays and Sundays";
deny (all)
(userdn = "ldap:///uid=user,ou=People,dc=example,dc=com") and
(dayofweek = "Sun,Sat");)
1.10.9. 특정 시간에 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
바인딩 규칙의 timeofday 키워드를 사용하면 일 시간에 따라 액세스를 허용하거나 거부할 수 있습니다.
Directory Server는 서버의 시간을 사용하여 클라이언트의 시간이 아닌 ACI(액세스 제어 명령)를 평가합니다.
timeofday 키워드를 사용하여 규칙을 바인딩하려면 다음 구문을 사용합니다.
timeofday comparison_operator "time"
다음과 같은 비교 연산자를 사용할 수 있습니다.
-
=(예:) -
!(Not equal to) -
< 이하만 해당) -
> (greater than) -
what(less than or equal to) -
>= (greater than 또는 equal to)
timeofday 키워드를 사용하려면 시간을 24시간 형식으로 지정해야 합니다.
예 1.31. 특정 시간에 액세스 권한 정의
6pm과 0am 사이에 서버에 바인딩할 uid=user,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: (version 3.0; acl "Deny access between 6pm and 0am";
deny (all)
(userdn = "ldap:///uid=user,ou=People,dc=example,dc=com") and
(timeofday >= "1800" and timeofday < "2400");)
1.10.10. 인증 방법을 기반으로 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
bind 규칙의 authmethod 키워드는 클라이언트가 서버에 연결할 때 클라이언트가 사용해야 하는 인증 방법을 설정하여 ACL(액세스 제어 명령)을 적용합니다.
authmethod 키워드를 사용하여 규칙을 바인딩하려면 다음 구문을 사용합니다.
authmethod comparison_operator "authentication_method"
다음 인증 방법을 설정할 수 있습니다.
-
None: 인증이 필요하지 않으며 익명 액세스를 나타냅니다. 이는 기본값입니다. -
simple: 클라이언트는 디렉터리에 바인딩할 사용자 이름과 암호를 제공해야 합니다. -
SSL: 클라이언트는 데이터베이스, 스마트 카드 또는 기타 장치에서 TLS 인증서를 사용하여 디렉터리에 바인딩해야 합니다. 인증서 기반 인증에 대한 자세한 내용은 인증 방법에 따라 액세스 정의를 참조하십시오. -
SASL: 클라이언트는 Simple Authentication and Security Layer (ECDHEL) 연결을 통해 디렉터리에 바인딩해야 합니다. 바인딩 규칙에서 이 인증 방법을 사용할 때EXTERNAL과 같은 SASL 메커니즘을 추가로 지정합니다.
예 1.32. EXTERNAL SASL 인증 방법을 사용하여 연결에 대해서만 액세스 활성화
연결에서 인증서 기반 인증 방법 또는 SASL을 사용하지 않는 경우 서버에 대한 액세스를 거부하려면 다음을 수행합니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (version 3.0; acl "Deny all access without certificate"; deny (all)
(authmethod = "none" or authmethod = "simple");)
1.10.11. 역할을 기반으로 액세스 정의 링크 복사링크가 클립보드에 복사되었습니다!
바인딩 규칙의 roledn 키워드를 사용하면 하나 또는 여러 역할 세트가 있는 사용자에게 액세스 권한을 부여하거나 거부할 수 있습니다.
Red Hat은 역할 대신 그룹을 사용하는 것이 좋습니다.
roledn 키워드로 바인딩 규칙은 다음 구문을 사용합니다.
roledn comparison_operator "ldap:///distinguished_name || ldap:///distinguished_name || ..."
고유 이름(DN)에 쉼표가 포함된 경우 백슬래시로 쉼표를 이스케이프합니다.
예 1.33. 역할을 기반으로 액세스 정의
nsRole 속성에 cn=Human Resources,ou=People,dc=example,dc=com 역할이 설정된 사용자를 활성화하려면 ou=People,dc=example,dc=com:에서 항목의 manager 속성을 검색하고 읽습니다.
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
dn: ou=People,dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr="manager") (version 3.0;
acl "Allow manager role to update manager attribute";
allow (search, read) roledn = "ldap:///cn=Human Resources,ou=People,dc=example,dc=com";)
1.10.12. 부울 연산자를 사용하여 바인딩 규칙 결합 링크 복사링크가 클립보드에 복사되었습니다!
복잡한 바인딩 규칙을 생성할 때 AND, , OR NOT 부울 연산자를 사용하면 여러 키워드를 결합할 수 있습니다.
부울 연산자와 결합된 바인딩 규칙에는 다음 구문이 있습니다.
bind_rule_1 boolean_operator bind_rule_2...
예 1.34. 부울 연산자를 사용하여 바인딩 규칙 결합
cn=Administrators,ou=Groups,dc=example,com 및 cn=Operators,ou=Groups,dc=example,com 그룹의 멤버인 사용자를 구성하려면 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 members of administrators and operators group to manage users";
allow (read, search, add, write, delete)
groupdn = "ldap:///cn=Administrators,ou=Groups,dc=example,com" AND
groupdn = "ldap:///cn=Operators,ou=Groups,dc=example,com";)
Directory Server에서 부울 연산자를 평가하는 방법
Directory Server는 다음 규칙을 사용하여 부울 연산자를 평가합니다.
왼쪽에서 오른쪽으로 모든 표현입니다.
다음 예제에서는
bind_rule_1이 먼저 평가됩니다.(bind_rule_1) OR (bind_rule_2)가장 먼저 가장 가까운 접착식에서 가장 외부 표현식까지.
다음 예에서
bind_rule_2는 먼저 평가되고bind_rule_3은 다음과 같습니다.(bind_rule_1) OR ((bind_rule_2) AND (bind_rule_3))AND또는OR연산자의 이전은아닙니다.다음 예제에서 bind_rule_2 는 먼저 평가됩니다.
(bind_rule_1) AND NOT (bind_rule_2)AND및OR연산자는 우선 순위가 없습니다.