Seguridad · 6 min read · Dec 30, 2025

Autenticación de Dos Factores para ownCloud

ilumina tu propia Nube utilizando dos factores para autenticar

por arnobabotte @pixabay

En este tutorial, te mostraré cómo proteger tu instalación de ownCloud con privacyIDEA, que puedes usar para gestionar los segundos factores de autenticación de tus usuarios.

ownCloud es un sistema para almacenar tus propios datos o los de tu empresa no en la computadora de otra persona (también conocida como “la Nube”), sino en tu propia computadora bajo tu control. privacyIDEA es un sistema para gestionar dispositivos de autenticación para la autenticación de dos factores en tu propia red - no en ningún Proveedor de Identidad - manteniendo así tu identidad y las identidades de tus usuarios también bajo tu control.

Si quieres saber cómo se verá esto, puedes echar un vistazo a este video en youtube.

Requisitos Previos

Asumo que ya tienes un sistema ownCloud 8 en funcionamiento. Hay algunos ejemplos bastante buenos por ahí. También puedes echar un vistazo a cómo instalar ownCloud 8 con nginx aquí en este sitio.

Además, asumo que estás ejecutando un sistema privacyIDEA. Este tutorial no cubre la instalación de privacyIDEA. También encontrarás un tutorial aquí en Howtoforge para instalar privacyIDEA en CentOS o puedes usar las instrucciones de instalación en la documentación.

Nota: No necesitas ejecutar privacyIDEA y ownCloud en el mismo servidor. Desatarás todo el poder de tal configuración al instalar privacyIDEA como sistema de autenticación en un servidor y configurar las otras aplicaciones como ownCloud contra este privacyIDEA. Esto también implica la ventaja de que no necesitas gestionar dispositivos de autenticación para ownCloud, dispositivos de autenticación para tu segunda aplicación y dispositivos de autenticación para tu tercera aplicación, y así sucesivamente. Verás que esta solución demuestra su fortaleza si tienes varias aplicaciones y más de dos usuarios. Pero, por supuesto, también funcionará en escenarios más pequeños.

Nota: La aplicación ownCloud privacyIDEA está en una etapa temprana de desarrollo. Por lo tanto, cualquier comentario que proporciones es muy apreciado y ayudará a mejorar esta herramienta. Puedes dar tu opinión aquí en howtoforge, a través de los problemas de github o a través del grupo de Google.

Conectar privacyIDEA a la base de datos de ownCloud

Preparando la base de datos

Hay una condición para privacyIDEA. Los usuarios de ownCloud deben ser conocidos por privacyIDEA o, al revés, los usuarios a los que asignas tokens en privacyIDEA también deben estar disponibles en ownCloud.

Puedes tener una configuración donde tus usuarios están ubicados en un directorio LDAP, pero en este ejemplo simplemente usamos la tabla de usuarios SQL existente de ownCloud.

Nota: Si estás ejecutando privacyIDEA y ownCloud en diferentes servidores, necesitas otorgar acceso a la base de datos SQL. En el caso de MySQL/MariaDB, necesitas modificar el bind-address en /etc/mysql/my.cnf de la siguiente manera:

bind-address = 0.0.0.0

Además, necesitas agregar el derecho de acceso basado en MySQL:

grant all privileges on owncloud.* to "ocuser"@"privacyIDEA-Server" identified by "password";

Ahora el usuario MySQL “ocuser” puede acceder a la base de datos en el servidor ownCloud desde el servidor privacyIDEA.

ADVERTENCIA: El tráfico de red hacia el servidor MySQL no está cifrado. Recomendamos encarecidamente configurar TLS si estás ejecutando este escenario. También puedes encontrar algunos tutoriales en este sitio para configurar MySQL con SSL.

Conectando privacyIDEA a ownCloud

Crear Resolutor de Usuarios

Ahora conectamos privacyIDEA a ownCloud, para que privacyIDEA conozca a los usuarios. Creamos un nuevo resolutor de usuarios en Config → Users.

