본문 바로가기
클라우드노트/인증보안

MS Active Directory 란?

by 테크한스 2023. 6. 1.

Active Directory는 네트워크의 개체에 대한 정보를 저장하고 관리자 및 사용자가 이러한 정보를 쉽게 찾아서 사용할 수 있게 해줍니다. Active Directory는 논리적이고 계층적인 디렉터리 정보 구성을 위한 기초로 구조화된 데이터 저장소를 사용합니다.

디렉터리라고도 하는 이 데이터 저장소에는 Active Directory 개체에 대한 정보가 포함되어 있습니다. 이러한 개체에는 일반적으로 서버, 볼륨, 프린터, 네트워크 사용자 및 컴퓨터 계정과 같은 공유 리소스가 포함됩니다. 

 

보안은 로그온 인증 및 디렉터리의 개체에 대한 액세스 제어를 통해 Active Directory와 통합됩니다. 관리자는 단일 네트워크 로그온을 통해 네트워크에서 디렉터리 데이터 및 조직을 관리할 수 있으며, 권한 있는 네트워크 사용자는 네트워크의 모든 위치에서 리소스에 액세스할 수 있습니다. 정책 기반 관리를 사용하면 가장 복잡한 네트워크조차 쉽게 관리할 수 있습니다

 

Active Directory에는 다음도 포함됩니다.

  • 디렉터리에 포함된 개체 및 특성의 클래스, 이러한 개체의 인스턴스에 대한 제약 조건 및 제한 및 이름 형식을 정의하는 규칙 집합인 스키마입니다. 
  • 디렉터리의 모든 개체에 대한 정보를 포함하는 글로벌 카탈로그 입니다. 이렇게 하면 사용자와 관리자가 실제로 데이터를 포함하는 디렉터리의 도메인에 관계없이 디렉터리 정보를 찾을 수 있습니다.
  • 네트워크 사용자 또는 애플리케이션에서 개체 및 해당 속성을 게시하고 찾을 수 있도록 하는 쿼리 및 인덱스 메커니즘입니다.
  • 네트워크를 통해 디렉터리 데이터를 배포하는 복제 서비스 입니다. 도메인의 모든 도메인 컨트롤러는 복제에 참여하고 해당 도메인에 대한 모든 디렉터리 정보의 전체 복사본을 포함합니다. 디렉터리 데이터에 대한 변경 내용은 모두 도메인의 모든 도메인 컨트롤러에 복제됩니다.

 

Active Directory는 회사 직원들의 계정 정보(ID, Password)와 컴퓨터에 대한 정보, 그리고 회사에서 강제하고자 하는 정책들(예를 들어 패스워드를 최소 8자리에 30일 마다 변경한다 든지, 컴퓨터를 5분이상 사용하지 않으면 화면 보호기가 실행된다 든지 등)에 대한 정보를 저장하고 있는 일종의 데이터베이스라고 생각하시면 됩니다.
데이터베이스라고 하면 대부분 MSSQL이나 MySQL과 같은 것을 생각하십니다. Active Directory는 일반적인 데이터베이스와는 조금 다른 파일 타입의 데이터베이스이고, 암호화 되어 저장되어 있기 때문에 메모장이나 텍스트 에디터로는 열어볼 수 없습니다.

 

(Q&A)

Q. 내 컴퓨터에 AD가 있습니까?

아니요. 주 AD 서비스인 AD DS(Active Directory Domain Services)는 윈도우 서버 운영체제의 기능입니다. 데스크톱, 노트북을 비롯해 일반적인 윈도우 버전을 구동하는 컴퓨터는 AD 환경의 일부가 될 수 있습니다.

AD DS를 실행하는 서비스를 도메인 컨트롤러(Domain Controller, DC)라고 합니다(도메인이 무엇인지에 대해서는 잠시 후에 설명). 조직에는 일반적으로 여러 개의 DC가 있으며, 각 DC에는 전체 도메인의 디렉토리 복사본이 있습니다. 한 도메인 컨트롤러에서 디렉토리가 변경되면(예를 들어, 사용자가 비밀번호를 변경하거나, 비밀번호 오류 횟수 초과로 사용자 계정이 잠기는 경우 등) 다른 도메인 컨트롤러로 변경 사항이 복제되어 모든 도메인 컨트롤러가 최신 상태를 유지합니다.

