YOMEDIA
Làm việc với Active Directory - Lập trình Active Directory – Phần 1
Chia sẻ: Nguyen Uyen
| Ngày:
| Loại File: PDF
| Số trang:10
110
lượt xem
9
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Để 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 -
- 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...
AMBIENT/
Chủ đề:
Nội dung Text: Làm việc với Active Directory - Lập trình Active Directory – Phần 1
- 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 -
- - 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
- 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
- - 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
- 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 )
- 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 )
- 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";
- de.Username = @"sentinel\chris";
de.Password = "someSecret";
PropertyCollection props = de.Properties;
foreach (string prop in props.PropertyNames)
{
PropertyValueCollection values = props[prop];
foreach (string val in values)
{
Console.Write(prop + ": ");
Console.WriteLine(val);
}
}
}
- Bên cạnh việc xuất các thuộc tính , chương trình này chỉ ra
defaultNamingContext DC=eichkogelstrasse, DC=local ngữ cảnh mà có thể
được dùng để truy xuất schema:CN=Schema, CN=Configuration,
DC=eichkogelstrasse, DC=local và tên ngữ cảnh của cấu hình :
CN=Configuration, DC=eichkogelstrasse, DC=local:
Định danh đối tượng
Mỗi đối tượng có 1 danh tính duy nhất, 1 GUID . 1 GUID là 1 số 128-bit
độc nhất.
Ta có thể liên kết đến 1 đối tượng dùng GUID.bằng cách này ta luôn lấy
cùng 1 đối tượng, không quan tâm đối tượng được di chuyển đến nơi chứa
nào khác.GUID được tạo ra vào lúc đối tượng được tạo và luôn kèm theo đối
tượng.
Ta có thể lấy chuỗi GUID với DirectoryEntry.NativeGuid. chuỗi đại diện
này sau đó có thể được dùng để liên kết đối tượng.
- Ví dụ dùng GUID : tên đường dẫn trong 1 kết nối không server để liên kết
đến một đối tượng cụ thể được đại diện bởi 1 GUID:
LDAP://
Các tên đối tượng trong các domain WindowNT
Provider WINNT không cho phép cú pháp LDAP trong phần tên của chuỗi
liên kết.với provider đối tượng được đặc tả dùng ObjectName ,ClassName.
chuỗi liên kết có giá trị trong 1 domain Window NT là :
WinNT:
WinNT://DomainName
WinNT://DomainName/UserName, user
WinNT://DomainName/ServerName/MyGroup, group
Các hậu tố user và group đặc tả rằng ta truy xuất vào các đối tượng kiểu user
và group
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...