Skip to main content

Nextcloud

Objectif : Permettre à vos utilisateurs de se connecter à Nextcloud en utilisant Authentik comme fournisseur d’authentification SSO via OpenID Connect (OIDC)

Pré-requis

Avant de commencer :

  • Nextcloud doit être installé et accessible en HTTPS.

  • Nextcloud doit avoir installé l’application OpenID Connect user backend.

  • Vous devez disposer des accès administrateur à Authentik et à Nextcloud.

  • Vous devez définir un nom de domaine FQDN pour Nextcloud (ex. nextcloud.company) et pour Authentik (ex. authentik.company).

Si vous utilisez le chiffrement côté serveur (Server-Side Encryption) dans Nextcloud, sachez qu’il ne fonctionne pas avec OpenID/SAML car Nextcloud a besoin du mot de passe en clair. Dans ce cas, utilisez plutôt LDAP.


1) Étapes dans Authentik

Créer une application et un provider OpenID Connect

  1. Connectez-vous à Authentik en tant qu’administrateur.

  2. Dans le menu, allez à Applications → Applications.

  3. Cliquez sur Create with Provider pour créer à la fois un provider et une application.

  4. Configurez l’application et le provider :

    • Nom de l’application/provider : un libellé clair, par exemple Nextcloud.

    • Provider type : OAuth2/OpenID Connect.

    • Redirect URI strict : https://nextcloud.company/apps/user_oidc/code (remplacez nextcloud.company par votre domaine Nextcloud).

    • Signing key : sélectionnez une clé de signature valide.

    • Advanced protocol settings → Subject mode : Based on the User’s UUID.

  5. Notez le Client ID et le Client secret générés par Authentik, vous en aurez besoin dans Nextcloud.

Astuce : si vous souhaitez transmettre à Nextcloud le quota, les groupes ou d’autres attributs utilisateurs, vous pouvez créer un Property Mapping personnalisé dans Authentik (optionnel).


2) Configuration dans Nextcloud

Configurer OpenID Connect dans Nextcloud

  1. Assurez-vous que l’application OpenID Connect user backend est installée dans Nextcloud.

  2. Connectez-vous au panneau d’administration de Nextcloud.

  3. Allez dans Paramètres → OpenID Connect.

  4. Ajoutez un nouveau fournisseur (+) avec ces informations :

    Paramètre Valeur
    Identifier authentik
    Client ID Copié depuis Authentik
    Client secret Copié depuis Authentik
    Discovery endpoint https://authentik.company/application/o/<application_slug>/.well-known/openid-configuration
    Scope email profile nextcloud openid
    User ID mapping sub (ou user_id si vous souhaitez connecter des comptes existants)
    Display name mapping name
    Email mapping email
    Quota mapping quota (si vous avez créé un Property Mapping)
    Groups mapping groups (si vous avez créé un Property Mapping)

    (Remplacez authentik.company par votre domaine Authentik et <application_slug> par le slug de votre application Authentik.)

  5. Activez les options supplémentaires comme Use group provisioning si vous souhaitez que Nextcloud écrive les groupes.


3) Tester l’authentification SSO

  1. Ouvrez un navigateur et accédez à l’URL de votre Nextcloud.

  2. À l’écran de connexion, choisissez l’option Connexion avec OpenID Connect Authentik.

  3. Vous devriez être redirigé vers Authentik pour vous authentifier, puis revenir automatiquement à l’interface Nextcloud une fois authentifié.


4) (Optionnel) Rendre Nextcloud redirection automatique vers Authentik

Si vous souhaitez que Nextcloud redirige automatiquement vers Authentik au lieu d’afficher sa page de connexion :

sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:app:set --value=0 user_oidc allow_multiple_user_backends

(ou l’équivalent si vous n’utilisez pas Docker)

Notes et recommandations

  • L’authentification via OpenID Connect nécessite HTTPS : si Nextcloud n’est pas servi en HTTPS, OAuth2/OIDC ne fonctionnera pas.

  • Si vous utilisez un reverse proxy et que Authentik ou Nextcloud utilisent des domaines internes, vous devrez peut-être ajouter 'allow_local_remote_servers' => true dans config.php de Nextcloud pour autoriser les requêtes internes au provider Authentik.

  • Si vous avez des utilisateurs existants que vous souhaitez correspondre à des comptes Nextcloud existants, utilisez la mappage user_id configurable.