octoprint ldap plugin that might work?
Go to file
Compunautics ef92234e65
Allow user lookup by apikey
This plugin breaks the GCode Viewer as is. When using this plugin and accessing the GCode Viewer, one gets this error in the log:

TypeError: findUser() got an unexpected keyword argument 'apikey'

This commit ensures that the findUser function knows how to handle the 'apikey' parameter from ~/octoprint/server/util/__init__.py if submitted.
2019-02-09 13:50:48 -06:00
octoprint_auth_ldap Allow user lookup by apikey 2019-02-09 13:50:48 -06:00
.gitignore Initial commit 2015-01-27 12:25:05 +01:00
babel.cfg Added babel stuff, Cleaning and moved requirements into setup.py 2015-04-16 14:52:37 +02:00
MANIFEST.in Added forgotten MANIFEST.in 2015-04-16 15:30:26 +02:00
README.md Update README 2018-01-28 12:13:38 -05:00
requirements.txt Make LDAP auth fonctionnal 2017-11-08 00:35:38 +01:00
setup.py Make LDAP auth fonctionnal 2017-11-08 00:35:38 +01:00

OctoPrint LDAP auth Plugin

This plugin allow users to be connected using an LDAP server. This system works

Details

When you try to login, OctoPrint search for user in this local database (users.yaml)

  • If it found a user, check if this user exists also on LDAP
  • If user exists on LDAP, use LDAP bind() to check login / password
  • If user not exists on LDAP, use native password system to check it

======================================

  • If it not found a user in local database, try to connect directly on LDAP
  • If login on LDAP il OK, a new local user is added with role "user" and a random password (password should never be used)
  • User is connected

======================================

  • An admin (default user for exemple), could change a user permissions or account state.
  • Password of LDAP users can't be changed

Configuration

You could configure LDAP server in plugin config, or manually in config.yaml

accessControl:
  ldap_uri: ldaps://ldap.server.com/
  ldap_tls_reqcert: demand
  ldap_search_base: dc=server,dc=com
  groups: TheGroupName

Groups

  • You can list multiple groups via comma seperation: Group1, Group2, Group3.
  • Leaving blank will skip a group check.

Installation

You can install it using pip install https://github.com/gillg/OctoPrint-LDAP/archive/master.zip

Or with plugin manager into OctoPrint