AD에 관해 이야기하는 김에 덧붙이자면, AD는 온프레미스 마이크로소프트 환경 전용입니다. 클라우드의 마이크로소프트 환경은 온프레미스 AD와 같은 용도로 애저 AD(Azure Active Directory)를 사용합니다. AD와 애저 AD는 별개지만 조직에 온프레미스 IT 환경과 클라우드 IT 환경이 혼재된 경우(하이브리드 환경) 일정 부분 연계해서 사용할 수 있습니다. 

Q. AD는 어떤 구조로 구성됩니까?

AD에는 크게 도메인(Domain), 트리(Trees), 포리스트(Forests)의 세 가지 계층이 있습니다. 도메인은 관련된 사용자, 컴퓨터 및 기타 AD 객체(예를 들어, 회사의 시카고 지사를 위한 모든 AD 객체)로 구성되는 그룹입니다. 여러 개의 도메인을 트리로 결합할 수 있으며, 여러 개의 트리를 포리스트로 그룹화할 수 있습니다. 여기서 중요한 점은 다음과 같습니다.

● 도메인은 관리 경계입니다. 특정 도메인을 위한 객체는 하나의 데이터베이스에 저장되며 함께 관리가 가능합니다.

● 포리스트는 보안 경계입니다. 서로 다른 포리스트의 객체는 각 포리스트의 관리자가 해당 객체간 신뢰를 형성하지 않는 한 상호 작용할 수 없습니다. 예를 들어, 상호 독립된 여러 개의 사업부가 있는 경우 여러 개의 포리스트를 만드는 것이 좋습니다.

이번 시리즈에서는 관리 작업이 수행되는 AD 도메인을 주로 다룹니다. 조직은 도메인의 개별 객체와 함께 대규모 재해 복구도 계획해야 하는 만큼 AD 관리에 대한 글의 백업 및 복구 섹션에서 포리스트에 대해서도 조금 이야기하겠습니다.

Q. AD 데이터베이스 안에는 무엇이 있습니까?

AD 데이터베이스(디렉토리)에는 도메인의 AD 객체(AD objects)에 대한 정보가 포함됩니다. 보편적인 AD 객체 유형으로는 사용자, 컴퓨터, 애플리케이션, 프린터, 공유 폴더 등이 있습니다. 일부 객체는 다른 객체를 포함할 수 있습니다(AD를 ‘계층적’이라고 말하는 이유). 특히, 앞으로 이어질 글에서는 조직이 AD 객체를 조직 단위(organizational units, OU)로 구성해서 관리를 간소화하고 사용자를 그룹으로 묶어 보안 능률을 높이는 방법을 살펴볼 것입니다. 이러한 OU와 그룹은 그 자체로 디렉토리에 저장되는 객체입니다.

객체에는 특성(attributes)이 있습니다. 명확하게 드러나는 특성도 있고, 잘 드러나지 않는 특성도 있습니다. 예를 들어, 사용자 객체는 일반적으로 그 사람의 이름, 비밀번호, 부서, 이메일 주소와 같은 특성 외에 고유한 전역 코유 식별자(Gobally Unique Identifier, GUID)와 보안 식별자(Security Identifier, SID), 마지막 로그온 시간, 그룹 멤버십과 같은 특성도 포함합니다.

데이터베이스는 구조적입니다. 즉, 저장되는 데이터의 유형과 데이터를 조직화하는 방법을 좌우하는 설계가 존재합니다. 이 설계를 스키마(schema)라고 합니다. AD도 예외는 아닙니다. AD 스키마에는 AD 포리스트에 생성 가능한 모든 객체 클래스의 공식적인 정의와 AD 객체에 존재할 수 있는 모든 특성이 포함됩니다. AD에는 기본 스키마가 제공되지만 관리자가 비즈니스 요구에 맞게 기본 스키마를 수정할 수 있습니다. 중요한 점은 사전에 신중하게 스키마를 계획해야 한다는 것입니다. AD는 인증 및 승인에서 핵심적인 역할을 하므로 나중에 AD 데이터베이스 스키마를 변경하려면 비즈니스에 큰 중단이 발생하기 때문입니다.

 

 

(추가)

AD 의 개념을 다시 보자면

예를 들면 사용자 계정, 컴퓨터 계정 등이 있을 수 있습니다.

 

