A minimal and suckless LDAP password reset web application.
Find a file
2021-03-12 17:24:21 +01:00
src Use a type alias instead of struct for Keys 2020-08-29 01:13:06 +02:00
templates Password reset functionality 2020-07-06 15:30:45 +02:00
.gitignore Prepare rocket requisites to start with 2020-07-03 16:10:46 +02:00
Cargo.lock Cargo update 2020-07-08 23:16:04 +02:00
Cargo.toml Fix license and formatting 2021-03-12 17:24:21 +01:00
LICENSE Fix license 2020-07-29 18:28:06 +02:00
README.md Improve readme and fix typos 2020-07-08 21:22:20 +02:00
README.org Improve readme and fix typos 2020-07-08 21:22:20 +02:00
Rocket.toml Password reset functionality 2020-07-06 15:30:45 +02:00

Table of Contents

  1. ldap0r
    1. Installation
    2. Contribution
    3. Todo List
      1. Password reset [5/11]
      2. Configuration [0/5]
      3. Login Section (not sure if going to happen)

ldap0r

So far ldap0r is simply a very small web application just to reset LDAP passwords. All it is capable of is to let an user enter its email address and send an email containing a generated link to reset the LDAP password, that's it so far. My motivation was to have something "suckless" which does not depend on PHP or similar insane.

Installation

A rust nightly toolchain which can be acquired via https://rustup.rs is needed in order to successfully build ldap0r. Install rustup, download rust nightly, then clone this repository, set the toolchain inside the source directory to nightly, build and run it.

rustup toolchain install nightly
git clone https://git.onders.org/finga/ldap0r.git
cd ldap0r
rustup override set nightly
cargo run

The application can be configured with the Rocket.toml configuration file.

Contribution

I am open for suggestions and appreciate any feedback.

Todo List

Password reset [5/11]

  1. DONE Form to send reset link

  2. DONE Parse URL with reset key

  3. DONE Cleanup all unwraps

  4. DONE Proper error handling

  5. DONE Implement proper logging

  6. TODO Make `keys.lock()` properly thread safe

  7. TODO Check for existing keys

  8. TODO Implement key validity timeout

  9. TODO Implement proper tests

  10. TODO Optionally store key persistently between restarts

  11. TODO Should tera templates instead of handlebar templates be used?

Configuration [0/5]

  1. TODO Fix domain config

  2. TODO Make size of key configurable

  3. TODO Make key validity timeout

  4. TODO Make it possible to send emails over encrypted connections

  5. TODO Make html/text emails configurable

Login Section (not sure if going to happen)