Active Directory(2)

반응형

1. Active Directory의 요소

Active Directory를 구성하는 각 요소들은 논리적인 구조로 엮어져 있다. 정보나 자원들은 사용자나 회사가 그것을 사용하는 용도나 내용에 따라서 논리적으로 그룹화 되어 있으며, 이 그룹화 된 object를 위치에 상관없이 그 이름만으로 손쉽게 탐색할 수 있는 것이다. 이러한 Active Directory의 논리 구조에 대해서 우선 이를 구성하는 기본 구성 요소에 대해서 알아 보자.

 

Objects
object란 공통된 속성을 가지며 class(클래스)별로 구성된다. Users, computers, printers, applications등이 object이다.

 

Object Attributes
Attribute(속성 혹은 properties)는 각 object가 가지고 있는 특징을 정의하는 정보의 카테고리이다. 같은 타입의 모든 object는 동일한 attribute를 가진다. 그리고 그 attribute의 값이 서로 틀리기 때문에 해당 object를 고유(unique)하게 되는 것이다. 예를 들면 User Account object의 attribute 중에 First Name 이 있을 경우에, 이 First Name 속성의 값에는 John, 이나 Jane등 어떤 이름이던지 들어 갈 수가 있으며, 이 속성 값으로 네트워크 상의 누구라도 찾을 수 있는 것이다.

 

Object Classes
Object Classes는 object의 논리적 그룹이다. 이 클래스의 특징을 기술하는 것을 properties라고 부른다. 예를 들면 object classes는 users, groups, computers, domains, organizational units 그리고 security policies등이 있다.

 

Schema
Schema는 Active Directory의 object 를 정의한다. 이는 각 object 의 attributes, classes, 그리고 classes properties등을 규정한다. 이 schema는 각 object의 attributes에 특정 값이 반드시 필요한 지 아니면 선택인지(optional)인지를 규정한다. 그리고 이 schema는 손쉽게 확장되는 데, User Account object의 First Name 이라는 attribute에는 반드시 입력되어야 하는 값이 있어야 하는 반면에, Telephone Number나 Address라는 attribute에는 값이 들어가도 되고 안 들어가도 되는 optional로 정의 되어 있다.

 

2. Active Directory의 논리 구조

Active Directory object는 다음과 같이 containers, domains 그리고 OUs를 구성한다.

 

Containers
Container는 다른 object를 포함하고 있는 일종의 directory object이다. 컴퓨터 네트워크나 domain은 container의 한 일종이다.

 

Domains
Active Directory의 논리 구조의 핵심 단위가 domain이다. 이 domain은 사용자 계정 정보와 이DNS이름을 바탕으로 서로를 각기 구별하고 보안 정보를 공유하는 object의 논리적 container이다.
한 domain은 보안 관리 체계를 이루는 최소 단위가 되면서 Windows 2000 네트워크에 복제가 일어나는 단위가 된다. 다시 말하면, security policy던가, 관리 권한(administrative right), ACL등과 같은 것은 domain 내부에서만 일어나는 것이지 다른 domain으로 적용할 수 없는 것이다. 하지만 domain은 다른 domain과 보안 관계를 맺을 수 있다.
한 domain은 물리적인 지역 여러 곳을 커버 할 수 있다.

 

Domain Controller
Active Directory의 물리적 구조를 살펴 보면, domain controller라는 서버가 domain의 directory를 한 벌 저장하고 있다. 한 domain내에서 여러 개의 domain controller가 있으며, 이는 각기 해당 domain의 directory 정보의 복제 본을 한 벌씩 가지고 있다.

 

Organizational Units
OU(Organizational Units)는 일종의 container object로서 domain내의 object 들을 관리할 수 있는 그룹으로 묶어 놓은 것을 말한다. 하나의 OU는 user accounts, groups, computers, printers, applications, security policies, file shares, 그리고 다른 OU등을 포함할 수 있다.
한 domain내의 OU는 그 계층 구조가 다른 domain의 계층구조와 전혀 상관이 없이 구성된다. 그러므로 OU는 각 domain에서 독립적인 계층 구조를 가진다고 말할 수 있다.

 

 

3. Active Directory의 논리 구조와 그 상관 관계
Domain은 서로 연결되어Tree와 Forest를 구성한다.

 

Trees
연속되는 이름영역(namespace)을 가진 하나 이상의 domain으로 구성된 계층적 조직을 tree라고 한다. 이 연속된 이름영역(contiguous namespace)이라는 것은 parent container의 이름이 child object의 이름의 뒤에 붙는다는 것을 말한다. Active Directory내에서 tree내의 domain끼리는 서로 trust relationship을 가지면서 공통된 schema, configuration, global catalog server를 사용한다. 여기서 trust relationship이라고 하는 것은 두 개 이상의 domain을 논리적으로 연결하여 하나의 관리 단위로 이용하는 것을 의미하기 때문에 각 object는 domain에 상관없이 서로 공유된다. 여기에 사용된 trust relationship은 2 way trust relationship혹은 transitive trust라고 불리며, Kerberos 버전 5 프로토콜이 trust relationship을 인증하는데 사용된다.
예를 들면, ICMARKET 사는 Manufacturing 부서를 위해 하나의 domain을 만들어 manu.icmarket.com라고 이름하고 Marketing 부서는 market.icmarket.com라고 이름 짓는 다면, 각 부서의 domain은 공동의 application과 자원을 공유하게 해야 한다. 이 것이 가능한 것은 이 두개의 domain이 icmarket.com라는 연속되는 이름영역(namespace)을 사용하기 때문이다.

 

