Tiêu chuẩn giao thức đi một chặng đường dài để thúc đẩy khả năng tương tác. Trong khi giản đồ cho đại diện cho một giới thiệu LDAP cĩ thể khác nhau từ nhà cung cấp để bán, phương thức trở về thơng tin giới thiệu cho các khách hàng được định nghĩa như là một phần của lõi LDAPv3 giao thức. Điều này cĩ nghĩa rằng các máy chủ LDAP từ các nhà cung cấp cĩ thể được liên kết thành một duy nhất, hợp lý, phân phối thư mục.
Nhưng tại sao đi qua tất cả những rắc rối của việc xây dựng một thư mục multivendor? Tại sao khơng giải quyết về một đại lý LDAP duy nhất, những người đã khơng cĩ nghi ngờ làm cho nĩ dễ dàng để xây dựng thư mục phân phối bằng cách phát triển lược đồ đại diện cho giới thiệu và giải quyết các vấn đề khác mà khơng phải là địa chỉ của các tiêu chuẩn? Và, như tơi đã nĩi ở nơi khác, chúng ta khơng nên sử dụng cơng nghệ chỉ vì họ đang cĩ; Nếu LDAP khơng làm cho cuộc sống dễ dàng hơn đối với chúng tơi như là quản trị viên, và cho sử dụng hệ thống của chúng tơi, cĩ rất ít chỉ đi qua các nỗ lực của việc thiết lập một thư mục LDAP ở tất cả, hãy cho mình một thư mục, phân phối multivendor.
Tuy nhiên, sớm hay muộn một thư mục đơn-người bán hàng sẽ buộc bạn phải đưa ra quyết định rằng bạn đang khĩ chịu với. Giả sử rằng bạn đang thêm một máy chủ ứng dụng mới, chẳng hạn như một hệ thống calendaring, tại trang web của bạn. Hệ phục vụ này được ủng hộ bởi một thư mục LDAP và địi hỏi một số giao thức tiện ích mở rộng từ thư mục. Đương nhiên, nhà cung cấp đã thử nghiệm các máy chủ ứng dụng với một máy chủ LDAP cụ thể trong tâm trí-cĩ lẽ các nhà bán thậm chí bán một sản phẩm LDAP (trong đĩ, tất nhiên, là bảo đảm để làm việc với các máy chủ lịch). Nhưng như số phận sẽ cĩ nĩ, bạn đã đầu tư rất nhiều thời gian và cơng sức trong việc xây dựng một thư mục LDAP, và các máy chủ thư mục hỗ trợ máy chủ lịch khơng phải máy chủ thư mục bạn đã dành rất nhiều nỗ lực triển khai. Trong trường hợp này, cĩ ba giải pháp cĩ thể:
Bỏ máy chủ lịch, kể từ khi nĩ khơng được hỗ trợ bởi máy chủ LDAP hiện cĩ của bạn. Tuy nhiên, bạn đang rất cĩ thể cài đặt máy chủ vì quản lý muốn bạn làm như vậy; nĩi rằng khơng cĩ lẽ khơng phải là một lựa chọn.
liên quan đến ném ra tất cả cơng việc bạn đã làm việc của bạn đang chạy dịch vụ thư mục- nhưng bạn sẽ phải làm lại rất nhiều nĩ. Và những gì sẽ xảy ra sau khi bạn đang nĩi với để cài đặt một ứng dụng mà nĩi đến một máy chủ LDAP? Nĩ sẽ được tương thích với các máy chủ bạn đã cài đặt vì lợi ích của các dịch vụ lịch? Đĩ là rõ ràng rằng điều này là khơng thực sự một tùy chọn, trừ khi bạn muốn chi tiêu của bạn sự nghiệp chơi "máy chủ âm nhạc."
Cài đặt một máy chủ LDAP mới cĩ hỗ trợ ứng dụng lịch và bao gồm nĩ như là một subtree của khuơn khổ thư mục hiện cĩ của bạn.
Tùy chọn cuối cùng là thực sự lựa chọn duy nhất mà làm cho tinh thần. Nĩ cho phép bạn để tăng thêm, chứ khơng phải là thay thế, cơ sở hạ tầng thư mục bạn đã đã xây dựng. Hơn nữa, sớm hay muộn bạn sẽ bị buộc phải kết hợp khác nhau hệ phục vụ LDAP vào mạng của bạn. Mục đích của tiêu chuẩn hĩa là để cho phép khách hàng được phát triển bởi một cơng ty để truy cập máy chủ phát triển của người khác; và ngay cả khi điều này hiện nay là một mục tiêu chứ khơng phải là một thực tế, cuộc sống của bạn sẽ dễ dàng hơn nếu bạn làm việc với mục tiêu này trong tâm trí.
Việc bổ sung một người bán hàng mới, phụ thuộc, ứng dụng cho phép LDAP tăng một câu hỏi quan trọng: làm thế nào là giải pháp này bất kỳ khác với vơ số các ứng dụng cụ thể thư mục của quá khứ? Sự khác biệt ở đây là là một giao thức truy cập duy nhất cho tất cả khách hàng và các cơng cụ hành chính. Giao thức LDAP là yếu tố thống nhất. Trong khi bạn vẫn cịn cĩ các ứng dụng mà cĩ thể nĩi chuyện chỉ với máy chủ của một nhà cung cấp cụ thể, giao thức LDAP phổ biến cho phép bạn tích hợp máy chủ LDAP đĩ với các máy chủ khác trên mạng.
Phần cịn lại của phần này khám phá giải pháp này bằng cách trình bày một kịch bản mà một máy chủ OpenLDAP được kết nối với tiến trình cài đặt Active Directory. Mục đích là để tạo ra một thư mục ảo trong đĩ người dùng cĩ thể tìm kiếm một mục nhập bất cứ nơi nào của câu một trong dịch vụ thư mục, mà khơng liên quan cho thư mục đĩ chứa thơng tin. Hình 9-6 cho thấy những gì chúng tơi đang cố gắng để đạt được.
Đối với tập thể dục này, bạn cĩ thể giả định các dữ kiện sau đây:
Hoạt OpenLDAP đã được cấu hình với bối cảnh đặt tên dc = plainjoe, dc = org trên máy chủ ldap.plainjoe.org.
Một tên miền Active Directory đã được tạo ra cho DNS tên miền ad.plainjoe.org. Vì vậy, các dịch vụ hoạt động thư mục LDAP sẽ cĩ một bối cảnh đặt tên của dc = quảng cáo, dc = plainjoe, dc = org.
Bạn cần phải thêm hai kiến thức tham chiếu đến hệ thống này. Lần đầu tiên sẽ chỉ khỏi dịch vụ hoạt động đến máy chủ OpenLDAP; Thứ hai sẽ tham khảo khách hàng tìm kiếm trong thư mục OpenLDAP miền Active Directory.
ADSI chỉnh sửa MMC snap-in là cần thiết để thêm một giới thiệu LDAP vào Active Directory. Tiện ích cấp thấp, duyệt thư mục này được bao gồm trong \SUPPORT\TOOLS trong Windows 2000 Advanced Server CD. Một khi các cơng cụ hỗ trợ đã được cài đặt (sử dụng setup.exe), ADSI chỉnh sửa biểu tượng sẽ xuất hiện trong Menu bắt đầu (bắt đầu chương trình Windows 2000 hỗ trợ Tools cơng cụ ADSI sửa).
cn = phân vùng, cn = Configuration, dc = quảng cáo, dc = plainjoe, dc = org container. Mục nhập thư mục này là gốc cho tất cả các mục cĩ giới thiệu đến tên miền con trong một cây thư mục hoạt động, cũng như bên ngồi giới thiệu một cách rõ ràng được gửi bởi người quản trị. Sau khi tung ra các cơng cụ chỉnh sửa ADSI và điều hướng các container phân vùng, như minh họa trong hình 9-7, tạo một đối tượng crossRef mới bằng cách nhấp chuột phải trong danh sách hiện cĩ mục và chọn các đối tượng mới... biến từ trình đơn ngữ cảnh.
Hình 9-7. Việc tạo ra một đối tượng crossRef mới trong các thùng chứa phân vùng của một tên miền Active Directory
Một thuật sĩ tạo đối tượng giúp điền vào các thơng tin cho các đối tượng lớp thuộc tính bắt buộc. LDIF trích đoạn sau đây cho thấy những gì bạn đang cố gắng để thực hiện: bạn cần phải thêm một nút đặt tên OpenLDAP với một thuộc tính nCName cĩ giá trị dc = plainjoe, dc = org, và một thuộc tính dnsRoot cĩ ldap.plainjoe.org giá trị:
dn: cn=OpenLDAP,cn=Partitions,dc=Configuration,dc=ad,dc=plainjoe,dc=org cn: OpenLDAP
nCName: dc=plainjoe,dc=org dnsRoot: ldap.plainjoe.org
ldap://ldap.plainjoe.org/dc=plainjoe,dc=org cho khách hàng để đáp ứng với một tìm kiếm LDAP.
Sau đĩ, một tham chiếu kiến thức tương ứng phải được thêm vào máy chủ OpenLDAP. Tham chiếu này phải trỏ đến tên miền Active Directory. LDIF trích đoạn sau đây cho thấy tài liệu tham khảo bạn cần phải thêm vào máy chủ OpenLDAP:
dn: dc=ad,dc=plainjoe,dc=org objectclass: referral
objectclass: dcObject
ref: ldap://ad.plainjoe.org/dc=ad,dc=plainjoe,dc=org
dc: adBạn cĩ thể sử dụng ldapadd để thêm mục này. Giả định rằng mã LDIF là trong tập tin quảng cáo-referral.ldif, lệnh sẽ làm các trick:
$ ldapadd -D "cn=Manager,dc=plainjoe,dc=org" -w secret -x \ -H ldap://ldap.plainjoe.org/ -f ad-referral.ldif
Các thuộc tính ref trong mục nhập mới địi hỏi rằng tên DNS ad.plainjoe.org giải quyết lên bộ kiểm sốt miền trong miền Active Directory. Giai cấp đối tượng phụ dcObject được bao gồm trong số ước và do một sự lựa chọn các thuộc tính RDN cho các mục nhập.
Hai thư mục được bây giờ liên kết trong đĩ một cách mà một truy vấn LDAP gửi đến một thư mục cĩ thể xác định vị trí dữ liệu được lưu trong thư mục khác. Để thử nghiệm này, bắt đầu bằng cách gửi một tìm kiếm vơ danh để một bộ điều khiển vùng Active Directory và tìm kiếm dữ liệu được lưu trữ trong OpenLDAP. Để thực hiện việc này, sử dụng OpenLDAP của ldapsearch lệnh:
-b "ou=people,dc=plainjoe,dc=org" -LLL "(uid=jerry)"
Referral (10)
Additional information: 0000202B: RefErr: DSID-031005EE, data 0, 1 access points ref 1: 'ldap.plainjoe.org'
Bạn nhận được một giới thiệu từ các máy chủ Active Directory, nhưng bạn khơng nhận được bất kỳ kết quả thực tế: tìm kiếm này khơng làm theo giới thiệu. Để xem các kết quả thực tế, bạn cĩ thể thực hiện việc tìm kiếm tương tự, nhưng sử dụng tùy chọn - C hướng dẫn khách hàng LDAP thư viện để thực hiện theo giới thiệu và in ra kết quả cuối cùng:
$ ldapsearch -h ad.plainjoe.org -x -C \ -b "ou=people,dc=plainjoe,dc=org" -LLL "(uid=jerry)" dn: cn=Gerald Carter,ou=people,dc=plainjoe,dc=org objectClass: posixAccount objectClass: account objectClass: sambaAccount cn: Gerald Carter uidNumber: 780 uid: jerry gidNumber: 100 homeDirectory: /home/queso/jerry loginShell: /bin/bash rid: 2560 acctFlags: [UX ] pwdLastSet: 1018451245
Điều gì về làm một tìm kiếm mà đi theo một hướng khác? Bạn cĩ thể gửi một tìm kiếm để OpenLDAP tìm kiếm dữ liệu được lưu trong thư mục hoạt động? Câu trả lời là cĩ, nhưng với cùng một caveat được đề cập đến khi sử dụng pam_ldap để xác nhận dịch vụ đối với một tên miền Active Directory. Theo mặc định, thư mục hoạt động khơng hỗ trợ tìm kiếm bằng cách sử dụng một ràng buộc vơ danh, ngoại trừ rootDSE của nĩ. Vì vậy, một nỗ lực để xác định vị trí người dùng tên là kristi miền Active Directory mà khơng sử dụng một số chứng chỉ hợp lệ trong ràng buộc sẽ trở lại chỉ là một giới thiệu đến máy chủ Active Directory chính nĩ. Tên đăng nhập trong Active Directory đang được lưu trữ trong các thuộc tính sAMAccountName.
$ ldapsearch -x -H ldap://ldap.plainjoe.org/ \
-b "dc=ad,dc=plainjoe,dc=org" -LLL -C "(sAMAccountName=kristi)"
# refldap://ad.plainjoe.org/CN=Configuration,DC=ad,DC=plainjoe,DC=org
Giới thiệu này được trả về bởi các máy chủ Active Directory chính nĩ bởi vì bạn đã khơng cung cấp chứng chỉ hợp lệ cho việc tìm kiếm sâu hơn trong cây thư mục. Nếu bạn muốn thuyết phục bản thân rằng máy chủ OpenLDAP là trở lại giới thiệu đúng, chỉ cần chạy lại tìm kiếm mà khơng cĩ đối số - C:
$ ldapsearch -H ldap://ldap.plainjoe.org/ -x \ -b "dc=ad,dc=plainjoe,dc=org" -LLL "(sAMAccountName=kristi)" Referral (10) Matched DN: dc=ad,dc=plainjoe,dc=org Referral: ldap://ad.plainjoe.org/dc=ad,dc=plainjoe,dc=org??sub
Tìm kiếm Active Directory đầy đủ, bạn phải sử dụng một số loại tin tưởng cơ chế (ví dụ như, Kerberos cross-lĩnh vực tín) hoặc đơn-signon giải pháp giữa hai máy chủ LDAP, hoặc cho phép tìm kiếm vơ danh của những phần của DIT thư mục hoạt động. Kể từ khi tìm kiếm vơ danh của Active Directory đã được bao phủ trong phần 9,3, tơi sẽ vào lại chủ đề đĩ ở đây.