Passer au contenu principal

OpenList

OpenList est un programme de liste de fichiers et WebDAV qui sert de nombreux services de stockage, forké d'AList. Ses paramètres d'authentification unique (SSO) prennent directement en charge Casdoor. Avec Casdoor comme plateforme SSO, les utilisateurs se connectent à OpenList avec leur compte Casdoor, et OpenList peut créer leur utilisateur OpenList lors de la première connexion.

Créer l'application dans Casdoor​

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

    N'utilisez pas l'organisation built-in : tous ses utilisateurs sont administrateurs globaux de Casdoor.

  2. Ajoutez le callback d'OpenList aux Redirect URLs :

    https://openlist.example.com/api/auth/sso_callback

    OpenList ajoute ?method=sso_get_token ou ?method=get_sso_id à cette URL. Casdoor ignore la chaîne de requête lorsqu'il compare les URL, donc une seule entrée couvre les deux cas.

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

OpenList construit le callback à partir de site_url dans son fichier config.json. Derrière un reverse proxy, définissez site_url sur l'URL publique d'OpenList, ou transmettez les en-têtes X-Forwarded-Proto et X-Forwarded-Host. Sinon, l'URL de callback ne correspondra pas.

Configurer l'authentification unique dans OpenList​

  1. Dans OpenList, allez dans Settings > Single Sign-On, et remplissez les paramètres :

    SettingValue
    SSO login enabledOn
    SSO login platformCasdoor
    SSO client id<your-client-id>
    SSO client secret<your-client-secret>
    SSO endpoint namehttps://door.example.com
    SSO auto registerOn
    SSO default dir/
    SSO default permission0
    • <your-client-id>, <your-client-secret> : Les valeurs de l'application Casdoor.
    • SSO endpoint name : L'URL de Casdoor.
    • SSO auto register : crée un utilisateur OpenList lors de la première connexion, avec SSO default dir comme chemin de base et SSO default permission comme permissions. Sans cette option, seuls les utilisateurs ayant lié leur compte peuvent se connecter.

    Les champs SSO organization name, SSO application name et SSO jwt public key n'ont aucun effet. Laissez-les vides.

  2. Cliquez sur Save.

Comment OpenList nomme les utilisateurs​

Avec la plateforme Casdoor, OpenList interroge le point de terminaison UserInfo de Casdoor pour la portée profile, lie l'utilisateur OpenList à sub (l'ID utilisateur Casdoor) et nomme l'utilisateur d'après preferred_username (le nom d'utilisateur Casdoor). Si un utilisateur OpenList portant ce nom existe déjà, connectez-le à Casdoor avant sa première connexion via Casdoor.

Avec la plateforme OIDC, OpenList utilise la revendication unique de SSO oidc username key du jeton ID à la fois comme nom d'utilisateur et comme lien vers l'utilisateur Casdoor :

Casdoor Token formatSSO oidc username key
JWT (par défaut)name, qui contient le nom d'utilisateur dans ce format
JWT-Standardpreferred_username

N'utilisez pas sub : c'est l'ID utilisateur Casdoor, une longue chaîne aléatoire, qui devient alors le nom d'utilisateur OpenList. N'utilisez pas non plus une revendication de nom affiché : les noms affichés ne sont pas uniques, donc deux utilisateurs Casdoor pourraient finir par être un seul utilisateur OpenList. Comme le nom d'utilisateur est aussi le lien, renommer un utilisateur dans Casdoor lui crée un nouvel utilisateur OpenList sur cette plateforme ; la plateforme Casdoor n'a pas ce problème.

Connecter des utilisateurs OpenList existants​

Un utilisateur OpenList existant peut lier son compte à Casdoor au lieu d'obtenir un nouvel utilisateur :

  1. Connectez-vous à OpenList avec le mot de passe, puis ouvrez le profil.
  2. Cliquez sur Connect to Single Sign-On Platform, puis connectez-vous à Casdoor.

OpenList refuse un compte Casdoor déjà connecté à un autre utilisateur OpenList.

Vérifier le résultat​

  1. Ouvrez la page de connexion OpenList dans une fenêtre de navigation privée, puis cliquez sur le bouton d'authentification unique (SSO).
  2. Connectez-vous à Casdoor. OpenList connecte l'utilisateur dont le nom correspond au nom d'utilisateur Casdoor.

Dépannage​

SymptomCause and fix
New users get a long random string as their usernameThe platform is OIDC with SSO oidc username key set to sub. Set the key as described in How OpenList names the users, or use the platform Casdoor. Rename existing users in OpenList.
cannot get username from SSO providerCasdoor returned no preferred_username. If the application has a Token fields list, add Name to it: Casdoor returns only the fields in that list from the UserInfo endpoint.
The single sign on platform is not bound to any usersSSO auto register is off and the user hasn't connected their account. Turn it on, or connect the user.
Casdoor affiche Redirect URI: ... doesn't exist in the allowed Redirect URI listLe callback construit par OpenList diffère de Redirect URLs. Définissez site_url, ou ajoutez l'URL indiquée dans l'erreur. Avec SSO compatibility mode activé, OpenList utilise https://openlist.example.com/api/auth/sso_get_token et https://openlist.example.com/api/auth/get_sso_id ; ajoutez les deux.
Sign-in fails with a TLS errorOpenList can't skip TLS verification. Serve Casdoor with a valid certificate.

Voir aussi​