D. Giới thiệu Bộ cộng tác Zimbra
VI. Dịch vụ Thư mục Zimbra (Zimbra Directory Service)
Zimbra LDAP service là directory service đang được vận hành theo một phiên bản của phần mềm OpenLDAP mà nó có Zimbra schema đã được cài đặt. Chương này mô tả làm thế nào directory service được sử dụng vào việc phân quyền người dùng và cấu hình tài khoản và sự quản lý.
Lưu ý: Zimbra cũng hỗ trợ tích hợp với Microsoft’s Active Directory
Server. Liên hệ với bộ phận hỗ trợ của Zimbra để biết thêm chi tiết về các kịch bản (scenarios) thi công cho đặc tả danh mục.
LDAP server được định danh khi phần mềm Zimbra được cài đặt. Mỗi server đều có một phần tử LDAP của chính bản thân nó – cái này bao gồm các thuộc tính chỉ rõ các tham số toán tử. Hơn nữa, có một đối tượng cấu hình toàn cục – nó được thiết lập mặc định cho bất kỳ server nào mà các phần tử của nó không ghi rõ mỗi thuộc tính.
Một tập hợp con của các thuộc tính này có thể được xây dựng lại thông qua Zimbra admin console; còn những cái khác có thể được thay đổi thông qua tiện ích CLI.
1. Tổng quan về các Directory Services
LDAP directory services cung cấp một kho lưu trữ trung tâm cho thông tin về các user và các thiết bị đã được cấp phép để sử dụng trong mạng máy tính của bạn. Kho lưu trữ trung tâm rất hữu dụng cho dữ liệu LDAP của Zimbra – đó là OpenLDAP directory server.
Hình D-6 trình bày lưu lượng lưu thông giữa Zimbra-LDAP directory server và các server khác trong hệ thống Zimbra. Các server Zimbra MTA và Zimbra mailbox đọc ra từ (read from), hoặc ghi vào (write to) cơ sở dữ liệu LDAP trên directory server. Cái cạnh MTA không có kết nối đến cơ sở dữ liệu LDAP; thay vì vậy, nó dùng phần tử MX của server DNS để quyết định nơi để gửi thư tín trực tiếp.
Zimbra trên các máy khách kết nối thông qua Zimbra server, trong đó nó chuyển kết nối đến LDAP.
Giới thiệu về Bộ cộng tác Zimbra
Hình D-6 : LDAP Directory Traffic
Xét cốt lõi của mỗi quá trình thực thi LDAP là một database được tổ chức sử dụng một schema. Schema đặc tả các kiểu đối tượng mà chúng được lưu trữ trong database, và những gì về các kiểu thuộc tính mà chúng có.
Một phần tử LDAP directory bao gồm một sự tập hợp các thuộc tính và có một distinguished name (DN) toàn cục và duy nhất. Các thuộc tính cho phép một phần tử được quyết định bởi các lớp đối tượng (object classes) có liên quan với phần tử (entry) đó. Các giá trị của các thuộc tính của đối tượng lớp quyết định quy tắc giản đồ (schema) phần tử phải theo sau. Các lớp đối tượng quyết định loại đối tượng mà phần tử thay thế và loại dữ liệu gì có thể được lưu trữ cho phần tử ấy. Các lớp đối tượng của một phần tử quyết định nó thuộc loại phần tử nào và được gọi là một lớp đối tượng có cấu trúc và không thể thay đổi được. Các lớp đối tượng khác được gọi để bổ trợ và có thể được thêm vào hoặc xóa đi từ phần tử.
Việc sử dụng các lớp đối tượng bổ trợ trong LDAP cho phép một lớp đối tượng được kết hợp với một lớp đối tượng đã tồn tại. Ví dụ, một entry với lớp đối tượng có cấu trúc inetOrgPerson, và lớp đối tượng bổ trợ zimbraAccount, sẽ được trở thành một tài khoản, như trở thành người điều hành cũng như là người dùng cuối. Một entry với đối tượng lớp zimbraServer sẽ là một server trong hệ thống Zimbra mà nó đã cài đặt một hoặc nhiều gói phần mềm Zimbra.
1.1 Hệ đẳng cấp LDAP
LDAP directories được sắp xếp trong một cây phân cấp – tựa như cấu trúc. Trong hệ thống Zimbra, cấu trúc được sắp xếp dựa trên các tên miền Internet (Internet domain names).
Các phần tử LDAP cơ bản bao gồm các mục chọn như là các tài khoản người dùng, các tổ chức hoặc các máy chủ.
Hình D-7 hiển thị Hệ đẳng cấp LDAP của Zimbra. Mỗi loại entry (object) có liên quan
Hình D-7 : Zimbra LDAP Hierarchy
Để tham khảo hoàn chỉnh danh sách các lớp đối tượng bổ trợ trong Zimbra, hãy xem Zimbra LDAP Schema.
2. Zimbra Schema
Mọi sự thực thi LDAP đều có một schema định nghĩa cấu trúc tên miền cho nó, các thuộc tính tài khoản và các cấu trúc dữ liệu khác trong việc sử dụng schema chung đính kèm với phần mềm OpenLDAP và được thiết kế cùng tồn tại tiềm ẩn với các thư mục cài đặt sẵn. Zimbra server, Zimbra administration console, chế độ dòng lệnh dự phòng cho tài khoản và quản trị các tiện ích đòi hỏi Zimbra schema.
Tất cả các thuộc tính và các lớp đối tượng đặc tả bởi Zimbra được giới thiệu bởi ―zimbra‖, như lớp đối tượng zimbraMailRecipient hoặc thuộc tính zimbraAttachmentsBlocked.
Zimbra schema giả lập trên schema dòng lệnh cơ bản. Trong gói cài đặt OpenLDAP kèm theo với hệ thống Zimbra, theo sau là các tập tin đính kèm trong phần thực thi OpenLDAP:
• core.schema
• cosine.schema
• inetorgperson.schema
• zimbra.schema
Lưu ý: Bạn không thể xây dựng lại Zimbra schema.
3. Sự thẩm định quyền tài khoản người dùng (Account Authentication)
Phần này mô tả cơ chế thẩm định quyền và định dạng hỗ trợ trực tiếp:
Internal
External LDAP
External Active Directory
Giới thiệu về Bộ cộng tác Zimbra Phương thức thẩm định bên trong (Internal) giả định rằng Zimbra schema đang vận hành trên OpenLDAP directory server.
Phương thức thẩm định External LDAP và External Active Directory cố gắng thử kêt nối tới đặc tả LDAP server, việc cung cấp tên và mật khẩu người dùng. Các phương pháp này có thể được dùng đến nếu môi trường email sử dung là Microsoft Active Directory directory services cho cơ chế thẩm định và Zimbra-LDAP directory services cho tất cả các giao dịch Zimbra có liên quan khác. Với những yêu cầu này, các user tồn tại bên trong cả OpenLDAP và bên trong các Active Directory.
Loại phương thức này được thiết lập dựa trên cơ sở per-domain, việc sử dụng thuộc tính zimbraAuthMech, với thông tin khác cũng đến từ domain. Nếu thuộc tính này không được thiết lập, mặc định sẽ sử dụng phương thức bên trong như cơ chế thẩm định quyền.
3.1 Cơ chế thẩm định quyền bên trong
Để lưu trữ các tài khoản trong OpenLDAP server, thuộc tính userPassword sẽ lưu trữ một salted-SHA1 (SSHA) phân loại mật khẩu của người dùng. Thông tin này thường không được kết nối đến directory server; nó chỉ được dùng để so sánh với thông tin trên OpenLDAP server, việc sử dụng vùng chứa tái sử dụng điều hành các kết nối LDAP.
3.2 Kỹ thuật xác thực quyền External LDAP và External Active Directory
Không giống như kỹ thuật thẩm định quyền bên trong, cơ chế thẩm định quyền bên ngoài cố gắng kế nối tới thư mục trên server sử dụng tên và mật khẩu người dùng. Nếu các kết nối thành công, sự kết nối được đóng và mật khẩu được xem là hợp lệ.
Thêm hai thuộc tính domain nữa được yêu cầu từ cơ chế bên ngoài đó là:
zimbraAuthLdapURL và zimbraAuthLdapBindDn.
3.2.1 Thuộc tính zimbraAuthLdapURL và SSL
Thuộc tính zimbraAuthLdapURL chứa đựng các URL của Active Directory server để kết nối đến. Điều này nên được định theo mẫu:
ldap://ldapserver:port/ với ldapserver là địa chỉ của một IP hoặc tên host của Active Directory server, và port là cổng sử dụng. Bạn cũng có thể sử dụng đầy đủ tên của cái host đó thay vì để cái cổng sử dụng vào.
Ví dụ:
ldap://server1:389 ldap://exch1.acme.com
Để kết nối SSL, ta sử dụng ldaps: thay vì ldap:. Nếu phiên bản SSL đang được dùng, chứng nhận về SSL sử dụng trên server phải được cấu hình là một chứng nhận đáng tin cậy.
3.2.2 Thuộc tính zimbraAuthLdapBindDn
Thuộc tính zimbraAuthLdapBindDn là một chuỗi có định dang dùng vào việc quyết định xem tên người dùng sử dụng khi kết nối vớiActive Directory server.
Trong suốt tiến trình xác thực quyền, tên người dùng khởi tạo theo định dạng:
user@domain.com
Tên người dùng có thể cần được chuyển đổi đưa vào LDAP hợp lệ nối kết với dn (distinguished name). Trong trường hợp này của Active Directory, việc kết nối với dn đó có thể được đặt trong một domain khác
4. Các đối tượng Zimbra
Zimbra sử dụng các lớp đối tượng hỗ trợ để thêm các thuộc tính cho đặt tả Zimbra đến các đối tượng đã tồn tại như một tài khoản. Các đối tượng LDAP sử dụng trong Zimbra bao gồm:
Các tài khoản (Accounts)
Lớp của dịch vụ (Class of Service - COS)
Các vùng (Domains)
Danh sách phân phốiDistribution Lists
Những người nhận thư (Recipients)
Các máy chủ
Các cấu hình toàn cục
Các đặt danh
Múi giờ (TimeZone)
Zimlet
Tài nguyên lịch biểu (CalendarResource)
4.1 Các đối tượng Account
Một đối tượng tài khoản biểu thị một tài khoản trên Zimbra mailbox server mà nó chó thể được đăng nhập vào. Các tài khoản của những người điều hành cũng như tài khoản của các người dùng đều cho phép login. Tên lớp đối tượng này là zimbraAccount. Lớp đối tượng mở rộng là zimbraMailRecipient.
Lớp zimbraMailRecipient là một phần tử thư mục dùng như là một phần tử có thể nhận mail. Đây là một địa chỉ mail bên ngoài, nó được mở rộng thông qua các định danh hoặc chuyển tiếp vào một hoặc nhiều địa chỉ mặt trong hay mặt ngoài.
Tất cả các tài khoản đều có các thuộc tính sau:
• Một cái tên có dạng user@some.domain
• Một số ID duy nhất không thể thay đổi và không cho phép tái sử dụng.
• Một tập hợp các thuộc tính, một vài trong số đó có thể được người dùng thay đổi (ở mục tùy chọn – options) và những mục khác chỉ được thay đổi bởi người điều hành. Tất cả các tài khoản người dùng đều liên kết với một domain, nên domain phải được tạo trước khi tạo bất cứ tài khoản nào.
4.2 Lớp đối tượng Dịch vụ - Class of Service (COS) Object
Lớp này là đối tượng đặc tả của Zimbra, dùng để khai báo các thuộc tính mặc định của một tài koản email cần có và các chắc năng được thêm vào hay không được phép sử dụng chức năng nào. COS điều khiển các chức năng, tham chiếu đến các tùy chọn mặc định, trợ giúp mailbox, chu kỳ sống của thông điệp, sự hạn chế mật khẩu, các khối đính kèm và các vùng chứa cho việc tạo ra các tài khoản mới. Lớp này có tên là zimbraCOS.
Giới thiệu về Bộ cộng tác Zimbra Mỗi tài khoản được gán cho một COS. COS được sử dụng để nhóm các tài khoản này và khai báo các mức chức năng cho các tài khoản đó. Ví dụ, việc thực thi có thể được gán đến một COS cho phép sử dụng ứng dụng Calendar. Bởi việc nhóm các tài khoản vào từng loại đặc tả của COS, các chức năng của tài khoản có thể được cập nhật trong cái block. Nếu COS không được thiết lập một cách tường minh hoặc nếu COS gán cho người dùng không còn tồn tại, các giá trị sẽ được khai báo lại COS mặc định.
Một COS không bị hạn chế với domain đặc thù dành riêng hoặc với tập hợp các domain.
4.3 Đối tượng Domains
Một đối tượng Domain thể hiện một email như là ace.com hoặc zink.org. Một domain phải tồn tại trước khi email được xác lập một địa chỉ đến các người dùng trong cùng domain có thể được gửi nhận mail. Lớp này có tên là zimbraDomain.
4.4 Đối tượng Distribution Lists
Distribution Lists, cũng được biết như là mailing lists, được sử dụng để gửi mail đến tất cả các thành viên như một danh sách gửi bởi một địa chỉ email đến các địa chỉ trong list.
Lớp này có tên là zimbraDistributionList.
4.5 Đối tượng Recipient
Recipient là một phần tử có thể nhận mail. Một email bên ngoài danh sách địa chỉ, và recipient có thể được hiểu qua định danh hoặc qua việc chuyển tiếp vao một hay nhiều sổ địa chỉ mặt trong hoặc mặt ngoài. Lớp này có tên là zimbraMailRecipient. Lớp này chỉ được dùng trong sự kết hợp với zimbraAccount và zimbraDistributionlist.
4.6 Đối tượng Servers
Đối tượng này là một server đặc biệt trong hệ thống Zimbra, nó có một hay nhiều gói phần mềm Zimbra được cài đặt. Trong suốt quá trình cài đặc, các phần mềm tự động đăng ký trên OpenLDAP server. Lớp này tên là zimbraServer. Các thuộc tính mô tả các thông tin cấu hình, như lai các dịch vụ chạy trên server. Tên server được sử dụng bởi hệ thống Zimbra để tạo ra môt yêu cầu cho các đối tượng server trong thư mục. Server yêu cầu lấy các thông tin cấu hình và lấy bất kỳ sự thay đổi nào có thể có do sự thay đổi của người điều hành thông qua Zimbra Administrator Console.
4.7 Đối tượng cấu hình toàn cục
Đối tượng cấu hình toàn cục chỉ định giá trị mặc định cho các đối tượng sau: server, account, COS, và domain. Nếu các thuộc tính chưa được thiết lập cho các đối tượng khác, các giá trị được mặc định từ các thiết lập toàn cục. Object class có tên là zimbraGlobalConfig.
Các giá trị cấu hình toàn cục được yêu cầu thiết lập trong suốt quá trình cài đặt thành phần trong gói Zimbra core. Và các giá trị này sẽ là giá trị mặc định cho hệ thống.
4.8 Đối tượng ánh xạ
Đối tượng ánh xạ một placeholders nằm trong thư mục để bảo quản một cái tên.Object class có tên là zimbraAlias. Thuộc tính chỉ đến một phần tử khác.
4.9 Đối tượng TimeZone
4.10 Đối tượng Zimlet
Đối tượng Zimlet định nghĩa các Zimlets được cài đặt và cấu hình trong ZCS. Object class có tên là zimbraZimletEntry.
4.11 Đối tượng CalendarResource
Đối tượng CalendarResource định nghĩa một bộ lập lịch như là lịch họp có thể được chọn cho cuộc họp. Object class có tên là zimbraCalendarResource.
5. Ngân hàng Directory/GAL
Một ngân hàng directory là một ngân hàng liệt kê các người dùng, thường nằm trong cùng một tổ chức, khả thi cho tất cả người dùng của hệ thống e-mail. Thỉnh thoảng được gọi là ―white pages‖ hoặc danh sách địa chỉ toàn cục (global address list, viết tắt là GAL), Zimbra sử dụng ngân hàng directory tra cứu các địa chỉ người dùng có trong ngân hàng.
Đối với mỗi domain được sử dụng trong Zimbra, bạn có thể chọn từ những tùy chọn tìm kiếm GAL dưới đây:
• Sử dụng một external LDAP server cho GAL
• Sử dụng thi công của Zimbra bên trong OpenLDAP
• Gộp cả hai external LDAP server và OpenLDAP cho các tìm kiếm GAL
5.1 Tìm kiếm GAL trong Zimbra Client
Zimbra client có thể tìm kiếm GAL. GAL tìm kiếm trả về một danh sách các phần tử directory khớp với tìm kiếm của người dùng.
Khi người dùng cung cấp một cái tên cho việc tìm kiếm, tên đó được chuyển vào trong một bộ lọc tìm kiếm của LDAP như ví dụ bên dưới:
(|(cn = %s*)(sn=%s*)(gn=%s*)(mail=%s*)) (zimbraMailDeliveryAddress = %s*)
(zimbraMailAlias=%s*) (zimbraMailAddress = %s*)
Chuỗi ―%s‖ được thay thế với cái tên mà người dùng muốn tìm kiếm.
5.2 Các thuộc tính của GAL trong Zimbra
Có 2 ứng cử cho thông tin GAL là Zimbra server và Active Directory server. Mối liên quan giữa các trường trong LDAP/Active Directory là đều được tham chiếu trong Zimbra schema dưới dạng các tên giống nhau như đã liệt kê trong Active Directory schema.
Bảng D-2 : Minh họa các thuộc tính tìm kiếm thông dụng của GAL đến các trường trong Zimbra
Các thuộc tính LDAP điển hình Zimbra Contact Field
co workCountry
company Company
givenName/gn firstName
Giới thiệu về Bộ cộng tác Zimbra
sn lastName
cn fullName
initials initials
l workCity
physicalDeliveryOfficeName office
ou department
street, streetaddress workStreet
postalCode workPostalCode
telephoneNumber workPhone
st workState
Title jobTitle
mail Email
objectClass Not currently mapped
5.3 Các tham số tìm kiếm của Zimbra GAL
Tương tự như việc xác thực, GAL được cấu hình dựa trên mỗi domain. Từ giao diện quản trị, bạn có thể chạy GAL Configuration Wizard để cấu hình cho các thuộc tính của domain.
5.4 Xây dựng các thuộc tính
OpenLDAP directory nên được xây dựng một cách trực tiếp. Bất kỳ sự bổ sung, thay đổi và xóa thông qua giao diện quản trị hoặc từ tiện ích CLI cho bộ cung cấp, zmprov.
Người dùng xây dựng các thuộc tính cho các phần tử (các tài khoản) của họ, trong OpenLDAP directory khi họ thay đổi các tùy chọn từ Zimbra Web Client.
Những người điều hành cũng có thể xây dựng các thuộc tính của LDAP bằng cách sử dụng các công cụ command-line.