Joplin server integration with LDAP server

Hello.
Joplin server integration with LDAP server.
Algorithm of implementation:

  1. Add a Nodejs LDAP authentication library
    (example: shaozi/ldap-authentication)

  2. Add to the environment variables:
    LDAP_URL: 'ldap://ldap.example.com'
    adminDn: 'cn=read-only-admin,dc=example,dc=com'
    adminPassword: 'password'
    userSearchBase: 'dc=example,dc=com'
    usernameAttribute: 'uid'

  3. Log in
    3.1. A user enters login and password,
    and then the Joplin server checks if the LDAP environment
    variables are present, and try to connect to the LDAP server.
    3.2. Find the user in the LDAP server and if successful then check if the internal database has the user
    3.3. If the internal database has the user then provide access to the user.
    3.4. if the new user is absent from the Joplin database and needs to create a new one in the Joplin database.
    3.5. Provide access to the user.
    3.6. If the LDAP server is unavailable or has not the user needs to use an internal database.

Let's discuss it.

4 Likes

bump. It's required feature, IMO.

  • server-side features:

    • bind user to LDAP attribute (ex, not DN, but guid or any other id) in case user change it's human identifier (change mail, change username, etc.)
  • client should be managed with some kind of policies:

    • disabling per-user encryption
    • cloning encryption key to server side in case user forget it.

It's already implemented and the config documentation is there:

2 Likes

When trying to set this up, I'm getting "Could not bind to the ldap server: Unable to verify the first certificate"

Presumably this is because I am connecting to an LDAPS port, and it's trying to validate the cert. However, I can't seem to find any breadcrumbs to lead me to how to teach the server to accept the cert, or how to tell it to skip verify. Any guidance there?