Forests
Forest는 연속되지 않는 이름영역(namespace)을 가진 하나 이상의 tree로 이루어 진다. Forest내의 각 tree는 독립적인 이름영역(namespace)을 가지는 데, 이들 tree간에 각기 틀린 이름영역을 disjointed namespace라고 부른다. 디폴트로 root tree나 forest내에서 제일 먼저 만들어 지는 tree의 이름이 forest의 이름으로 사용된다.
비록 그 이름은 서로 공유되지 않더라도 forest내의 tree들은 schema, configuration 그리고 global catalog server는 공유한다. 예를 들면 미국에 있는 icmarket.com와 한국에 새로 만들어진 tainspintoys.co.kr은 서로 다른 이름영역을 가지더라도 동일한 application, objects 등을 공유할 수 있는 것이다.

 

Global Catalog Server
Global catalog server는 전체 directory의 모든 구성 요소와 그 상관 관계를 한눈에 알아 볼 수 있도록 한다. 이것은 Active Directory가 복제 될 때에 만들어 지며, 전 directory의 복제 본을 저장하고 있다. 이것을 통하여 사용자나 관리자가 object의 attribute 로서 모든 directory object를 이를 저장하고 있는 domain이나 domain내의 서버나 그 서버의 지리적 위치에 상관없이 찾을 수 있다. 
Global catalog server는 모든 directory object를 담고 있지만 이는 Active Directory의 각 object와 attribute의 일부분을 복제하여 저장하고 있다. 다시 말하면 각 object의 전 attribute를 저장하는 것이 아니라 검색에서 가장 자주 이용되는 attribute 들만 저장하고 있는 것이다. 예를 들면 user account object의 First Name은 들어 있어도, Last Name 이나 logon name은 들어 있지 않은 것이다.

 

4. 물리적 구조의 구성요소

 

Active Directory는 논리 구조와 물리 구조로 나누어 접근해 볼 수 있다. 앞장에서의 논리구조와는 달리 Active Directory는 Site내에서 domain controller를 포함하는 site topology 를 구성하여 하나의 물리적 디렉토리 구조를 이룬다.

 

Sites
Site란 Active Directory server가 물리적으로 위치하는 장소 정도로 이해하면 된다. Administrators는 신뢰성 있고 아주 빠른 LAN 네트워크 망에 있는 여러 서버들을 묶어서 Site를 만든다. 여기서 신뢰성 있고 아주 빠른 LAN 네트워크가 필요한 까닭은 Site내의 서버 끼리 일어나는 복제 작업에 따른 네트워크 트래픽을 감당해야 하기 때문이다. Site는 서버나, 컴퓨터, 프린터, 팩스 등과 같은 하드웨어를 포함한다. IP 네트워크의 서브 넷을 Site로 만들게 되면 관리자가 Active Directory를 설정하거나 관리하기가 용이해진다.

Site를 만들 때 고려해야 하는 것은
 1. 복제 트래픽이 원할 하게 전송될 것
 2. 사용자가 domain controller에 신뢰성 있고 아주 빠른 LAN 망으로 접속할 수 있게 할 것.
 3. 한 Site는 여러 domain의 여러 domain controller를 포함할 수 있고, 한 domain의 여러 domain controller는 여러 site에 포함될 수 있다.

 

Site는 이름영역(namespace)에 속하지 않는다. Site topology정보나 그 구조에 관한 사항은 directory에 별개로 저장된다.

 

Site Topology
Site Topology는 기업의 전 네트워크에 site를 어떻게 분산 배치 할 것인가를 기술하고 있다. 한 site에 최소 하나의 domain controller를 두도록 설계하는 것이 좋다.

 

Domain Controllers
Domain controller란 domain directory를 업데이트 할 수 있는 복사본을 가지고 있는 서버를 말한다. 모든 domain controller는 계층적 구조가 아닌 동등한 관계를 유지하기 때문에 NT 4.0 이전 버전에 있었던 primary나 backup domain controller라는 개념은 더 이상 사용하지 않는다.

 

5. 물리적 구조 내에서의 동작

 

Site를 이루는 물리적 구성 요소와 domain controller가 구성되면 이는 Active Directory운용에 함께 어울려 동작한다. 이 동작에는 디렉토리 복제, Global catalog server 업데이트, Directory 확장과 성능의 최적화를 위한 directory저장 조직의 개편 등이 포함된다

 

