Inicio
» Cómo
»
Permitir que los usuarios autorizados creen salas de Jitsi con inicio de sesión de Keycloak.
Permitir que los usuarios autorizados creen salas de Jitsi con inicio de sesión de Keycloak.
Para limitar la creación de salas de Jitsi Meet a usuarios específicos, se requiere la autenticación de los anfitriones y la emisión de credenciales únicamente a las cuentas aprobadas. Para las nuevas instalaciones autoalojadas, Jitsi recomienda ahora la autenticación basada en tokens; esta guía utiliza Keycloak como proveedor de identidad y permite que los invitados se unan a las salas solo después de que un anfitrión aprobado las inicie.
1. Verifique la implementación y elija sus cuentas de host.
Estas instrucciones están dirigidas a una instalación autohospedada de Jitsi Meet a partir de paquetes Debian o Ubuntu, con acceso de administrador a Prosody, Nginx y la configuración web de Jitsi. Se presupone que Keycloak ya está instalado o puede implementarse de forma segura. Prosody es el servidor de mensajería XMPP; un JSON Web Token (JWT) es una credencial firmada que se utiliza para demostrar que un usuario se ha autenticado. Keycloak es un proveedor de identidad que gestiona el inicio de sesión de los usuarios.
El manual de Jitsi marca la receta antigua de dominio seguro con nombre de usuario y contraseña como obsoleta y dirige las nuevas instalaciones a la autenticación por token. Sus instrucciones de autenticación actuales se actualizaron el 5 de octubre de 2026. Si ya utiliza Docker, no copie las rutas de los paquetes que aparecen a continuación: la guía de configuración oficial de Docker utiliza variables de entorno como ENABLE_AUTH, ENABLE_GUESTS, y AUTH_TYPE.
Antes de editar, anote el nombre de host de su reunión pública, confirme que HTTPS funciona, haga una copia de seguridad de los archivos de configuración que planea modificar y decida qué cuentas con nombre pueden albergar reuniones. En este ejemplo, la dirección de la reunión es jitsi.example.com; reemplácela en todas partes con su host real.
2. Otorgue acceso en Keycloak únicamente a los hosts autorizados.
Crear un dominio dedicado
En la consola de administración de Keycloak, cree y seleccione un reino llamado jitsi-realm. Un reino es una colección aislada de usuarios y configuraciones de aplicaciones. Desactive el registro de usuarios abierto y evite importar automáticamente un directorio de empresa sin restricciones: con esta configuración, cualquier cuenta que pueda autenticarse en el reino aceptado puede convertirse en creador de reuniones.
Crea un dominio independiente para mantener bajo tu control la lista de creadores de reuniones de Jitsi.
Registra el cliente web de Jitsi
Cree un cliente OpenID Connect llamado jitsi. OpenID Connect (OIDC) es el protocolo de inicio de sesión que Keycloak utiliza para devolver información de identidad a Jitsi. Siguiendo el ejemplo oficial de Jitsi, introduzca estos valores exactos de devolución de llamada, ajustando el nombre de host:
URI de redireccionamiento válida:https://jitsi.example.com/static/sso.html
URI de redireccionamiento válida después del cierre de sesión:https://jitsi.example.com/static/logout.html
Origen web:https://jitsi.example.com
El cliente Jitsi está registrado como una aplicación OpenID Connect en Keycloak.La URI de redireccionamiento envía al host que ha iniciado sesión de vuelta a Jitsi después de la autenticación.
Añade las personas permitidas
En la sección Usuarios, cree una cuenta para cada host autorizado y, a continuación, establezca la contraseña de dicho usuario en Credenciales. Utilice cuentas independientes en lugar de compartir un único inicio de sesión de administrador. Si una cuenta ya no debe crear reuniones, debe deshabilitarse o denegarse su acceso a este dominio. Si necesita restricciones para un solo grupo dentro de un dominio compartido, añada una política de autorización verificada por separado; los pasos descritos aquí no aplican automáticamente la pertenencia a grupos de Keycloak.
Limita la lista de anfitriones de Jitsi elegibles a las cuentas gestionadas individualmente.Configure una credencial independiente para cada host aprobado antes de probar el inicio de sesión.
3. Conecta Keycloak al servidor Jitsi.
Proxy Keycloak puntos finales de reino a través de HTTPS
Configure Keycloak con el nombre de host público correcto y los encabezados de proxy inverso de confianza, luego dirija /realms/las solicitudes desde su nombre de host Jitsi a su oyente privado de Keycloak. Para una instancia de Keycloak disponible en 127.0.0.1:18080, agregue el siguiente bloque de ubicación dentro del bloque de servidor HTTPS Jitsi Nginx existente, antes de las rutas generales de Jitsi:
Esto presupone que Keycloak es accesible localmente en ese puerto; reemplace el puerto de origen para su implementación. No exponga innecesariamente la consola de administración ni el puerto de backend de Keycloak. Consulte la documentación del proxy inverso de Keycloak para obtener información sobre el proxy de producción y los controles de nombre de host.
El editor de Nginx muestra la sección realm-proxy; mantenga intactas las demás rutas de Jitsi.
Requerir tokens en Prosody
Editar /etc/prosody/conf.avail/jitsi.example.com.cfg.lua. Agregue la configuración del emisor y la audiencia, luego actualice el archivo principal existente VirtualHostpara usar la autenticación por token. Combine estas líneas con su otra configuración; no cree una segunda copia de ese bloque de host:
Para el acceso de invitados, agregue un guest.jitsi.example.comhost virtual separado con authentication = "jitsi-anonymous", c2s_require_encryption = false, y el smacksmódulo, como se muestra en las instrucciones de Jitsi. Este es un dominio XMPP interno: no cree un DNS público ni un certificado separado para él. En la lista de módulos del host principal existente, agregue persistent_lobby; en la conference.jitsi.example.comlista de módulos del componente MUC existente, agregue muc_wait_for_host. Un MUC es el componente de chat multiusuario que mantiene las salas de conferencias. Conserve los módulos ya listados.
Configurar el flujo de inicio de sesión del navegador
En /etc/jitsi/meet/jitsi.example.com-config.js, agregue anonymousdomain: 'guest.jitsi.example.com'al hostsobjeto existente. Agregue la configuración OIDC documentada por Jitsi:
Estos valores implementan el flujo de inicio de sesión con código de autorización mediante PKCE (Proof Key for Code Exchange), una protección para la autorización basada en navegador. El manual de Jitsi indica específicamente que se debe dejar jicofo.confla autenticación deshabilitada para el modo token; no copie su bloque de autenticación de dominio seguro XMPP obsoleto.
El formulario de inicio de sesión del usuario representa la verificación de credenciales antes de que un anfitrión autorizado cree una sala.
Validar y recargar los servicios
Verifique la sintaxis de Nginx y luego reinicie solo los servicios que aparecen en las instrucciones de autenticación de tokens actuales. Realice estos cambios durante una ventana de mantenimiento si su servidor Jitsi ya está en uso.
4. Evite estos errores de permisos e inicio de sesión.
Todos pueden crear una sala: confirmen que el anfitrión principal de Prosody esté autenticado mediante token, que no se permiten tokens vacíos y que el anfitrión invitado sea independiente. Realicen la prueba en una sesión de navegador limpia, no en una que aún tenga una sesión iniciada válida.
Los usuarios autorizados no pueden iniciar sesión: compare el emisor del reino de Keycloak, el nombre de host HTTPS público, el ID de cliente, la URI de redireccionamiento y la Prosody cache_keys_url. Un error en la redireccionamiento del navegador no indica que los permisos del usuario sean correctos.
Los invitados nunca entran en una sala: compruebe el dominio anónimo tanto en Prosody como en Jitsi config.js, además de los módulos wait-for-host. Un estado de espera en el lobby o para invitados es diferente de un fallo de autenticación.
5. Verifica quién puede crear una nueva reunión.
Abre una URL de sala que nunca hayas usado en una ventana de navegación privada sin iniciar sesión. El invitado no debería poder iniciar la conferencia como anfitrión. A continuación, inicia sesión como usuario autorizado de Keycloak y crea esa sala; un invitado debería poder unirse si has habilitado el dominio de invitado. Por último, prueba con una cuenta deshabilitada o no autorizada y confirma que no puede autenticarse ni crear una nueva sala.
Un anfitrión autenticado introduce el nombre de una sala para iniciar una reunión tras superar la comprobación de inicio de sesión.
Si alguna prueba falla, inspeccione sudo journalctl -u prosody -u nginx --since "10 minutes ago"junto con los eventos de autenticación de Keycloak, sin publicar tokens ni contraseñas de los registros. La solución se confirma solo cuando una cuenta autorizada puede crear una sala nueva y un usuario no autenticado no puede.