Puedes hacer clic en el botón ownCloud que debería preestablecer todos los campos necesarios en el mapeo de atributos de la base de datos.

Luego puedes hacer clic en Test SQL Resolver para ver si todo salió bien.

Crear Reino

Ahora puedes ir a Config → Realms para crear un reino predeterminado desde el resolutor.

Ahora deberías ver los usuarios de ownCloud en la pestaña Users y poder inscribir tokens para estos usuarios.

Inscribir un Google Authenticator

privacyIDEA admite una amplia variedad de tokens, que puedes encontrar aquí.

Rápidamente inscribiremos un Google Authenticator como un ejemplo simple.

Ve a la vista de usuarios y elige un usuario para ver los detalles del usuario. Aquí puedes hacer clic en el botón Enroll New Token.

En el diálogo de inscripción puedes elegir el tipo de token y, dependiendo del tipo de token, necesitarás ingresar diferentes detalles. Pero en este ejemplo, estamos usando el tipo de token predeterminado HOTP. En la parte inferior de la página puedes ingresar un PIN OTP.

Haz clic en Enroll Token.

El token está inscrito y se te presenta un código QR, que puedes escanear con tu aplicación Google Authenticator.

Otros tipos de tokens se inscriben de otras maneras, lo cual está fuera del alcance de este tutorial. Para más información, consulta la documentación de privacyIDEA.

Ahora hemos terminado, ya que el usuario de ownCloud tiene un token asignado. Puedes repetir este proceso para más usuarios de ownCloud.

Obtener la Aplicación ownCloud

Primero, necesitas descargar la aplicación ownCloud privacyIDEA.

Puedes descargar la aplicación aquí. Necesitas copiar el directorio user_privacyidea a tu directorio ownCloud apps/. Supongamos que instalaste ownCloud en /var/www/owncloud, de modo que terminarás con una estructura como

root@owncloud:~# ls /var/www/owncloud/apps/user_privacyidea/ -l  
 -rw-rw-r-- 1 root root 1671 Jun 25 15:05 adminSettings.php  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 appinfo  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 img  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 js  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 lib  
 drwxrwxr-x 2 root root 4096 Jun 25 15:17 templates

La aplicación privacyIDEA se implementa como un backend de usuario de ownCloud y actuará como una superposición a tus backends de usuario existentes para poder saltar a la solicitud de autenticación, para agregar el segundo factor al inicio de sesión.

Configurando la Aplicación ownCloud

Ve a Apps → not Enabled y habilita la aplicación.

Luego puedes ir a Tu Usuario → Admin para configurar la aplicación privacyIDEA.

Necesitas proporcionar la URL del servidor privacyIDEA. Deberías ejecutar el servidor privacyIDEA con un certificado de confianza. Si durante tu proceso de configuración no tienes un certificado de confianza, puedes desmarcar la casilla Verificar el certificado SSL del servidor privacyIDEA.

Para evitar quedarte fuera, puedes marcar la casilla También permitir a los usuarios autenticarse con su contraseña normal. En este caso, si la autenticación a privacyIDEA falla, el usuario se autentica contra el backend de usuario subyacente de ownCloud. En uso productivo, deberías desmarcar esta casilla.

Los clientes de escritorio, por supuesto, tendrán problemas con las contraseñas de un solo uso. Si estás utilizando tales clientes, deberías marcar la casilla Permitir acceso API a remote.php con contraseña estática. En este caso, la solicitud de autenticación proveniente de un cliente de escritorio (identificado por remote.php) no se autenticaría contra privacyIDEA, sino contra el backend de usuario subyacente.

Finalmente, si todo está bien, puedes activar la autenticación de dos factores marcando la casilla Usar privacyIDEA para autenticar a los usuarios.

Iniciar sesión en ownCloud

Después de activar la aplicación privacyIDEA, la pantalla de inicio de sesión de ownCloud no cambia.

Para iniciar sesión, necesitas ingresar tu nombre de usuario y en el campo de contraseña necesitas ingresar el PIN OTP y el valor OTP generado por tu Google Authenticator.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.