Passer au contenu principal

Kanboard

Kanboard est un outil de gestion de projet auto-hébergé qui utilise des tableaux Kanban. Son plugin OAuth2 authentifie les utilisateurs via un fournisseur générique OAuth 2.0. Avec Casdoor comme fournisseur, les utilisateurs se connectent à Kanboard avec leur compte Casdoor.

Installer le plugin OAuth2​

  1. Installez le plugin de l'une de ces manières :
    • Dans Kanboard, ouvrez Settings > Plugins > Plugin Directory et installez OAuth2. L'installateur web nécessite que PLUGIN_INSTALLER soit défini sur true dans config.php, un répertoire plugins accessible en écriture par le serveur web, et l'extension PHP Zip.
    • Téléchargez le plugin et extrayez-le dans plugins/OAuth2 dans le répertoire Kanboard. Le nom du répertoire est sensible à la casse.
  2. Assurez-vous que Settings > Application settings > Application URL correspond à l'URL publique de Kanboard, par exemple https://kanboard.example.com/. Le plugin construit son URL de rappel à partir de celle-ci.

Créer l'application dans Casdoor​

  1. Dans Kanboard, allez dans Settings > Integrations > OAuth2 Authentication, et copiez l'Callback URL. Avec réécriture d'URL, elle est :

    https://kanboard.example.com/oauth/callback

    Sans réécriture d'URL, elle est https://kanboard.example.com/?controller=OAuthController&action=handler&plugin=OAuth2.

  2. Dans la console d'administration Casdoor, ouvrez l'organisation de vos utilisateurs et ajoutez une application, ou ouvrez-en une existante.

  3. Ajoutez l'URL de rappel dans Redirect URLs.

  4. Enregistrez, et notez le Client ID et le Client secret.

Configurer le plugin OAuth2​

  1. Dans Kanboard, allez dans Settings > Integrations > OAuth2 Authentication, et remplissez les champs :

    FieldValue
    Client ID<your-client-id>
    Client Secret<your-client-secret>
    Authorize URLhttps://door.example.com/login/oauth/authorize
    Token URLhttps://door.example.com/api/login/oauth/access_token
    User API URLhttps://door.example.com/api/userinfo
    Scopesopenid profile email
    Username Keypreferred_username
    Name Keyname
    Email Keyemail
    User ID Keysub
    Allow Account CreationOn
    • <your-client-id>, <your-client-secret> : Les valeurs de l'application Casdoor.
    • User API URL : Le point de terminaison UserInfo de Casdoor. Il renvoie sub (l'ID utilisateur Casdoor), preferred_username (le nom d'utilisateur) et name (le nom d'affichage) pour la portée profile, et email pour la portée email.
    • User ID Key : Kanboard lie l'utilisateur Kanboard à cette valeur. sub ne change pas lorsque l'utilisateur est renommé dans Casdoor.
    • Allow Account Creation : Crée un utilisateur Kanboard lors de la première connexion. Sans cela, seuls les utilisateurs ayant lié leur compte peuvent se connecter.
  2. Cliquez sur Save.

Synchroniser les groupes Casdoor​

Le point de terminaison UserInfo renvoie également les groupes de l'utilisateur dans groups. Pour créer des groupes Kanboard à partir de ceux-ci :

  1. Dans l'application Casdoor, sur l'onglet OIDC/OAuth, définissez Token group format sur Name (group), afin que les groupes arrivent sous la forme developers au lieu de my-org/developers.
  2. Dans les paramètres du plugin, définissez Groups Key sur groups. Pour n'utiliser que certains groupes, listez-les dans Group Filter, séparés par des virgules.

Kanboard trouve un utilisateur retournant grâce à la valeur User ID Key stockée, et non par nom d'utilisateur ou e-mail. Un utilisateur Kanboard existant ayant le même nom d'utilisateur que l'utilisateur Casdoor ne peut pas se connecter avec Casdoor tant que les comptes ne sont pas liés :

  • L'utilisateur se connecte à Kanboard avec son mot de passe, ouvre les comptes externes de son profil, et clique sur Link OAuth2 account.
  • Ou bien un administrateur saisit l'ID utilisateur Casdoor, la valeur sub, dans le champ OAuth2 ID des paramètres d'authentification de l'utilisateur.

Vérifier le résultat​

  1. Ouvrez Kanboard dans une fenêtre de navigation privée. La page de connexion affiche OAuth2 login.
  2. Cliquez dessus et connectez-vous à Casdoor. Kanboard s'ouvre avec l'utilisateur Casdoor connecté.

Dépannage​

SymptomCause and fix
Kanboard shows External authentication failedThe user isn't linked yet and Allow Account Creation is off, or a Kanboard user with the same username exists. Turn on account creation, or link the user.
Casdoor shows Redirect URI: ... doesn't exist in the allowed Redirect URI listApplication URL in Kanboard is wrong, often still http://localhost/. Fix it, and add the Callback URL of the plugin to Redirect URLs.
The username, name, or email of new users is emptyScopes lacks profile or email, or the application's Token fields list leaves the fields out. Casdoor returns only the fields in that list from the UserInfo endpoint.
You use https://door.example.com/api/get-account as User API URLThat endpoint returns the user inside data. Use the UserInfo endpoint instead, as shown above.

Voir aussi​