[pbs-devel] [PATCH v3 proxmox 0/6] introduce proxmox-ldap crate

Lukas Wagner l.wagner at proxmox.com
Tue Jan 24 11:03:31 CET 2023


This patch series adds the new `proxmox-ldap` crate. The crate is mostly based on
`src/server/ldap.rs` from [1].

The main reason for breaking this out into a separate crate is to make it easily
reusable from PVE/PMG via perlmod -- at some point in the future, all
products could use the same LDAP implemenation.

This is sent as a separate patch series, as the original [1] was already
quite large with 17 commits, affecting multiple repositories.


Changes v2 -> v3:
  * Move the `proxmox-ldap` crate into the `proxmox` repo
  * Let FilterElement take &str instead of String
  * Implement the Display trait instead of ToString

Changes [1]@v1 -> v2:
  * Change how custom TLS-certificates work:
    Pass certificate paths instead of strings containing the
    certificate.
    Now, users of this crate can pass additional root certs that
    are to be trusted. Alternatively, and this was added with PVE
    compatibility in mind, one can add whole certificate store
    directories, replacing the system's default at `/etc/ssl/certs`.

  * Add integration tests, testing the implementation against a real
    LDAP server (`glauth`). The test can be executed via the
    `run_integratin_tests.sh` helper and require the `glauth` binary to
    be available. The integration tests are #[ignored] by default, so they
    don't interfere with regular unit-test execution.

Thanks to Wolfgang and Thomas for their review of v2.

[1] https://lists.proxmox.com/pipermail/pbs-devel/2023-January/005788.html

Lukas Wagner (6):
  ldap: create new `proxmox-ldap` crate
  ldap: add basic user auth functionality
  ldap: add helpers for constructing LDAP filters
  ldap: allow searching for LDAP entities
  ldap: tests: add LDAP integration tests
  ldap: add debian packaging

 Cargo.toml                                    |   3 +
 proxmox-ldap/Cargo.toml                       |  18 +
 proxmox-ldap/debian/changelog                 |   5 +
 proxmox-ldap/debian/control                   |  43 ++
 proxmox-ldap/debian/copyright                 |  16 +
 proxmox-ldap/debian/debcargo.toml             |   7 +
 proxmox-ldap/run_integration_tests.sh         |  31 ++
 proxmox-ldap/src/lib.rs                       | 390 ++++++++++++++++++
 .../tests/assets/generate_certificate.sh      |   4 +
 proxmox-ldap/tests/assets/glauth.cfg          |  67 +++
 proxmox-ldap/tests/assets/glauth.crt          |  29 ++
 proxmox-ldap/tests/assets/glauth.key          |  52 +++
 proxmox-ldap/tests/assets/glauth_v6.cfg       |  67 +++
 proxmox-ldap/tests/glauth.rs                  | 166 ++++++++
 14 files changed, 898 insertions(+)
 create mode 100644 proxmox-ldap/Cargo.toml
 create mode 100644 proxmox-ldap/debian/changelog
 create mode 100644 proxmox-ldap/debian/control
 create mode 100644 proxmox-ldap/debian/copyright
 create mode 100644 proxmox-ldap/debian/debcargo.toml
 create mode 100755 proxmox-ldap/run_integration_tests.sh
 create mode 100644 proxmox-ldap/src/lib.rs
 create mode 100755 proxmox-ldap/tests/assets/generate_certificate.sh
 create mode 100644 proxmox-ldap/tests/assets/glauth.cfg
 create mode 100644 proxmox-ldap/tests/assets/glauth.crt
 create mode 100644 proxmox-ldap/tests/assets/glauth.key
 create mode 100644 proxmox-ldap/tests/assets/glauth_v6.cfg
 create mode 100644 proxmox-ldap/tests/glauth.rs

-- 
2.30.2






More information about the pbs-devel mailing list