Bacula Pluggable Authentication Modules API Framework BPAM

Starting from Bacula Enterprise 12.6 new user authentication API framework is introduced which allows to configure a different authentication mechanisms (user credentials verification) using a dedicated Director plugins and Console resource configuration. This is called BPAM - Bacula Pluggable Authentication Modules.

The new framework support standard user/password and MFA authentication schemes which are fully driven by external plugins. On the client side bconsole when noticed will perform user interaction to collect required credentials. Bacula will still support all previous authentication schemas including CRAM-MD5 and TLS. You can even configure TLS Authentication together with new BPAM authentication raising required security level. BPAM authentication is available for named Console resources only.

The BPAM framework extend a standard Director Plugin API architecture with the following plugin entry points:

bRC getPluginAuthenticationData(bpContext *ctx, const char *param, void **data);
bRC getPluginAuthorizationData(bpContext *ctx, const char *param, void **data);

and plugin events mentioned above:

...
  bDirEventAuthenticationQuestion      = 1000,     // *value is a bDirAuthValue struct allocated by Dir
                                                   // to get return value from
  bDirEventAuthenticationResponse      = 1001,     // *value is a char* to user response
  bDirEventAuthenticate                = 1002,     // return bRC_OK when authenticate is successful
...

Possible Next Steps

Go back to Bacula FD Plugin API.

Go back to Developer Guide.