diff options
Diffstat (limited to 'doc/plugin-authentication.markdown')
-rw-r--r-- | doc/plugin-authentication.markdown | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/doc/plugin-authentication.markdown b/doc/plugin-authentication.markdown new file mode 100644 index 00000000..30ccda7c --- /dev/null +++ b/doc/plugin-authentication.markdown @@ -0,0 +1,39 @@ +Authentication Plugin +===================== + +New authentication backends can be written with very few lines of code. + +Provider Registration +--------------------- + +In the method `initialize()` of your plugin, call the method `register()` of the class `AuthenticationManager`: + +```php +public function initialize() +{ + $this->authenticationManager->register(new ReverseProxyLdapAuth($this->container)); +} +``` + +The object provided to the method `register()` must implement one of the pre-defined authentication interfaces. + +Those interfaces are defined in the namepsace `Kanboard\Core\Security`: + +- `Kanboard\Core\Security\PreAuthenticationProviderInterface` +- `Kanboard\Core\Security\PostAuthenticationProviderInterface` +- `Kanboard\Core\Security\PasswordAuthenticationProviderInterface` +- `Kanboard\Core\Security\OAuthAuthenticationProviderInterface` + +The only requirement is to implement the interfaces, you class can be written the way you want and located anywhere on disk. + +User Provider +------------- + +When the authentication is successful, your driver must return an object that represent the user. +This object must implements the interface `Kanboard\Core\User\UserProviderInterface`. + +Example of authentication plugins +--------------------------------- + +- [Authentication providers included in Kanboard](https://github.com/fguillot/kanboard/tree/master/app/Auth) +- [Reverse-Proxy Authentication with LDAP support](https://github.com/kanboard/plugin-reverse-proxy-ldap) |