Skip to main content

Database Backends

Nauthilus needs database backends to validate user credentials. Besides the cache backend, which is special, Nauthilus can use LDAP and Lua based backends. The current implementation is limited to use one LDAP and one Lua backend at the same time.

If you define an LDAP and a Lua backend, both will be queried in the order you have defined in server::backends

warning

The "idea" of a backend is to check user credentials!

Do not mix password verification and policy tasks in the backends!

If you want to enforce policies, make use of Lua filters, because they never influence the brute-force-logic nor is it cached on Redis. If you combine both aspects in the backends, you will risk of learning correct passwords as wrong!

Database Backend Topics

The database backends configuration is divided into the following topics:

Configuration in server::backends

To enable database backends, you need to configure them in the server::backends section of your configuration file:

server:
backends:
- cache
- ldap
- lua

The order of backends matters! The cache backend should always be the first backend.

For Multi-LDAP and Multi Lua-backends, you can use a special syntax to specify which pool or backend to use:

server:
backends:
- cache
- ldap(pool1) # Use the LDAP pool named "pool1"
- lua(backend2) # Use the Lua backend named "backend2"

This syntax allows you to use multiple LDAP pools or Lua backends with different configurations. The pool or backend name must match a name defined in the optional_ldap_pools or optional_lua_backends sections.