mirror of
https://github.com/YunoHost-Apps/kanboard_ynh.git
synced 2024-09-03 19:36:17 +02:00
40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
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 the disk.
|
|
|
|
User Provider
|
|
-------------
|
|
|
|
When the authentication is successful, your driver must return an object that represents the user.
|
|
This object must implement 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)
|
|
- [SMS Two-Factor Authentication](https://github.com/kanboard/plugin-sms-2fa)
|