2.3. 매크로 액세스 제어 지침 사용


ACI( macro Access Control instructions)는 LDAP 항목 고유 이름(DN) 또는 해당 부분에 대한 맞춤형 액세스를 자동화하고 ACI 수를 줄일 수 있는 가능성을 제공합니다.

2.3.1. 매크로 액세스 제어 명령 예

아래 그림은 하위 도메인의 반복적인 패턴이 있는 dc=hostedCompany1,dc=example,dc=comdc=hostedCompany2,dc=example,dc=com 이 있는 디렉터리 트리를 보여줍니다. 각 하위 도메인은 ou=groups ou=people 항목의 동일한 구조를 갖습니다. 디렉터리 트리는 ACI( macro Access Control instructions)를 사용하여 총 ACI 수를 줄입니다.

디렉터리 트리에 적용되는 ACI에는 반복 패턴이 있습니다. 예를 들어 다음 ACI는 dc=hostedCompany1,dc=example,dc=com 노드에 있으며, DomainAdmins 그룹에 해당 트리의 모든 항목에 읽기 및 검색 권한을 부여합니다.

aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain))
     (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany1,dc=example,dc=com";)
Copy to Clipboard Toggle word wrap

그림 2.1. 매크로 ACI의 디렉터리 트리 예

아래 ACIs는 groupdn 키워드의 DN의 다른 부분을 보여줍니다.

  • dc=hostedCompany1,dc=example,dc=com 노드에는 다음 ACI가 포함되어 있습니다.
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain))
    (version 3.0; acl "Domain access"; allow (read,search)
    groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany1,dc=example,dc=com";)
Copy to Clipboard Toggle word wrap
  • dc=subdomain1,dc=hostedCompany1,dc=example,dc=com 노드에는 다음 ACI가 포함되어 있습니다.
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain))
     (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com";)
Copy to Clipboard Toggle word wrap
  • dc=hostedCompany2,dc=example,dc=com 노드에는 다음 ACI가 포함되어 있습니다.
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain))
     (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany2,dc=example,dc=com";)
Copy to Clipboard Toggle word wrap
  • dc=subdomain1,dc=hostedCompany2,dc=example,dc=com 노드에는 다음 ACI가 포함되어 있습니다.
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain))
     (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=subdomain1,dc=hostedCompany2,dc=example,dc=com";)
Copy to Clipboard Toggle word wrap

반복적인 패턴을 위해 여러 ACI를 교체하려면 매크로를 사용합니다. 예를 들어 위의 ACI를 하나로 줄이려면 다음 매크로를 사용합니다.

aci: (target="ldap:///ou=Groups,($dn),dc=example,dc=com")
     (targetattr="*")(targetfilter=(objectClass=nsManagedDomain))
     (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=DomainAdmins,ou=Groups,[$dn],dc=example,dc=com";)
Copy to Clipboard Toggle word wrap

2.3.2. 매크로 액세스 제어 명령 구문

ACI( macro Access Control instructions)에는 DN 또는 DN의 일부를 대체하기 위한 다음과 같은 유형의 표현식이 포함되어 있습니다.

  • ($DN),
  • [$dn],
  • ($Attr.attrName) 여기서 attrName 은 대상 항목의 일부인 특성을 나타냅니다.

ACI 키워드는 ACI의 제목인 바인딩 자격 증명을 제공합니다. 대상은 ACI가 적용되는 위치를 결정합니다.

Expand
표 2.2. ACI 키워드의 매크로
macroACI 키워드설명

($dn)

target, targetfilter, userdn, roledn, groupdn, userattr

주제의 일치 및 직접 대체. target 또는 to targetfilter 와 일치하고 일치하는 값을 userdn,groupdn 또는 userattr 으로 대체합니다.

[$dn]

targetfilter, userdn, roledn, groupdn, userattr

제목의 하위 트리에서 작동하는 여러 RDN을 대체합니다.

($Attr.attrName)

userdn, roledn, groupdn, userattr

특성Name 특성 값을 대상 항목에서 제목으로 대체합니다.

매크로를 사용하는 경우 ($dn) 매크로가 포함된 대상을 정의해야 합니다. ($dn)($attr.attrName) 매크로를 결합할 수 있습니다.

2.3.3. [$dn] 매크로 예

[$dn] 매크로는 대상 소스의 DN을 여러 번 검사합니다. 이 매크로는 일치하는 항목을 찾을 때까지 각 반복의 왼쪽 RDN 구성 요소를 삭제합니다.

예를 들어 cn=all,ou=groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com 하위 트리에 대상이 있는 LDAP 요청이 있습니다.

aci: (target="ldap:///ou=groups,($dn),dc=example,dc=com")
     (targetattr = "*") (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=domainAdmins,ou=groups,[$dn],dc=example,dc=com";)
Copy to Clipboard Toggle word wrap

매크로는 다음과 같이 확장됩니다.

  1. 대상의 ($dn)dc=subdomain1,dc=hostedCompany1 과 일치합니다.
  2. 제목의 [$dn] 을 대체하는 것은 dc=subdomain1,dc=hostedCompany1 입니다.

    결과는 groupdn="ldap:///cn=domainAdmins,ou=Groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com" 입니다. 바인딩 DN이 해당 그룹의 멤버이면 일치하는 프로세스가 중지되고 ACI가 평가됩니다. 결과가 일치하지 않으면 프로세스가 계속되고 왼쪽 부분이 삭제됩니다.

  3. 제목의 [$dn]은 dc=hostedCompany1 입니다.

    결과는 groupdn="ldap:///cn=domainAdmins,ou=Groups,dc=hostedCompany1,dc=example,dc=com" 입니다. 바인딩 DN이 해당 그룹의 멤버가 아닌 경우 ACI가 평가되지 않습니다. 멤버가면 ACI가 평가됩니다.

[$dn] 매크로는 도메인 수준 관리자에게 디렉터리 트리의 모든 하위 도메인에 대한 액세스 권한을 부여합니다. 도메인 간 계층적 관계를 표시하는 데 유용합니다. 예를 들어 다음 ACI를 고려하십시오.

aci: (target="ldap:///ou=*, ($dn),dc=example,dc=com")
     (targetattr="*")(targetfilter=(objectClass=nsManagedDomain))
     (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=domainAdmins,ou=groups,[$dn],dc=example,dc=com";)
Copy to Clipboard Toggle word wrap

이 ACI는 cn=domainAdmins,ou=groups,dc=hostedCompany1,dc=example,dc=com 의 멤버에게 dc=hostedCompany1 아래의 모든 하위 도메인에 대한 액세스 권한을 부여합니다. 해당 그룹의 멤버인 관리자는 ou=people,dc=subdomain1.1,dc=subdomain1 과 같은 하위 트리에 액세스할 수 있습니다. 그러나 cn=domainAdmins,ou=groups,dc=subdomain1.1 의 멤버는 ou=people,dc=hostedCompany1ou=people,dc=subdomain1,dc=hostedCompany1 노드에 액세스할 수 없습니다.

2.3.4. ($dn) 매크로 예

($dn) 매크로는 대체 값을 LDAP 요청의 항목과 비교합니다. 예를 들어 LDAP 요청은 항목을 대상으로 합니다.

cn=all,ou=groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com
Copy to Clipboard Toggle word wrap

ACI는 다음 대상을 정의합니다.

(target="ldap:///ou=groups,($dn),dc=example,dc=com")
Copy to Clipboard Toggle word wrap

($dn) 매크로는 이 예제에서 dc=subdomain1,dc=hostedCompany1 과 일치합니다.

대상과 일치하는 하위 문자열은 ACI의 대상이 ($dn) 매크로를 사용할 때 제목을 확장합니다.

aci: (target="ldap:///ou=*,($dn),dc=example,dc=com")
     (targetattr = "*") (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=domainAdmins,ou=groups,($dn),dc=example,dc=com";)
Copy to Clipboard Toggle word wrap

ACI는 다음과 같이 확장됩니다.

aci: (target="ldap:///ou=groups,dc=subdomain1,dc=hostedCompany1,
     dc=example,dc=com") (targetattr = "*") (version 3.0; acl "Domain
     access"; allow (read,search) groupdn="ldap:///cn=domainAdmins,ou=groups,
     dc=subdomain1,dc=hostedCompany1,dc=example,dc=com";)
Copy to Clipboard Toggle word wrap

매크로가 확장되면 Red Hat Directory Server는 일반 프로세스에 따라 ACI를 평가하여 액세스 권한이 부여되었는지 확인합니다.

2.3.5. ($attr.attrName) 매크로 예

항상 ($attr.attrName) 매크로를 DN의 일부로 사용합니다. 예를 들어 다음 역할을 정의합니다.

roledn = "ldap:///cn=DomainAdmins,($attr.ou),dc=HostedCompany1,dc=example,dc=com"
Copy to Clipboard Toggle word wrap

서버가 다음 항목을 대상으로 하는 LDAP 작업을 수신한다고 가정합니다.

dn: cn=Jane Doe,ou=People,dc=HostedCompany1,dc=example,dc=com
cn: Jane Doe
sn: Doe
ou: Engineering...
Copy to Clipboard Toggle word wrap

ACI의 역할을 평가하기 위해 서버는 대상 항목의 ou 특성을 살펴보고 이 속성의 값을 사용하여 매크로를 확장합니다. 역할은 다음과 같이 확장됩니다.

roledn = "ldap:///cn=DomainAdmins,ou=Engineering,dc=HostedCompany1,dc=example,dc=com"
Copy to Clipboard Toggle word wrap

Red Hat Directory Server는 일반적인 ACI 평가 알고리즘에 따라 ACI를 평가합니다.

속성에 여러 값이 있는 경우 RHDS는 각 값을 사용하여 매크로를 확장하고 확장된 매크로의 첫 번째 성공적인 일치 값을 사용합니다. 예를 들면 다음과 같습니다.

dn: cn=Jane Doe,ou=People,dc=HostedCompany1,dc=example,dc=com
cn: Jane Doe
sn: Doe
ou: Engineering
ou: People...
Copy to Clipboard Toggle word wrap

Red Hat Directory Server가 ACI를 평가하면 다음과 같은 확장된 표현식에서 논리 OR 를 수행합니다.

roledn = "ldap:///cn=DomainAdmins,ou=Engineering,dc=HostedCompany1,dc=example,dc=com"

roledn = "ldap:///cn=DomainAdmins,ou=People,dc=HostedCompany1,dc=example,dc=com"
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat