Saltar al contenido principal

OpenList

OpenList es un programa de lista de archivos y WebDAV que sirve muchos servicios de almacenamiento, derivado de AList. Sus configuraciones de inicio de sesión único (SSO) soportan Casdoor directamente. Con Casdoor como plataforma SSO, los usuarios inician sesión en OpenList con su cuenta de Casdoor, y OpenList puede crear su usuario de OpenList en el primer inicio de sesión.

Crear la aplicación en Casdoor​

  1. En la consola de administración de Casdoor, abre la organización de tus usuarios y agrega una aplicación, o abre una existente.

    No uses la organización built-in: todos sus usuarios son administradores globales de Casdoor.

  2. Agrega el callback de OpenList a las Redirect URLs:

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

    OpenList agrega ?method=sso_get_token o ?method=get_sso_id a él. Casdoor ignora la consulta cuando coincide con la URL, por lo que una entrada cubre ambas.

  3. Guarda y anota el Client ID y el Client secret.

OpenList construye el callback desde site_url en su config.json. Detrás de un proxy inverso, establece site_url a la URL pública de OpenList, o reenvía los encabezados X-Forwarded-Proto y X-Forwarded-Host. De lo contrario, la URL de callback no coincidirá.

Configurar el inicio de sesión único en OpenList​

  1. En OpenList, ve a Settings > Single Sign-On, y completa la configuración:

    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>: Los valores de la aplicación Casdoor.
    • SSO endpoint name: La URL de Casdoor.
    • SSO auto register: Crea un usuario de OpenList en el primer inicio de sesión, con SSO default dir como ruta base y SSO default permission como permisos. Sin esto, solo pueden iniciar sesión los usuarios que hayan conectado su cuenta.

    SSO organization name, SSO application name y SSO jwt public key no tienen efecto. Déjelos vacíos.

  2. Haga clic en Save.

Cómo nombra OpenList a los usuarios​

Con la plataforma Casdoor, OpenList solicita al endpoint UserInfo de Casdoor el scope profile, vincula al usuario de OpenList con sub, el ID del usuario de Casdoor, y nombra al usuario según preferred_username, el nombre de usuario de Casdoor. Si ya existe un usuario de OpenList con ese nombre, conéctelo a Casdoor antes de su primer inicio de sesión con Casdoor.

Con la plataforma OIDC, OpenList utiliza la única claim de SSO oidc username key del token de identificación tanto como nombre de usuario como para el vínculo con el usuario de Casdoor:

Casdoor Token formatSSO oidc username key
JWT (predeterminado)name, que contiene el nombre de usuario en este formato
JWT-Standardpreferred_username

No use sub: es el ID del usuario de Casdoor, una cadena aleatoria larga, que se convierte en el nombre de usuario de OpenList. Tampoco use una claim de nombre para mostrar: los nombres para mostrar no son únicos, por lo que dos usuarios de Casdoor podrían terminar siendo un solo usuario de OpenList. Dado que el nombre de usuario también es el vínculo, cambiar el nombre de un usuario en Casdoor le otorga un nuevo usuario de OpenList en esta plataforma; la plataforma Casdoor no tiene este problema.

Conectar usuarios existentes de OpenList​

Un usuario existente de OpenList puede conectar su cuenta a Casdoor en lugar de obtener un nuevo usuario:

  1. Inicie sesión en OpenList con la contraseña y abra el perfil.
  2. Haga clic en Connect to Single Sign-On Platform e inicie sesión en Casdoor.

OpenList rechaza una cuenta de Casdoor que ya esté conectada a otro usuario de OpenList.

Verificar el resultado​

  1. Abra la página de inicio de sesión de OpenList en una ventana privada del navegador y haga clic en el botón de inicio de sesión único.
  2. Inicie sesión en Casdoor. OpenList inicia sesión al usuario cuyo nombre es el nombre de usuario de Casdoor.

Solución de problemas​

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 muestra Redirect URI: ... doesn't exist in the allowed Redirect URI listEl callback construido por OpenList difiere de Redirect URLs. Establezca site_url, o añada la URL del error. Con SSO compatibility mode activado, OpenList usa https://openlist.example.com/api/auth/sso_get_token y https://openlist.example.com/api/auth/get_sso_id; añada ambos.
Sign-in fails with a TLS errorOpenList can't skip TLS verification. Serve Casdoor with a valid certificate.

Véase también​