Kiến trúc Active Directory
Các đặc trưng của Active Directory có thể được nhóm theo các phần sau:
- Dữ liệu trong Active Directory được nhóm theo bậc (hierarchically). các đối
tượng có thể được lưu trữ trong các đối tượng chứa khác.thay vì có 1 danh sách người sử
dụng lớn độc lập, những người sử dụng có thể được nhóm vào trong một thể thống nhất.1
thể thống nhất có thể chứa thể thồng nhất khác, vì vậy ta có thể xây d
ựng 1 cây.
- Active Directory sử dụng 1 multi-master replication .trong các domain window
NT4 domain controler chính, PDC, là chủ.Trong window 2000 với Active Directory
mỗi domain controller,DC,là chủ.nếu PDC trong winnt 4 domain bị rớt, không người sử
dụng nào có thể thay đổi password;người quản trị chỉ có thể cập nhật người sử dụng khi
PDC được khôi phục và chạy.với Active Directory , việc cập nhật có thể ứng dụng trên
bất kì DC nào.mô hình này linh hoạt hơn, vì việc cập nhật có thể xảy ra trên nhữ
ng server
khác nhau.khuyết điểm của mô hình này là việc sao chép phức tạp hơn.
- Replication topology thì linh hoạt, để hổ trợ việc sao chép trên các đường truyền
chậm trong WANs.cách dữ liệu đưọc sao chép được tinh chỉnh bởi người quản trị
domain.
- Active Directory hổ trợ các tiêu chuẩn mở.LDAP, Ligthweigth Directory Access
Protocol, là một trong những tiêu chuẩn mà có thể được dùng để truy nhập dữ liệu trong
Active Directory.LDAP là 1 chuẩn internet mà có thể được sử dụng để truy nhập nhiề
u
dịch vụ thư mục khác nhau.LDAP API có thể đuợc dùng để truy nhập Active Directory
bằng ngôn ngữ C.giao diện lập trình của Microsoft cho dịch vụ thư mục là ADSI, Active
Directory Service Interface.điều này tất nhiên không phải là 1 chuẩn mở.trái với LDAP
API, ADSI có khả năng truy nhập tất cả đặc tính của Active Directory,1 chuẩn khác mà
được dùng trong Active Directory là Kerberos,mà được dùng cho việc xác nhận.dịch vụ
Window 2000 Kerberos cũng có thể được dùng để xác nhận các Client của Unix.
- Vớ
i Active Directory ta có thể có 1 sự bảo mật tốt ( fine-grained security ).mỗi
đối tượng lưu trữ trong Active Directory có thể có 1 danh sách điều khiển truy nhập được
kết hợp mà định nghĩa ai có thể làm gì với đối tượng đó.
Các đối tượng trong thư mục có kiểu.nghĩa là kiểu trong 1 đối tượng được định nghĩa 1
cách chính xác,không thuộc tính nào mà không được chỉ định có thể được thêm vào đối
tượng. trong Schema, các kiểu
đối tượng giống như là 1 phần của đối tượng được định
nghĩa.các thuộc tính có thể là bắt buộc hay tuỳ chọn
Khái niệm Active Directory
Trước khi lập trình Active Directory, ta cần bắt đầu với 1 số thuật ngữ và định nghĩa cơ
bản
Đối tượng
Ta lưu trữ các đối tượng trong Active Directory.mỗi đối tượng tham chiếu đến thứ gì đó
như là người sử
dụng, máy in, 1 chia sẽ mạng. các đối tượng có những thuộc tính bắt
buộc hay tuỳ chọn mà mô tả chúng. ví dụ thuộc tính của ngưòi sử dụng có thể là tên, địa
chỉ email,số điện thọai
Hình sau 1 đối tượng chứa gọi là Wrox Press mà chứa vài đối tượng khác nhau : 2 đối
tượng sử dụng, 1 đối tượng hợp đồng , 1 đối tượng máy in,và 1 đố tượng nhóm người sử
dụng:
Schema
Mỗi đối tượng là 1 thể hiện của 1 lớp mà được định nghĩa trong Schema. schema định
nghĩa các kiểu và tự nó lưu trữ trong các đối tượng trong Active attributeSchema. các
kiểu của đối tượng được định nghĩa trong classSchema,chi tiết thuộc tính nào là bắt buộc
hoặc tuỳ chọn mà
đối tượng có,attributeSchema định nghĩa 1 thuộc tính trông như thế
nào,và cú pháp được cho phép trong 1 thuộc tính chỉ định là gì.
Ta có thể định nghĩa các thuộc tính và các kiểu tuỳ chọn, và thêm chúng đến schema. tuy
nhiên cần biết rằng 1 kiểu schema mới có thể không bao giờ được bỏ từ Active
Directory.có thể đánh dấu nó không hoạt động để các đối tượng tồn tại của kiểu đó không
thể bỏ các lớp hay thuộc tính mà được định ngh
ĩa trong schema.người quản trị Win 2000
không có đủ quyền để tạo ra 1 mục schema mới ,mà cần phải có 1 người quản trị domain
Win 2000 làm việc này.
Cấu hình
Bên cạnh việc định nghĩa các đối tượng và các lớp mà được lưu như là đối tượng, cấu
hình của Active Directory được lưu trong chính Active Directory.cấu hình của Active
Directory lưu thông tin về tất cả các site, như là khoảng thời gian giữa các lần sao chép,
đưọc thiết lập b
ởi người quản trị hệ thống. cấu hình được lưu trong Active Directory , vì
thế ta có thể truy nhập thông tin cấu hình giống như là truy nhập tất cả các đối tượng khác
trong Active Directory.
Active Directory domain
1 domain là 1 ranh giới bảo mật của 1 mạng windows.trong Active Directory domain ,
các đối tượng được lưu trữ theo 1 cấu trúc có thứ tự.Active Directory đưọc tạo thành từ 1
hay nhiều domain.cấu trúc thứ tự của các đối tượng trong domain trình bày trong hình
bên dưới,mà 1 domain được trình bày bởi 1 hình tam giác.các
đối tưọng chứa như là
users, computers,books có thể lưu các đối tượng khác.mỗi hình oval trong hình chỉ 1 đối
tượng.với các dòng kẻ giữa các đối tượng trình bày mối quan hệ cha con. ví dụ ,books là
cha của .NET và Java, Pro C# ,Beg C# và ASP.NET là con của đối tưọng .NET
Domain controller
1 domain đơn lẻ có thể có nhiều domain controller, mỗi các lưu tất cả các đối tượng trong
domain .không có cái nào làm chủ, và tất cả DC đểu bình đẳng như nhau, ta có mô hình
multi-master. các đối tượng được sao chép giữa các server bên trong domain
Site
1 site là 1 vị trí trong mạng mà giữ ít nhất 1 DC. nếu ta có nhiều vị trí trong xí nghiệp, mà
được kết nối trên đường truyền chậm, ta có thể dùng nhiều site trong 1 domain đơn.vì lí
do sao lưu hay khả năng co giãn mà mỗi site có thể có 1 hay nhiều DC đang chạy. Việ
c
sao chép giữa các server trong 1 site có thể xảy ra trong các khoảng thời gian ngắn hơn
nếu kết nối nhanh hơn.Việc sao chép được chỉnh để xuất hiện vào khoảng thời gian lớn
hơn giữa các server ở bên kia site , tuỳ thuộc vào tốc độ mạng, tất nhiên người quản trị có
thể chỉnh điều này.
Domain tree
Nhiều domain có thể đưọc kết nối bởi mối quan hệ đáng tin cậy. nhữ
ng domain này chia
sẻ 1 schema chung , 1 cấu hình chung và 1 global catalog . 1 schema chung và 1 cấu hình
chung nghĩa là 1 dữ liệu được sao chép khắp các domain.
Cây domain chia sẻ cùng lớp và thuộc tính schema.các đối tượng không được sao chép
trên toàn domain
Các domain được kết nối theo dạng cây domain. các domain trong cây domain có không
gian tên theo câu trúc và liên hệ với nhau. nghĩa là tên domain của domain con là tên của
domain con kết thêm với tên domain cha. giữa các domain ,thì giao thức Kerberos được
thiết lập.
Ví dụ , ta có domain gốc wrox.com, mà là cha của india.wrox.com và uk.wrox.com
Forest
Nhiều cây domain nối với nhau dùng chung schema, chung cấu hình,và 1 global catalog
không có không gian tên gắn kết nhau, đưọc gọi là rừng.1 rừng là 1 t
ập cây domain, 1
rừng được dùng nếu công ty có 1 công ty con nằm ở 1 tên domain khác nên được sử
dụng. ta nói asptoday.com độc lập với domain wrox.com, nhưng nó có thể có sự quản lý
chung,và có thể cho người sử dụng từ asptoday.com truy nhập vào các tài nguyên từ
domain wrox.com.
Global catalog ( GC )
Việc tìm kiếm 1 đối tượng có thể phải dàn trải ra ở nhiều domain.nếu ta tìm 1 đối tượng
người dùng với 1 vài thuộc tính ta phải tìm trên mỗi domain. bắt đầu với wrox.com , sau
đó đến uk.wrox.com và india.wrox.com; nếu đường truyền chậm ta phải tìm kiếm trong 1
khoảng thời gian khá lâu.
Để tìm kiếm nhanh hơn, tất cả các đối tượng được sao chép vào global catalog.GC.GC
được sao chép vào mỗi domain trong 1 rừng.có ít nhất là 1 server trong mỗi domain giữ 1
GC. vì lí do hiệu suất ,ta có thể có nhi
ều hơn 1 GC server trong 1 domain.dùng GC,việc
tìm kiếm 1 đối tượng có thể tìm tất cả các đối tượng chỉ trên 1 server đơn.
GC là 1 vùng cache chỉ đọc của tất cả các đối tượng ,mà chỉ có thể sử dụng trong tìm
kiếm; các domain controller phải được cập nhật.
Không phải tất cả các thuộc tính đều được lưu trong GC. ta có thể định nghĩa có hay
không 1 thuộc tính được lưu với 1 đối tượng. quyết định này tuỳ thu
ộc vào việc nó có hay
được dùng thường xuyên trong tìm kiếm hay không. 1 hình ảnh của người sử dụng không
hữu ích trong 1 GC.bởi vì ta sẽ không bao giờ tìm 1 bức ảnh. số điện thọai thì hữu ích
hơn.ta cũng có thể định nghĩa 1 thuộc tính được lập chỉ mục để truy vấn nhanh hơn.
Replecation ( sự sao chép)
Active Directory dùng kiến trúc multi-master server. việc cập nhật có thể và sẽ xảy ra
đối với mọi domain controller trong domain.Replication latency định ngh
ĩa khoảng thời
gian 1 lần cập nhật được thi hành.
- Thông báo thay đổi khả năng cấu hình xảy ra, mặc định là mỗi 5 phút bên trong 1
site nếu vài thuộc tính thay đổi.DC nơi 1 thay đổi xuất hiện thông báo đến 1 server sau
các server khác trong mỗi 30 giây,vì thế DC thứ tư có thể nhận thông báo thay đổi sau 7
phút.thời gian thông báo thay đổi, mặc định, xuyên suốt các site đưọc thiết lập là 180
phút.
- Nếu không có thay đổi, sao chép xuất hiện mỗi 60 phút bên trong 1 site.điều này
đảm bảo không 1 thông báo thay
đổi nào bị bỏ sót.
Trong 1 sao chép chỉ có những thay đổi được sao chép đến DC.với mỗi thay đổi của 1
thuộc tính , 1 bản số ( USN,cập nhật số liên tếp) và tem thời gian được ghi lại.điều này
được sử dụng để giúp cho việc giải quyết xung đột nếu cập nhật xảy ra đối với cùng 1
thuộc tính trên những server khác nhau.
Ví dụ : số điện thọai của John Doe có số USN 47. giá trị này đượ
c sao chép đến tất cả các
DC.1 người quản trị hệ thống thay đổi số điện thoại. việc thay đổi xuất hiện trên server
DC1. số USN mới của thuộc tính này trên server DC1 là 48,trong khi các DC khác vẫn
giữ số 47. nếu ai đó vẫn đang đọc thuộc tính này, giá trị cũ có thể được đọc cho đến khi
việc sao chép đến tất cả các domain controller xảy ra.
Bây giờ nếu 1 người quản trị khác thay đổi thu
ộc tính số điện thọai và ở đây 1 DC khác
đưọc chọn bởi vì người quản trị nhận 1 đáp ứng nhanh hơn từ server DC2. USN của
thuộc tính này trên server DC2 cũng thay đổi thành 48.
Vào khoảng thơì gian thông báo,thông báo xảy ra bởi vì USN của thuộc tính thay đổi.và
lần cuối cùng việc sao chép xuất hiện là với 1 USN có giá trị 47. cơ chế sao chép thăm dò
thấy server DC1 và DC2 đều có USN của thuộc tính này là 48. server nào thắng không
quan trọng,nhưng sẽ có 1 server thắng.để giải quyết xung đột này tem thời gian được
dùng.bởi vì thay đổi xảy ra sau trên DC2 nên giá trị được lưu trong domain controller
DC2 sẽ được sao chép.
Đặc tính của dữ liệu trong Active Directory
Active Directory không thay thế 1cơ sở dữ liệu quan hệ hay Registry - nhưng loại dữ liệu
nào ta sẽ lưu trong đó ?
- Ta có dữ liệu có cấu trúc (hierarchical data ) trong Active Directory. ta có thể có
các đối tượng chứa mà lưu những đối tượ
ng chứa khác và cũng là các đối tượng.
- Dữ liệu nên được sử dụng dạng read-mostly. bởi việc sao chép xuất hiện vào các
khảng thời gian cố định,ta không thể chắc rằng ta sẽ đọc dữ liệu được cập nhật chưa.
trong ứng dụng ta phải nhận ra rằng thông tin ta đọc có thể không phải là thông tin mới
nhất.
- Dữ liệu nên là global đối với enterprise, điều này bởi vì việ
c thêm 1 kiểu dữ liệu
mới đến schema sẽ sao chép đến tất cả các server trong enterprise. đối với các kiểu dữ
liệu mà chỉ được quan tâm bởi 1 số nhỏ người dùng , người quản trị domain enterprise sẽ
không thường xuyên cài đặt các kiểu schema mới.
- Dữ liệu đưọc lưu trữ phải có kích thước hợp lí bởi vấn đề sao chép. nếu dữ liệu là
100k,sẽ tốt nếu nó được lưu trong Active Directory và chỉ
thay đổi 1 lần 1 tuần . tuy
nhiên nếu dữ liệu thay đổi hàng giờ, thì kích thước này là quá lớn. phải luôn nghĩ đến
việc sao chép trên nhiều server khác nhau.nếu có dữ liệu lớn thì có thể chỉ lưu liên kết
của nó vào Active Directory, và chứa dữ liệu đó trong nơi khác.
Schema
Schema định nghĩa các kiểu của các đối tượng, thuộc tính bắt buộc hay tuỳ chọn, và cú
pháp và ràng buộc trên các thuộc tính.trong schema phân biệt giữa đối tượng lớ
p schema
và thuộc tính Schema.1 lớp là tập hợp các thuộc tính .với các lớp , kế thừa đơn được hổ
trợ.như ta thấy trong biểu đồ lớp sau , lớp user dẫn xuất từ lớp
organizationalPerson,organizationalPerson là lớp con của person ,và lớp cơ sở là top. lớp
schema mà định nghĩa 1 lớp mô tả các thuộc tính với thuộc tính systemMayContain.
Trong lớp gốc top ta có thể thấy mỗi đối tượng có thể có chung thuộc tính tên ( cn
),displayname, objectGUID, whenChanged, và whenCreated. lớp person dẫ
n xuất từ
top.1 đối tượng person cũng có 1 userPassword và 1 telephonenumber.
OrganizationalPerson dẫn xuất từ person. thêm vào đó thuộc tính của person có
manager,department và company; 1 user có các thuộc tính thêm cần để đăng nhập vào hệ
thống.
. nhữ
ng domain này chia
sẻ 1 schema chung , 1 cấu hình chung và 1 global catalog . 1 schema chung và 1 cấu hình
chung nghĩa là 1 dữ liệu được sao chép khắp. domain
1 domain là 1 ranh giới bảo mật của 1 mạng windows.trong Active Directory domain ,
các đối tượng được lưu trữ theo 1 cấu trúc có thứ tự.Active