intTypePromotion=1
ADSENSE

Làm việc với Active DirectoryKiến trúc Active DirectoryCác đặc trưng của Active

Chia sẻ: Lan Lan | Ngày: | Loại File: PDF | Số trang:34

50
lượt xem
12
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'làm việc với active directorykiến trúc active directorycác đặc trưng của active', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Làm việc với Active DirectoryKiến trúc Active DirectoryCác đặc trưng của Active

  1. Làm việc với Active Directory 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
  2. 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.
  3. - 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...
  4. 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
  5. 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
  6. 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ể
  7. 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
  8. 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.
  9. 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.
  10. - 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.
  11. 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
  12. 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
  13. 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.
  14. Làm việc với Active Directory Lập trình Active Directory – Phần 1 Để phát triển chương trình trong Active Directory ta dùng các lớp trong namespace System.DirectoryServices và phải tham chiếu assembly System.DirectoryServices .với các lớp này ta có thể truy vấn các đối tượng ,xem và cập nhật các thuộc tính, tìm các đối tượng và di chuyển các đối tượng đến một chổ chứa đối tượng khác. ta sẽ học các phần sau : - Các lớp trong namespace System.DirectoryServices - Tiến trình kết nối đến Active Directory -
  15. - Lấy các mục trong thư mục, tạo đối tượng mới và cập nhật các mục tồn tại - Tìm kiếm trong Active Directory Các lớp trong System.DirectoryServices - DirectoryEntry : lớp này là lớp chính trong namespace System.DirectoryServices .1 đối tượng của lớp này trình bày 1 đối tượng trong Active Directory lưu trữ.ta dùng lớp này để liên kết đến 1 đối tượng,và để xem và cập nhật thuộc tính. các thuộc tính của đối t ượng được trình bày trong PropertyCollection. mỗi mục trong PropertyCollection có 1 PropertyValueCollection - DirectoryEntries : DirectoryEntries là 1 tập hợp các đối tượng DirectoryEntry.thuộc tính Children của đối tượng DirectoryEntry trả về 1 danh sách các đối tượng trong tập DirectoryEntries DirectorySearcher : lớp này là lớp chính dùng trong việc tìm kếm các đối tượng với thuộc tính đặc trưng. lớp SortOption và kiểu liệt kê SearchScope,SortDirection và ReferalChasingOption có thể được dùng để định nghĩa việc tìm kiếm.kết quả tìm kiếm trong 1 SearchResult hoặc
  16. SearchResultCollection. ta cũng có các đối tượng ResultPropertyCollection và ResultPropertyValueCollection. Binding ( sự liên kết ) Để lấy giá trị của 1 đối tượng trong Active Directory , ta phải kết nối đến Active Directory. tiến trình kết nối gọi là binding.đưòng dẫn của binding có thể là : LDAP://dc01.globalknowledge.net/OU=Marketing, DC=GlobalKnowledge, DC=Com với tiến trình biding ta có thể đặc tả các mục sau: - Protocol đặc tả provider được dùng - Server Name ( tên server ) của domain controller - Port number ( số cổng) của tiến trình server - Distinguished Name ( tên phân biệt ) của đối tượng,để xác định đối tượng ta muốn truy xuất - Username và Password nếu người dùng nếu một tài khoản khác với tài khoản đang chạy cần truy xuất Active Directory
  17. - Kiểu Authentication có thể được đặc tả nếu cần mã hoá Chi tiết các tuỳ chọn này là : Protocol ( giao thức) Phần đầu tiên đặc tả provider ADSI.provider thực thi như là 1 COM server , việc định danh 1 progID có thể đ ược tìm trong Registry trong HKEY_CLASSES_ROT . các provider trong Window 2000 là: LDAP : LDAP server, như là thư mục Exchange và Window 2000 Active Directory server GC: GC được dùng để truy xuất global catalog trong Active Directory.nó được dùng cho các truy vấn nhanh IIS: với provider ADSI cho IIS ta có thể tạo các website mới và quản trị nó trong IIS catalog WinNT : để truy xuất cơ sở dữ liệu người dùng trong các domain Window NT 4 cũ ta có thể dùng provider ADSI trong WinNT .cũng có thể dùng giao thức này để kết nối với domain Window 2000 nhưng ta cũng bị giới hạn đối với các thuộc tính mà có giá trị với NT4 NDS : ProID này được dùng để giao tiếp với các dịch vụ Novell Directory
  18. NWCOMPAT : với NWCOMPAT ta có thể truy xuất các thư mục Novell cũ như là Novell Netware 3.x Server Name Server name là tuỳ chọn nếu ta đăng nhập vào 1 domain Active Directory . không có server name Window 2000 sẽ tìm domain controller 'tốt nhất ' trong domain mà kết hợp với người dùng để kết nối , nếu không có server trong site , domain controller đầu tiên tìm thấy sẽ được dùng . ví dụ 1 binding không có server :LDAP://OU=Sales, DC=GlobalKnowledge, DC=Com. Port number ( số cổng ) Sau server name là port number . cú pháp là : xxx. số cổng mặc định cho server LDAP là cổng 389: LDAP://dc01.globalknowledge.net:389. server Exchange dùng cùng số port như server LDAP . nếu server Exchange được cài đặt trên cùng hệ thống - ví dụ như 1 domain controller của Active Directory - có thể cấu hình số cổng khác . Distinguished name (tên phân biệt, DN )
  19. Phần thứ tư ta có thể đặc tả trong đường dẫn là tên phân biệt ( DN).DN là 1 tên duy nhất được bảo đảm để xác định đối tượng ta muốn truy xuất. với Active Directory ta có thể dùng cú pháp LDAP mà dựa trên X.500 để đặc tả tên của đối tượng. ví dụ ta có DN này : CN=Christian Nagel, OU=Trainer, DC=GlobalKnowledge, DC=com DN này đặc tả tên chung của Christian Nagel trong Organization Unit (OU) gọi Trainer trong Domain Component ( DC ) gọi GlobalKnowledge của Domain globalKnowledge.com .phần được đặc tả bên phải nhất là đối tượng gốc của domain. tên phải theo cấu trúc trong cây đối tượng. Relative Distinguished Name ( RDN) 1 RDN được dùng để tham chiếu các đối tượng trong đối tượng chứa ( contrainer object). với 1 RDN việc đặc tả OU và DC không cần thiết,chỉ cần tên chung là đủ. CN=Chritian Nagel là 1 RDN bên trong OU .1 RDN có thể được dùng nếu ta có 1 tham chiếu đến 1 đối tượng chứa và ta muốn truy xuất vào các đối tượng con Default Naming context ( ngữ cảnh tên mặc định )
  20. Nếu tên phân biệt không có trong đường dẫn, tiến trình binding sẽ được tạo với tên ngữ cảnh mặc định. ta có thể đọc ngữ cảnh tên mặc định với sự trợ giúp của rootDSE.LDAP 3.0 9 định nghĩa rootDSE như là gốc của cây thư mục trên 1 thư mục server . ví dụ : LDAP://rootDSE hay LDAP://servername/rootDSE Bằng cách liệt kê tất cả các thuộc tính của rootDSE ta có thể lấy thông tin defaultNamingContext mà được dùng khi không có tên nào được chỉ định.schemaNamingContext và configurationNamingContext đặc tả các tên được dùng để truy xuất Schema và cấu hình trong nơi lưu trữ Active Directory Đoạn mã sau dùng để lấy tất cả các thuộc tính trong rootDSE : using (DirectoryEntry de = new DirectoryEntry()) { de.Path = "LDAP://celticrain/rootDSE";
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2