복제(Replication)
Directory에 변경이 생기면 이는 바로 다른 domain controller에게도 복제가 일어난다. 그리고 domain내에 새 서버가 설치될 때에도 domain directory는 자동으로 이 새로 설치되는 서버에 복제가 되는 것이다.
Active Directory는 multi-master replication을 한다. 

Replication이 됨으로써 다음과 같은 두 가지 이점이 있다. 
 1. 서버의 장애로 인해 디렉토리 데이터에 손상이 가더라도 다른 서버에서 읽을 수 있다.
 2. 복제된 디렉토리가 네트워크 전반에 걸쳐 있기 때문에 각 사용자의 액세스가 분산되어 로드를 줄일 수 있다.
복제가 일어나게 되면 이 변경 사항이 Global catalog server에도 복제가 된다.

 

물리 구조에서의 Global catalog server의 역할

Global catalog server는 domain controller가 만들어 질 때에 자동으로 만들어 진다. Active Directory의 부분 복제 분이 domain controller에 있게 된다. 이것이 가능한 것은 Active Directory가 정보와 자원을 저장하기 위해 partition을 사용하기 때문이다.

 

Partitions
Partitions은 디렉토리 데이터의 서브 셋을 담고 있는 물리적 저장 컨테이너 이다. Active Directory는 partition에 각 domain의 디렉토리 정보를 DN별로 분리 저장한다. Active Directory의 저장 컨테이너(container)는 domain이나 OU가 될 수 있다. Global catalog server는 DN을 보면 해당 object가 있는 partition의 복제 본이 어디 있는지를 알 수 있기 때문에 object를 쉽게 찾을 수 있다.

 

Naming context
Naming context란 디렉토리의 연속되는 서브 트리이며 복제의 단위가 된다. 한 partition이 하나의 naming context이다. Active Directory에서는 하나의 서버가 다음과 같이 최소 3 개의 naming context를 가진다. 
 1. Configuration: Sites, services, partition과 schema에 대한 물리적 데이터를 저장한다. 
 2. Domain naming: domain directory 데이터를 포함하는 복제의 기본 단위이다. 
 3. Schema: 전 Active Directory에 대한 Schema를 저장한다. 

복제(replication)가 일어 날 때 마다 이들 naming context도 복제된다.

 

6. Active Directory Security 특징

 

Active Directory를 관리하고 액세스하는 것은 엄격한 보안 관리를 통해서 제어된다. 이 보안 관리를 위해 다음과 같이 4 가지 기능이 있다.

 

Access Control List
Active Directory내의 각 object에는 해당 object를 누가 이 object를 어떤 퍼미션으로 액세스 할 수 있지를 통제할 수 있는 Access Control List(ACL)이 있다. 이 ACL의 적용 대상은 object 뿐만 아니라, object attribute과 object classes도 액세스 하는 것을 통제한다.

 

Delegation(권한 위임)
Delegation이란 Administrators가 특정 개인이나 그룹에게 컨테이너나 서브트리에 대한 특정 퍼미션을 주어서 이를 관리하게 할 수 있는 것을 말한다.

 

Inheritance (상속)
상속(Inheritance)이란 컨테이너 object에 대한 ACE(Access Control Entry)을 child container에 있는 object에게도 그대로 세습하여 적용하는 것을 말한다.

 

Trust Relationships
한 domain에 있는 사용자가 다른 domain에 있는 자원을 액세스 하려면 해당 domain사이에는 trust relationship이 이루어져야 한다. 이 trust relationship은 schema, configuration 그리고 global catalog server를 공유한다는 것을 의미한다.
이 trust relationship에는 다음과 같이 transitive trust와 explicit trust가 있다.

 

Transitive Trusts
Domain이 만들어 져서 tree에 포함 될 때에 이 transitive trust가 자동으로 설정된다. Transitive trust란 domain간에 서로 양방향 신뢰관계(trust relationship)가 설립되는 것을 말한다. 이는 forest 에서도 일정한 퍼미션만 주어진다면 사용자는 어떤 자원에도 액세스할 수 있도록 하기 위함이다. 
이 Transitive Trust는 Kerberos 버전 5 프로토콜을 사용해서 사용자 인증을 한다. 

Transitive trust를 다른 용어로 implicit trust라고도 하는 데, 이는 domain A가domain B를 trust하고, domain B가 domain C를 trust할 경우에, domain A는 자동으로 domain C를 trust하는 관계가 되는 것을 의미한다.

 

Explicit Trusts
Explicit trust란 단 방향으로 신뢰가 설정되는 경우이다. Domain A가 domain B를 trust할 때에는 domain B의 사용자가 domain A의 자원을 액세스 할 수 있다. 그 반대는 안 된다. Forest 간에는 explicit trust가 설정된다.

 

반응형

'IT이야기 > 통신프로토콜종류' 카테고리의 다른 글

MIME 타입을 알아보자  (0) 2021.07.06
통신프로토콜 종류  (0) 2021.02.08

댓글

Designed by JB FACTORY