5.3Mở rộng và kiểm sốt

Một phần của tài liệu Đồ án tin học nghiên cứu về giao thức LDAP (Trang 184 - 186)

Các lớp Net::LDAP::Extension và Net::LDAP::Control cung cấp cách để thực hiện việc mở rộng. Các mở rộng LDAP mới được cơng bố trong RFC rất cĩ thể được bao gồm như một lệnh hoặc một gĩi trong các modul Net::LDAP sau này. Chương trình con start_tls( ) là một ví

dụ. Do đĩ, bạn cĩ thể khơng bao giị cần thực hiện việc mở rộng từ đầu. Tuy nhiên, cũng nên biết nĩ hoạt động như thế nào.

package Net::LDAP::Extension::SetPassword; require Net::LDAP::Extension; @ISA = qw(Net::LDAP::Extension); use Convert::ASN1; my $passwdModReq = Convert::ASN1->new; $passwdModReq->prepare(q<SEQUENCE {

user [1] STRING OPTIONAL, oldpasswd [2] STRING OPTIONAL, newpasswd [3] STRING OPTIONAL }>);

my $passwdModRes = Convert::ASN1->new; $passwdModRes->prepare(q<SEQUENCE {

genPasswd [0] STRING OPTIONAL }>); sub Net::LDAP::set_password { my $ldap = shift; my %opt = @_; my $res = $ldap->extension( name => '1.3.6.1.4.1.4203.1.11.1', value => $passwdModReq->encode(\%opt) );

bless $res; # Naughty :-) } sub gen_password { my $self = shift; my $out = $passwdModRes->decode($self->response); $out->{genPasswd}; } 1;

Lệnh extension( ) yêu cầu 2 thơng số: OID của yêu cầu mở rộng (ví dụ: 1.3.6.1.4.1.4203.1.11.1) và chuỗi mã hĩa bát phân của bất kỳ thơng số nào được định nghĩa bởi việc mở rộng. Trong trường hợp này, thơng số value chứa các định danh user, các chuỗi mật khẩu cũ và mới.

Việc mở rộng rất dễ dàng bằng cách thực hiện đoạn mã sau:

$msg = $ldap->set_password( user => "username", oldpassword => "old", newpassword => "new" );

Nhiều lệnh kiểm sốt cũng được thực hiện như các lớp Net::LDAP. Net::LDAP::Control::Paged

Thực hiện kiểm sốt các trang kết quả được sử dụng để phân vùng các kết quả của tìm kiếm LDAP vào khối quản lý. Việc kiểm sốt này được mơ tả trong RFC 2696

Net::LDAP::Control::ProxyAuth

Thực hiện cơ chế chứng thực proxy được mơ tả bởi Internet-Draft draft-weltman-ldapv3- proxy-XX.txt. Việc kiểm sốt này, được hỗ trợ bởi Netscape's Directory Server v4.1, cho phép một khách hàng liên kết như một thực thể và thực hiện các hoạt động như các thực thể khác.

Net::LDAP::Control::Sort, Net::LDAP::Control::SortResult

Thực hiện kiểm sốt Server Side Sorting (sắp xếp Server Side) cho các kết quả tìm kiếm mơ tả trong RFC 2891

Net::LDAP::Control::VLV, Net::LDAP::Control::VLVResponse

Thực hiện kiểm sốt view list ảo được mơ tả trong draft-ietf-ldapext-ldapv3-vlv-XX.txt. Việc kiểm sốt này được dùng để view cửa sổ trược của kết quả tìm kiếm. Tính năng này được sử dụng bởi các ứng dụng address book.

Việc dùng các lệnh kiểm sốt này là vấn đề về đọc tài liệu và làm theo những mẫu cĩ sẵn. Để tiện cho việc chỉ ra cách dùng lớp kiểm sốt, ta sẽ mở rộng đoạn mã saslsearch.pl được dùng để

tìm kiếm server Windows AD.

Chương trình con DoSearch( ), cĩ 2 thơng số đầu vào: một đối tượng Net::LDAP đã được kết nối tới server, và một DN sẽ được dùng như là hậu tố cơ bản của việc tìm kiếm:

sub DoSearch {

Một phần của tài liệu Đồ án tin học nghiên cứu về giao thức LDAP (Trang 184 - 186)

Tải bản đầy đủ (DOCX)

(188 trang)
w