4.4. 가상 디렉터리 정보 트리 보기
Directory Server는 가상 디렉터리 정보 트리 뷰 또는 가상 DIT 보기라는 디렉터리 정보 의 계층적 탐색 및 조직을 위한 개념을 지원합니다.
참고
뷰에서 반환하는 항목이 동일한 백엔드에 있어야 한다는 점에서 가상 뷰는 여러 백엔드와 완전히 호환되지 않습니다. 검색은 하나의 백엔드로 제한됩니다.
4.4.1. 가상 DIT 보기 정보
디렉터리 네임스페이스를 구성하는 방법은 다음 두 가지가 있습니다.
- 계층적 디렉터리 정보 트리입니다.
- 플랫 디렉터리 정보 트리입니다.
계층적 DIT는 디렉토리를 탐색하는 데 유용하지만 변경하는데 시간이 오래 걸립니다. 계층적 DIT에 대한 주요 조직적 변경은 일반적으로 상당한 서비스 중단을 수반하기 때문에 비용이 많이 들고 시간이 많이 걸리는 작업이 될 수 있습니다. 이는 일반적으로 시간 경과 후 및 트래픽이 낮은 기간에만 변경을 수행하여 최소화할 수 있습니다.
플랫 DIT는 변경할 필요가 없지만 디렉터리 서비스의 항목을 탐색하거나 관리하는 편리한 방법은 제공하지 않습니다. 플랫 DIT는 또한 관리로 인해 자연 계층 구조 그룹화 없이 관리가 더 복잡해짐에 따라 많은 관리 문제를 안고 있습니다.
그림 4.14. 플랫 및 조직 기반 DIT의 예
![플랫 및 조직 기반 DIT의 예](https://access.redhat.com/webassets/avalon/d/Red_Hat_Directory_Server-11-Deployment_Guide-ko-KR/images/8bde2839a8a0d5df3bc0c1f7b1797258/virview1.png)
계층적 DIT를 사용하여 배포는 계층 구조의 주체 도메인을 결정해야 합니다. 하나의 선택만 할 수 있습니다; 자연적인 것은 조직 계층 구조를 선택하는 것입니다.
이 조직 보기는 많은 경우 잘 작동하지만 단일 보기만 있으면 디렉터리 탐색 및 관리에 매우 제한될 수 있습니다. 예를 들어 조직 계층 구조는 계정 부서의 사용자에게 속한 항목을 찾는 데 적합합니다. 그러나 이 보기는 캘리포니아주와 같은 지리적 위치에서 사용자에게 속한 항목을 찾는 데 훨씬 덜 유용합니다. 두 번째 쿼리는 첫 번째 쿼리로 유효하지만 항목 및 추가 검색 도구에 포함된 속성에 대한 지식이 필요합니다. 이러한 경우 DIT를 사용한 탐색은 옵션이 아닙니다.
마찬가지로 DIT가 관리 기능의 요구 사항과 일치하면 디렉터리 관리가 훨씬 쉬워집니다. DIT 조직은 복제 및 마이그레이션 고려 사항과 같은 다른 요인의 영향을 받을 수 있으며, 이로 인해 DIT는 해당 애플리케이션에 대한 기능적 유용성이 있지만 다른 경우에는 실용적이지 않습니다.
계층 구조는 탐색 및 관리에 유용한 메커니즘입니다. 그러나 기존 DIT를 변경하는 부담을 방지하기 위해 배포는 플랫 DIT를 위해 계층을 완전히 금지하도록 선택할 수 있습니다.
디렉터리에서 대상 항목을 이동할 필요 없이 항목에 매핑되는 임의의 수의 계층을 생성하는 방법을 제공하는 경우 배포에 유용합니다. Directory Server의 가상 DIT 뷰 기능은 디렉터리 배포에 사용할 DIT 유형을 결정합니다.
가상 DIT 뷰 는 해당 항목이 특정 위치에 물리적으로 존재하도록 요구 없이 계층적으로 항목을 탐색할 수 있는 방법을 제공합니다. 가상 DIT 뷰는 항목에 대한 정보를 사용하여 뷰 계층 구조에 배치합니다. 클라이언트 애플리케이션에는 가상 DIT 뷰가 일반 컨테이너 계층 구조로 표시됩니다. 가상 DIT 보기는 이러한 항목이 플랫 네임스페이스에 있는지 아니면 자체 계층 구조의 다른 계층에 관계없이 일련의 항목에 대해 DIT 계층 구조를 불필요하게 표시합니다.
일반 DIT 계층 구조와 동일한 방식으로 가상 DIT 보기 계층 구조를 만듭니다. 뷰를 설명하는 동일한 항목(예: 조직 단위 항목)과 추가 오브젝트 클래스(nsview) 및 필터 특성(
nsview
)을 만듭니다. 추가 속성을 추가한 후 view 필터와 일치하는 항목이 즉시 뷰를 채웁니다. 대상 항목은 뷰에만 존재하는 것으로 표시되고 실제 위치는 변경되지 않습니다. 가상 DIT 뷰는 하위 트리 또는 하나의 수준 검색에서 정상적인 DIT처럼 작동합니다. 가상 DIT 뷰는 예상되는 결과가 반환되면 수행할 수 있습니다.
항목 추가 및 수정에 대한 자세한 내용은 Red Hat Directory Server 관리 가이드의 "고객 항목 생성"을 참조하십시오.
그림 4.15. 뷰를 사용하는 조합된 DIT
![뷰를 사용하는 조합된 DIT](https://access.redhat.com/webassets/avalon/d/Red_Hat_Directory_Server-11-Deployment_Guide-ko-KR/images/10c92f154b135a6cbd78d46d7a9da5b4/virview2.png)
의 DIT 그림 4.15. “뷰를 사용하는 조합된 DIT” 는 그림 4.14. “플랫 및 조직 기반 DIT의 예” 에 표시된 두 DIT를 뷰를 사용하여 결합할 때 발생하는 상황을 보여줍니다. 뷰는 기본적으로 뷰 계층 구조에서 둘 이상의 위치에 표시될 수 있으므로 이 기능은 ou=Sales 항목을 확장하여 영업 항목을 위치별로 볼 수 있습니다.Because views inherently allow entries to appear in more than one place in a view hierarchy, this feature has been used to expand the ou=Sales entry to enable viewing the Sales entries either by location or by product.
가상 DIT 보기 계층 구조 집합이 지정되면 디렉터리 사용자는 필요한 항목으로 이동하는 데 가장 적합한 보기를 사용할 수 있습니다. 예를 들어 대상 항목이 Cryostat 보기에 있는 경우 위치 기반 정보를 사용하여 탐색하여 시작하는 보기가 가장 적합합니다. 조직적 질문이었던 경우 조직 보기가 더 나은 선택이 될 수 있습니다. 이러한 보기는 모두 Directory Server에 동시에 존재하며 동일한 항목에서 작동합니다. 다른 보기는 디렉터리 구조의 버전을 표시할 때 서로 다른 목표를 갖습니다.
그림 4.15. “뷰를 사용하는 조합된 DIT” 의 views-enabled 디렉터리에 있는 항목은 계층 구조의 최상위 보기의 부모 바로 아래에 플랫 네임스페이스에 포함되어 있습니다. 이는 필수가 아닙니다. 항목이 자체 계층 구조에 있을 수 있습니다. 뷰가 항목의 배치에 대해 가지고 있는 유일한 문제는 뷰 계층 구조의 부모 하위 항목이어야 한다는 것입니다.
그림 4.16. 가상 DIT 보기 계층 구조를 사용하는 DIT
![가상 DIT 보기 계층 구조를 사용하는 DIT](https://access.redhat.com/webassets/avalon/d/Red_Hat_Directory_Server-11-Deployment_Guide-ko-KR/images/b52fdd943dec46b70bb85939d3785e31/virview3.png)
- 하위 트리 ou=People 에는 실제 항목 A 및 Entry B 항목이 포함되어 있습니다.
- 하위 트리 ou=Location Views 는 뷰 계층 구조입니다.
- 리프 노드 ou=Sunnyvale 및 ou=Mountain View 에는 뷰를 설명하는
nsviewfilter
속성이 각각 포함되어 있습니다.실제 항목이 포함되어 있지 않기 때문에 리프 노드입니다. 그러나 클라이언트 애플리케이션이 이러한 보기를 검색할 때 ou=Sunnyvale 및 Entry B 아래의 Entry A 를 찾습니다. 이 가상 검색 공간은 모든 상위 뷰의nsviewfilter
특성에 설명되어 있습니다. 뷰에서 만든 검색은 가상 검색 공간과 실제 검색 공간의 항목을 모두 반환합니다. 이를 통해 뷰 계층은 기존 DIT로 기능하거나 기존 DIT를 뷰 계층 구조로 변경할 수 있습니다.
4.4.2. 가상 DIT 뷰 사용의 이점
다음과 같은 이유로 가상 DIT 보기에서 배포 결정이 더 쉬워집니다.
- 가상 DIT 뷰는 기존 계층 구조에서 제공하는 것과 유사한 탐색 및 관리 지원을 제공하므로 뷰에 대해 플랫 네임스페이스를 쉽게 사용할 수 있습니다.Views facilitate the use of a flat namespace for entries, because virtual DIT views provide navigational and managerial support similar to those provided by traditional hierarchies.또한 DIT가 변경될 때마다 항목을 이동할 필요가 없으며 가상 DIT 보기 계층 구조만 변경됩니다. 이러한 계층 구조에는 실제 항목이 포함되어 있지 않으므로 간단하고 빠르게 수정할 수 있습니다.
- 배포 계획 중 감독은 가상 DIT 뷰를 사용하는 덜 치명적인 영향을 받습니다. 첫 번째 인스턴스에서 계층 구조가 올바르게 개발되지 않으면 서비스를 중단하지 않고도 쉽고 빠르게 변경할 수 있습니다.
- 뷰 계층 구조는 몇 분 내에 완전히 수정될 수 있으며 결과를 즉시 실현하여 디렉터리 유지 관리 비용을 크게 줄일 수 있습니다.가상 DIT 계층 구조에 대한 변경 사항은 즉시 실현됩니다. 조직 변경이 발생하면 새 가상 DIT 보기를 빠르게 생성할 수 있습니다. 새로운 가상 DIT 보기는 이전 뷰와 동시에 존재할 수 있으므로 항목 자체 및 이를 사용하는 애플리케이션에 대해 보다 점진적인 변경 작업을 수행할 수 있습니다. 디렉터리의 조직 변경은 all-or-nothing 작업이 아니므로 일정 기간 동안 또는 서비스 중단 없이 수행할 수 있습니다.
- 탐색 및 관리에 여러 가상 DIT 보기를 사용하면 디렉터리 서비스를 보다 유연하게 사용할 수 있습니다.가상 DIT 뷰에서 제공하는 기능을 사용하면 조직은 이전 방법과 새 방법을 모두 사용하여 DIT의 특정 지점에 항목을 배치할 필요 없이 디렉터리 데이터를 구성할 수 있습니다.
- 가상 DIT 뷰 계층은 일반적으로 필요한 정보를 쉽게 검색할 수 있도록 준비된 쿼리로 생성할 수 있습니다.
- 뷰는 작업 관행의 유연성을 촉진하고 디렉터리 사용자가 알 필요가 없는 속성 이름과 값을 사용하여 복잡한 검색 필터를 생성하는 요구 사항을 줄입니다.디렉토리 정보를 보고 쿼리할 수 있는 방법이 둘 이상의 유연성을 통해 최종 사용자와 애플리케이션은 계층적 탐색을 통해 직관적으로 필요한 항목을 찾을 수 있습니다.
4.4.3. 가상 DIT 뷰의 예
아래의 LDIF 항목은 위치를 기반으로 하는 가상 DIT 보기 계층 구조를 보여줍니다. dc=example,dc=com 아래에 있고 view 설명에 맞는 모든 항목이 위치별로 구성된 이 보기에 표시됩니다.
dn: ou=Location Views,dc=example,dc=com objectclass: top objectclass: organizationalUnit objectclass: nsView ou: Location Views description: views categorized by location dn: ou=Sunnyvale,ou=Location Views,dc=example,dc=com objectclass: top objectclass: organizationalUnit objectclass: nsView ou: Sunnyvale nsViewFilter: (l=Sunnyvale) description: views categorized by location dn: ou=Santa Clara,ou=Location Views,dc=example,dc=com objectclass: top objectclass: organizationalUnit objectclass: nsView ou: Santa Clara nsViewFilter: (l=Santa Clara) description: views categorized by location dn: ou=Cupertino,ou=Location Views,dc=example,dc=com objectclass: top objectclass: organizationalUnit objectclass: nsView ou: Cupertino nsViewFilter: (l=Cupertino) description: views categorized by location
ou=Location Views,dc=example,dc=com 에 기반한 하위 트리 검색은 필터 (l=Sunnyvale), (l= Santa Cextensiona) 또는 (l=Cupertino) 와 일치하는 dc= example,dc=com 아래의 모든 항목을 반환합니다. 반대로, 하나의 수준 검색은 세 하위 뷰에 있는 모든 적격 항목이 있기 때문에 하위 뷰 항목 이외의 항목을 반환하지 않습니다.
ou=Location Views,dc=example,dc=com view 항목 자체에는 필터가 포함되어 있지 않습니다. 이 기능은 보기에 포함된 항목을 추가로 제한해야 하는 요구 없이 계층적 조직을 용이하게 합니다. 모든 보기에서 필터를 생략할 수 있습니다. 예제 필터는 매우 간단하지만 사용되는 필터는 필요에 따라 복잡할 수 있습니다.
뷰에 포함되어야 하는 항목 유형을 제한하는 것이 바람직할 수 있습니다. 예를 들어 이 계층 구조에 사람 항목만 포함하도록 제한하려면 필터 값 (objectclass=organizationalperson) 을 사용하여 ou=Location Views,dc=example,dc=com 에
nsfilter
특성을 추가합니다.
필터가 있는 각 뷰는 모든 하위 뷰의 콘텐츠를 제한하지만 필터가 있는 하위 뷰도 상위 뷰의 콘텐츠를 제한합니다. 예를 들어 위에서 언급한 새 필터와 먼저 상위 뷰 ou=Location Views 를 생성하면 조직 오브젝트 클래스가 포함된 모든 항목이 있는 뷰가 생성됩니다. 하위 뷰가 추가되어 항목을 추가로 제한할 때 하위 보기에 이제 하위 보기가 표시되는 항목이 상위 보기에서 제거됩니다. 이는 가상 DIT 보기가 기존 DIT의 동작을 모방하는 방법을 보여줍니다.
가상 DIT 보기는 기존 DIT의 동작을 모방하지만 기존 DIT는 할 수 없는 작업을 수행할 수 있습니다: 항목이 두 개 이상의 위치에 표시될 수 있습니다. 예를 들어, Entry B 를 192.0.2. View 및 Sunnyvale ( 그림 4.16. “가상 DIT 보기 계층 구조를 사용하는 DIT”참조)와 연결하려면( 참조), location 속성에 Sunnyvale 값을 추가하고 두 보기 모두에 항목이 표시됩니다.
4.4.4. 보기 및 기타 디렉터리 기능
Directory Server 지원 뷰에서 서비스 클래스 와 역할 모두 4.3절. “그룹화 디렉토리 항목” 를 참조하십시오. view 계층 구조 아래에 서비스 클래스 또는 역할을 추가할 때 논리적으로 뷰와 실제로 포함된 항목은 범위 내에서 고려됩니다. 즉, 가상 DIT 보기를 사용하여 역할 및 서비스 클래스를 적용할 수 있지만 플랫 네임스페이스를 쿼리할 때도 해당 애플리케이션의 영향을 볼 수 있습니다.
이러한 기능 사용에 대한 자세한 내용은 Red Hat Directory Server 관리 가이드의 "고급 항목 관리"를 참조하십시오.
뷰를 사용하려면 액세스 제어에 약간 다른 접근 방식이 필요합니다. 현재 뷰에서 ACL을 명시적으로 지원하지 않으므로 view 부모에서 역할 기반 ACL을 생성하고 뷰 계층 구조의 적절한 부분에 역할을 추가합니다. 이렇게 하면 계층 구조의 조직 속성을 활용합니다.In this way, take advantage of the organizational property of the hierarchy.
검색 기반 검색이 뷰이고 검색 범위가 기본이 아닌 경우 검색은 뷰 기반 검색입니다. 그렇지 않으면 일반적인 검색입니다.
예를 들어 기본 dc=example,dc=com 을 사용하여 검색을 수행해도 가상 검색 공간의 항목이 반환되지 않습니다. 실제로 가상 검색 공간 검색이 수행되지 않습니다. 뷰 처리는 검색 기반이 ou=Location Views 인 경우에만 발생합니다. 이렇게 하면 검색에서 두 위치의 항목이 발생하지 않도록 합니다. (일반적인 DIT인 경우 두 위치의 항목이 반환됩니다.)
4.4.5. 성능에 대한 가상 뷰의 영향
뷰 기반 계층의 성능은 계층 자체의 구성과 DIT의 항목 수에 따라 달라집니다. 일반적으로 디렉터리 서비스에서 가상 DIT 뷰를 사용할 수 있는 경우 기존 DIT에서 동일한 검색의 일부 백분율로 성능 변경이 발생할 수 있습니다.In general, there may be a marginal change in performance (with a few percentage of equivalent searches on a conventional DIT) if virtual DIT views are enabled in the directory service. 검색에서 뷰를 호출하지 않으면 성능에 영향을 미치지 않습니다. 배포 전에 예상되는 검색 패턴 및 로드에 대해 가상 DIT 보기를 테스트합니다.
또한 뷰를 조직의 범용 탐색 도구로 사용해야 하는 경우 뷰 필터에 사용된 속성을 인덱싱하는 것이 좋습니다.We also recommend that the attributes used in view filters be indexed if the views are to be used as general-purpose navigation tools in the organization. 또한 보기에 사용되는 하위 필터가 구성된 가상 목록 뷰 인덱스와 일치하면 해당 인덱스가 뷰 평가에 사용됩니다.
뷰를 위해 특별히 디렉터리의 다른 부분을 튜닝할 필요가 없습니다.
4.4.6. 기존 애플리케이션과의 호환성
가상 DIT 뷰는 기존 DIT를 높은 수준으로 모방하도록 설계되었습니다. 보기의 존재는 대부분의 애플리케이션에 투명해야 합니다. 뷰를 사용하여 작업 중이라는 표시는 없어야 합니다. 몇 가지 특수 사례를 제외하고 디렉터리 사용자가 Directory Server 인스턴스에서 뷰가 사용되고 있음을 알 필요가 없습니다. 뷰는 기존 DIT처럼 보이고 작동합니다.
특정 유형의 애플리케이션에는 view-enabled 디렉터리 서비스로 작업하는 데 문제가 있을 수 있습니다. 예를 들면 다음과 같습니다.
- 대상 항목의 DN을 사용하여 DIT를 탐색하는 애플리케이션입니다.이 유형의 애플리케이션은 항목이 발견된 보기 계층 구조 대신 물리적으로 존재하는 계층 구조를 탐색하고 있습니다. 뷰의 계층 구조를 준수하도록 항목의 DN을 변경하여 뷰의 실제 위치를 위장하려고 시도하지 않기 때문입니다. 이는 설계상 - 고유 항목을 식별하기 위해 DN에 의존하는 애플리케이션과 같이 항목의 실제 위치가 위장된 경우 많은 애플리케이션이 작동하지 않습니다. DN을 해체하는 이러한 고급 탐색은 클라이언트 애플리케이션에 대한 비정상적인 기술이지만, 이를 수행하는 클라이언트는 의도한 대로 작동하지 않을 수 있습니다.
numSubordinates
운영 속성을 사용하는 애플리케이션은 노드 아래에 존재하는 항목 수를 결정합니다.보기에 있는 노드의 경우 현재 가상 검색 공간을 무시하고 실제 검색 공간에 존재하는 항목만 수입니다. 결과적으로 애플리케이션에서 검색을 사용하여 뷰를 평가하지 못할 수 있습니다.