결국 한 컴퓨터에서 서버에 있는 파일에 접근을 하고자 한다면, 사용자계정이 서버의 Directory Database 에 등록이 되어 있어야 접근이 가 능하다는 것을 의미한다. 이러한 Directory 를 효율적으로 관리하기 위해 MS 에서는 네트워크 관리모델을 두 가지 제공합니다.

 

 

내 컴퓨터 속성에 들어가서 위 그림과 같은 창을 본 적이 있을 것이다. 그림과 같이 MS 에서는 WORKGROUP 과 DOMAIN 이라는 모델을 제공한다. 두 모델의 가장 큰 차이점은 앞서 말한 Directory Database 의 위치라고 할 수 있다. 그렇다면 두 모델의 차이점을 표를 통해 알아보도 록 하겠다.

 

 

이 중 AD 는 Domain 모델을 사용하는 기능이다. 이제 MS 의 네트워크모델을 알았으니 AD 에 대해 설명하겠습니다.

 

AD 는 MS 에서 개발한 Windows 환경에서 사용하기 위한 LDAP(LightWeight Directory Access Protocol) 디렉터리 서비스(Directory Service)입니다.

 

디렉터리 서비스라는 용어자체가 조금 생소할 수 있는데 사전적 의미로는 다음과 같다.

디렉터리 서비스 – 네트워크 내에 분산되어 있는 디렉터리를 일원적으로 관리하여, 디렉터리에 수용되어 있는 정보의 검색, 변경, 추가, 삭제 등 디렉터리 사용자나 사용자 프로그램 이 요구하는 서비스를 제공하는 기능 단위

 

쉽게 말해 네트워크 내에 여러 디렉터리(사용자에 관한 데이터, 프린터, 서버, 데이터베이스, 그 룹, 컴퓨터, 보안 정책등과 같은 Object)들을 모아 중앙에서 관리할 수 있고 동시에 여러 사용자 들이 디렉터리에 접근하여 사용할 수 있게 서비스를 제공해 주는 것을 말한다.

 

이런 디렉터리 서비스가 하는 일은 다음과 같다.

 

1. 조직이나 회사의 확장에 따라 같이 확장할 수 있는 정보 소스의 역할

2. 관리자가 한 컴퓨터에서 전체 네트워크의 정보를 입력하고 관리할 수 있는 기능

3. 외부에서 접근하는 허가 받지 않은 사용자로부터 정보를 안전하게 보관하기 위해 관리자가 정의하는 보안 강화

4. 네트워크의 많은 컴퓨터 간에 디렉터리 분산

5. 더 많은 사용자들이 사용할 수 있고, 에러 발생을 줄이기 위해 복제 사용

6. 많은 수의 개체를 저장할 수 있도록 여러 개의 저장소로 디렉터리를 분할

 

디렉터리 서비스는 AD 이외에도 많이 있지만 AD 는 위와 같은 디렉터리 서비스의 기본 기능에 충실할 뿐만 아니라 그룹 정책(Group Policy)와 개발 인증에 대해 뛰어나 큰 기업의 네트워크 환경을 관리할 수 있다

 

 

(참고)

Active Directory Structure and Storage Technologies

Administrators use Active Directory to store and organize objects on a network (such as users, computers, devices, and so on) into a secure hierarchical containment structure that is known as the logical structure. Although the logical structure of Active Directory is a hierarchical organization of all users, computers, and other physical resources, the forest and domain form the basis of the logical structure. Forests, which are the security boundaries of the logical structure, can be structured to provide data and service autonomy and isolation in an organization in ways that can both reflect site and group identities and remove dependencies on the physical topology.

 

Active Directory Structure and Storage Architecture

The Active Directory structure and storage architecture consists of four parts:

  • Active Directory domains and forests. Forests, domains, and organizational units (OUs) make up the core elements of the Active Directory logical structure. A forest defines a single directory and represents a security boundary. Forests contain domains.
  • Domain Name System (DNS) support for Active Directory. DNS provides a name resolution service for domain controller location and a hierarchical design that Active Directory can use to provide a naming convention that can reflect organizational structure.
  • Schema. The schema provides object definitions that are used to create the objects that are stored in the directory.
  • Data store. The data store is the portion of the directory that manages the storage and retrieval of data on each domain controller.
  • The following figure illustrates the Active Directory data structure and storage architecture

Active Directory Data Structure and Storage Architecture

Active Directory Domains and Forests

