Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Keycloak

Aprenda a configurar LibreChat para usar Keycloak para la autenticación de usuarios.

  1. Acceder a la consola de administración de Keycloak:
  • Abra la Keycloak Admin Console en su navegador web. Por lo general, se encuentra en una URL como http://localhost:8080/auth/admin/.
  1. Crear un Realm (si es necesario):
  • Si aún no tienes un realm para tu aplicación, crea uno. Haz clic en 'Add Realm' y asígnale un nombre.
  1. Crear un cliente:
  • Dentro de su ámbito, haga clic en 'Clients' y luego en 'Create'.
  • Ingrese un client ID y seleccione 'openid-connect' como el Client Protocol.
  • Establezca 'Client Authentication' en 'On'.
  • En 'Valid Redirect URIs', introduce http://localhost:3080/oauth/openid/callback o la URI adecuada para tu aplicación.

image

image

image

  1. Configurar el cliente:
  • Después de crear el cliente, serás redirigido a su página de configuración.
  • Tome nota del 'Client ID' y el 'Secret' de la pestaña 'Credentials'; los necesitará para su aplicación.

image

  1. Agregar roles (Opcional): Si deseas restringir el acceso a usuarios con roles específicos, puedes definir roles en Keycloak y asignarlos a los usuarios.
  • Ve a la pestaña 'Roles' en tu cliente o reino (dependiendo de dónde quieras definir los roles).
  • Cree roles que coincidan con el/los valor(es) que tiene en OPENID_REQUIRED_ROLE.

image

  1. Asignar roles a los usuarios (Opcional):
  • Ve a 'Users', selecciona un usuario y ve a la pestaña 'Role Mappings'.
  • Asigne al menos uno de los roles especificados en OPENID_REQUIRED_ROLE al usuario.

image

  1. Obtener la ruta de la lista de roles dentro del token (Opcional):
  • Decodifique su jwtToken del proveedor OpenID y determine la ruta para la lista de roles dentro del token de acceso. Por ejemplo, si está utilizando Keycloak, la ruta es realm_access.roles.
  • Coloque esta ruta en la variable OPENID_REQUIRED_ROLE_PARAMETER_PATH en el archivo .env.
  • Mediante el parámetro OPENID_REQUIRED_ROLE_TOKEN_KIND puede especificar qué tipo de token desea utilizar. Los valores posibles son access e id.
  1. Actualice la configuración de su proyecto:
  • Abra el archivo .env en la carpeta de su proyecto y añada las siguientes variables:
    OPENID_ISSUER=http://localhost:8080/realms/[YourRealmName]
    OPENID_CLIENT_ID=[YourClientID]
    OPENID_CLIENT_SECRET=[YourClientSecret]
    OPENID_SESSION_SECRET=[JustGenerateARandomSessionSecret]
    OPENID_CALLBACK_URL=/oauth/openid/callback
    OPENID_SCOPE="openid profile email"
    OPENID_REQUIRED_ROLE=[YourRequiredRole] # Single role or comma-separated roles (e.g., role1,role2,admin)
    OPENID_REQUIRED_ROLE_TOKEN_KIND=(access|id) # that means, `access` or `id`
    OPENID_REQUIRED_ROLE_PARAMETER_PATH="realm_access.roles"
     
    # Optional: redirects the user to the end session endpoint after logging out
    OPENID_USE_END_SESSION_ENDPOINT=true 

¿Qué te parece esta guía?