Adldap2 là gói PHP cung cấp các công cụ quản lý thư mục và xác thực LDAP bằng cách sử dụng mẫu Bản ghi Hoạt động
· Tài liệu
Lên và chạy trong vài phút. Kết nối dễ dàng với các máy chủ LDAP của bạn và bắt đầu chạy các truy vấn & thao tác chỉ trong vài phút
Trình tạo truy vấn trôi chảy. Xây dựng các truy vấn LDAP chưa bao giờ dễ dàng đến thế. Tìm các bản ghi bạn đang tìm kiếm trong một vài dòng hoặc ít hơn với giao diện trôi chảy
Bản ghi hoạt động tăng áp. Tạo và sửa đổi các bản ghi LDAP một cách dễ dàng. Tất cả các bản ghi LDAP là các mô hình riêng lẻ. Chỉ cần sửa đổi các thuộc tính trên mô hình và lưu nó để duy trì các thay đổi đối với máy chủ LDAP của bạn
Lỗ hổng bảo mật
Nếu bạn phát hiện ra lỗ hổng bảo mật trong Adldap2, vui lòng gửi e-mail tới Steve Bauman qua steven_bauman@outlook. com
FreeDSx LDAP là một thư viện PHP LDAP thuần túy. Nó không có yêu cầu về phần mở rộng LDAP PHP cốt lõi. Thư viện này hiện triển khai hầu hết chức năng máy khách được mô tả trong RFC 4511 và một số chức năng máy chủ LDAP rất hạn chế. Nó cũng triển khai một số tính năng máy khách khác từ các RFC khác nhau
- Hỗ trợ kiểm soát phân trang [RFC 2696]
- Hỗ trợ điều khiển VLV [draft-ietf-ldapext-ldapv3-vlv-09]
- Kiểm soát sắp xếp phía máy chủ [RFC 2891]
- Yêu cầu sửa đổi mật khẩu [RFC 3062]
- Biểu diễn chuỗi của bộ lọc tìm kiếm [RFC 4515]
- Hỗ trợ lớp xác thực/toàn vẹn SASL cho các cơ chế nhất định [RFC 4513]
Nó hỗ trợ mã hóa kết nối LDAP thông qua TLS thông qua tiện ích mở rộng OpenSSL nếu có
Tài liệu- Ứng dụng khách LDAP
- Cấu hình
- Xác thực liên kết SASL
- Cách sử dụng chung
- Mục
- hoạt động
- điều khiển
- Tìm kiếm và Bộ lọc
- Truy xuất phạm vi
- DirSync
- Máy chủ LDAP
- Cấu hình
- Cách sử dụng chung
Cài đặt qua nhà soạn nhạc
composer require freedsx/ldap
Sử dụng lớp LdapClient và các lớp trợ giúp
use FreeDSx\Ldap\LdapClient; use FreeDSx\Ldap\Operations; use FreeDSx\Ldap\Search\Filters; $ldap = new LdapClient[[ # Servers are tried in order until one connects 'servers' => ['dc1', 'dc2'], # The base_dn is used as the default for searches 'base_dn' => 'dc=example,dc=local' ]]; # Encrypt the connection prior to binding $ldap->startTls[]; # Bind to LDAP with a specific user. $ldap->bind['user@example.local', '12345']; # Build up a LDAP filter using the helper methods $filter = Filters::and[ Filters::equal['objectClass', 'user'], Filters::startsWith['cn', 'S'], # Add a filter object based off a raw string filter... Filters::raw['[telephoneNumber=*]'] ]; # Create a search operation to be used based on the above filter $search = Operations::search[$filter, 'cn']; # Create a paged search, 100 results at a time $paging = $ldap->paging[$search, 100]; while [$paging->hasEntries[]] { $entries = $paging->getEntries[]; var_dump[count[$entries]]; foreach [$entries as $entry] { echo "Entry: ".$entry->getDn[].PHP_EOL; } }Hoạt động CRUD
Tạo ra
use FreeDSx\Ldap\Entry\Entry; use FreeDSx\Ldap\Exception\OperationException; # Create a new LDAP entry object $entry = [new Entry['cn=foo,dc=domain,dc=local']] ->set['objectClass','top', 'group'] ->set['sAMAccountName', 'foo']; # Create the entry with the LDAP client try { $ldap->create[$entry]; } catch [OperationException $e] { echo sprintf['Error adding entry [%s]: %s', $e->getCode[], $e->getMessage[]].PHP_EOL; }
Đọc
# Use the read[] method of the LDAP client to search for a specific entry. # Optionally pass an array of attributes to select as the second argument. $entry = $ldap->read['cn=foo,dc=domain,dc=local']; # Entry will be null if it doesn't exist if [$entry] { echo $entry.PHP_EOL; var_dump[$entry->toArray[]]; }
Cập nhật
use FreeDSx\Ldap\Exception\OperationException; # Search for an entry object to get its current attributes / values $entry = $ldap->read['cn=foo,dc=domain,dc=local']; # Add a value to an attribute if [!$entry->get['telephoneNumber']] { $entry->add['telephoneNumber', '555-5555']; } # Remove any values an attribute may have if [$entry->has['title']] { $entry->reset['title']; } # Delete a specific value for an attribute if [$entry->get['ipPhone']->has['12345']] { $entry->delete['ipPhone', '12345']; } # Set a value for an attribute. This replaces any value it may, or may not, have. $entry->set['description', 'Employee']; # Send the built up changes back to LDAP to update the entry via the LDAP client update method. try { $ldap->update[$entry]; } catch [OperationException $e] { echo sprintf['Error modifying entry [%s]: %s', $e->getCode[], $e->getMessage[]].PHP_EOL;; }
Xóa bỏ
use FreeDSx\Ldap\Exception\OperationException; # Search for the entry object to delete $entry = $ldap->read['cn=foo,dc=domain,dc=local']; # Pass the entry object to the delete method of the LDAP client if it was found. # You could also pass a DN object or a simple DN as a string. if [$entry] { try { $ldap->delete[$entry]; } catch [OperationException $e] { echo sprintf['Error deleting entry [%s]: %s', $e->getCode[], $e->getMessage[]].PHP_EOL;; } }