Domains partition the directory into smaller sections within a single forest. This partitioning results in more control over how data is replicated so that an efficient replication topology can be established and network bandwidth is not wasted by replicating data where it is not required. OUs make it possible to group resources in a domain for management purposes, such as applying Group Policy or delegating control to administrators.

The following figure illustrates the relationships of OUs, domains, and forests in the logical structure architecture.

 

Logical Structure Architecture

DNS Support for Active Directory

Active Directory uses DNS as its domain controller location mechanism. When any of the principal Active Directory operations, such as authentication, updating, or searching, is performed, domain joined computers use DNS to locate Active Directory domain controllers, and these domain controllers use DNS to locate each other. For example, when a network user with an Active Directory user account logs on to an Active Directory domain, the user’s computer uses DNS to locate a domain controller for the Active Directory domain to which the user wants to log on.

To log on to a network that consists of an Active Directory forest, a client workstation must first be able to locate a nearby domain controller. The domain controller is necessary for initial authentication of both the workstation and the user and for subsequent authorization of the user for the files and resources to which the user needs access. The support that is provided to Active Directory by DNS enables a client workstation to locate a domain controller.

 

Active Directory Schema

The Active Directory schema contains definitions for all the objects that are used to store information in the directory. There is one schema per forest. However, a copy of the schema exists on every domain controller in the forest. This way, every domain controller has quick access to any object definition that it might need, and every domain controller uses the same definition when it creates a given object. The data store relies on the schema to provide object definitions, and the data store uses those definitions to enforce data integrity. The result is that all objects are created uniformly, and it does not matter which domain controller creates or modifies an object because all domain controllers use the same object definition.

The following figure illustrates the relationship of the schema to the data store in the schema architecture.

 

Schema Architecture

Active Directory Data Store

The Active Directory data store is made up of several components that together provide directory services to directory clients. These components include the following:

  • Four interfaces:
    • Lightweight Directory Access Protocol (LDAP)
    • Replication (REPL) and domain controller management interface
    • Messaging API (MAPI)
    • Security Accounts Manager (SAM)
  • Three service components:
    • Directory System Agent (DSA)
    • The database layer
    • Extensible Storage Engine (ESE)
  • The directory database where the data is actually stored

The following figure illustrates the relationships of these components in the data store architecture.

 

Data Store Architecture

Active Directory Structure and Storage Components

You can define some components for structure and storage in Active Directory, while others are defined by the system and cannot be modified.

  • Forests, domains, and OUs are components that constitute the logical structure of Active Directory. You define them during the installation of Active Directory.
  • DNS support for Active Directory includes components that are used to locate domain controllers and that use DNS naming schemes. Each domain in a forest must adhere to DNS naming schemes, and domains are organized in a root and subordinate domain hierarchy.
  • The schema is a single component that exists inside the directory. The schema contains definitions of the objects that are used to store information in the directory. These object definitions include two primary components: classSchema objects and attributeSchema objects.
  • The data store consists of three layers of components. The first layer provides the interfaces that clients need to access the directory. The second layer provides the services that perform the operations that are associated with reading data from and writing data to the directory database. The third layer is the database itself, which exists as a single file on the hard disk of each domain controller.

 

Active Directory Domains and Forests

The logical structure of Active Directory is a hierarchical structure of Active Directory domains and OUs in a forest. The relationships of the components in the logical structure control access to stored data, and they control how information is replicated between the various domain controllers in the forest. The main components of the Active Directory logical structure are described in the following table.

 

Domain and Forest Components

Component          Description   
Forest A forest is the highest level of the logical structure hierarchy. An Active Directory forest represents a single self-contained directory. A forest is a security boundary, which means that administrators in a forest have complete control over all access to information that is stored inside the forest and to the domain controllers that are used to implement the forest.
Domain Domains partition the information that is stored inside the directory into smaller portions so that the information can be more easily stored on various domain controllers and so that administrators have a greater degree of control over replication. Data that is stored in the directory is replicated throughout the forest from one domain controller to another. Some data that is relevant to the entire forest is replicated to all domain controllers. Other data that is relevant only to a specific domain is replicated only to domain controllers in that particular domain. A good domain design makes it possible to implement an efficient replication topology. This is important because it enables administrators to manage the flow of data across the network, that is, to control how much data is replicated and where that replication traffic takes place.
OU OUs provide a means for administrators to group resources, such as user accounts or computer accounts, so that the resources can be managed as one unit. This makes it much easier to apply Group Policy to multiple computers or to control the access of many users to a single resource. OUs also make it easier to delegate control over resources to various administrators.

DNS Support for Active Directory

In Active Directory, DNS is the means by which directory clients locate, or discover, domain controllers. The primary components of the architecture for DNS support of Active Directory include the domain controller Locator, Active Directory domain names in DNS, and Active Directory DNS objects.

The following table describes the Active Directory components that help directory clients locate nearby domain controllers.

 

Active Directory DNS Support Components

Active Directory/DNS ComponentDescription
Locator Locator, which is implemented in the Net Logon service, enables a client to locate a domain controller. Locator contains Internet Protocol (IP)/DNS–compatible and Windows NT 4.0–compatible locators, which provide interoperability in a mixed Active Directory environment.
Active Directory domain names in DNS Every Active Directory domain has a DNS domain name (for example, cohovineyard.com), and every domain joined computer has a DNS name (for example, server1.cohovineyard.com). Architecturally, domains and computers are represented both as objects in Active Directory and as nodes in DNS.
Active Directory DNS objects When DNS data is stored in Active Directory, each DNS zone is an Active Directory container object (class dnsZone). The dnsZone object contains a DNS node object (class dnsNode) for every unique name in that zone. The dnsNode object has a dnsRecord multivalued attribute that contains a value for every resource record that is associated with that DNS name.

 

Active Directory Schema

Everything that is stored in Active Directory is stored in an object. A definition for every type of object is stored in the schema. The definitions themselves consist of two types of objects: class objects and attribute objects. Classes define groups of attributes that are used to describe common objects. New object definitions are created by combining various class objects and attribute objects to make new combinations that contain the necessary attributes to meet the storage requirements of the new object type. The two main types of object definitions that are stored in the Active Directory schema are described in the following table.

Schema Components

ComponentDescription
classSchema objects classSchema objects are object definitions that are stored in the schema, and they are used to define classes. classSchema objects define groups of attributes that have something in common. For example, an object that is used to store a user account needs to store the user’s logon name, first name, last name, and password. It is possible to create a user class that has a logon name attribute, a first name attribute, a last name attribute, and a password attribute. Anytime a new user account is created, the directory uses the user class as the definition, and every user account object that is created uses those attributes. classSchema objects can be nested to create more complex objects.
attributeSchema objects attributeSchema objects define the individual attributes of a single object. For example, a user account object has a number of attributes that are used to store and define various pieces of data that are related to a user account, such as a logon name attribute and a password attribute. Each of these attributes also has its own attributes that specify the type of data that it stores, the syntax of the data that it stores, and whether or not the attribute is required or optional. The directory service uses attributeSchema objects to store data and verify that the stored data is valid.

Active Directory Data Store

The Active Directory data store is implemented on every domain controller in the forest. The data store consists of components that store and retrieve data inside the directory. The components of the Active Directory data store are described in the following table.

Data Store Components

ComponentDescription
Interfaces (LDAP, REPL, MAPI, SAM) The data store interfaces provide a way for directory clients and other directory servers to communicate with the data store.
DSA (Ntdsa.dll) The DSA (which runs as Ntdsa.dll on each domain controller) provides the interfaces through which directory clients and other directory servers gain access to the directory database. In addition, the DSA enforces directory semantics, maintains the schema, guarantees object identity, and enforces data types on attributes.
Database layer The database layer is an application programming interface (API) that resides in Ntdsa.dll and provides an interface between applications and the directory database to protect the database from direct interaction with applications. Calls from applications are never made directly to the database; they go through the database layer. In addition, because the directory database is flat — with no hierarchical namespace — the database layer provides the database with an abstraction of an object hierarchy.
ESE (Esent.dll) The ESE (which runs as Esent.dll) communicates directly with individual records in the directory database on the basis of an object’s relative distinguished name attribute.
Database files The data store stores directory information in a single database file. In addition, the data store also uses log files, to which it temporarily writes uncommitted transactions.

 

* 출처 : https://learn.microsoft.com/ko-kr/previous-versions/windows/it-pro/windows-server-2003/cc759186(v=ws.10)

'클라우드노트 > 인증보안' 카테고리의 다른 글

DHCP DORA 설명  (0) 2023.06.01
AD의 FSMO (Flexible Single Master Operations) Roles  (0) 2023.06.01

댓글