Segurança · 6 min read · Dec 30, 2025

Autenticação de Dois Fatores para ownCloud

ilumine sua própria nuvem usando dois fatores para autenticar

por arnobabotte @pixabay

Neste tutorial, vou mostrar como proteger sua instalação do ownCloud com o privacyIDEA, que pode ser usado para gerenciar os segundos fatores de autenticação de seus usuários.

ownCloud é um sistema para armazenar seus próprios dados ou os dados de sua empresa, não em um computador de outra pessoa (também conhecido como “a Nuvem”), mas em seu próprio computador sob seu controle. O privacyIDEA é um sistema para gerenciar dispositivos de autenticação para autenticação de dois fatores em sua própria rede - não em nenhum Provedor de Identidade - mantendo assim sua identidade e as identidades de seus usuários também sob seu controle.

Se você quiser saber como isso será, pode dar uma olhada neste vídeo no youtube.

Pré-requisitos

Eu assumo que você já tem um sistema ownCloud 8 em funcionamento. Existem alguns exemplos bastante bons por aí. Você também pode dar uma olhada no como instalar o ownCloud 8 com nginx aqui neste site.

Além disso, eu assumo que você está executando um sistema privacyIDEA. Este tutorial não cobre a instalação do privacyIDEA. Você também encontrará um tutorial aqui no Howtoforge para instalar o privacyIDEA no CentOS ou pode usar as instruções de instalação na documentação.

Por favor, note: Você não precisa executar o privacyIDEA e o ownCloud no mesmo servidor. Você liberará todo o poder de tal configuração, ao instalar o privacyIDEA como sistema de autenticação em um servidor e configurar os outros aplicativos, como o ownCloud, contra este privacyIDEA. Isso também compreende a vantagem de que você não precisa gerenciar dispositivos de autenticação para o ownCloud, dispositivos de autenticação para seu segundo aplicativo e dispositivos de autenticação para seu terceiro aplicativo e assim por diante. Você vê que esta solução prova suas forças se você tiver vários aplicativos e mais de dois usuários. Mas, claro, também funcionará em cenários menores.

Por favor, note: O aplicativo ownCloud privacyIDEA está em um estágio inicial de desenvolvimento. Portanto, qualquer feedback que você fornecer é muito apreciado e ajudará a melhorar esta ferramenta. Você pode dar feedback aqui no howtoforge, via os problemas do github ou via o grupo do Google.

Conectar o privacyIDEA ao banco de dados do ownCloud

Preparando o banco de dados

Há uma condição para o privacyIDEA. Os usuários do ownCloud devem ser conhecidos pelo privacyIDEA ou, inversamente, os usuários aos quais você atribui tokens no privacyIDEA também devem estar disponíveis no ownCloud.

Você pode ter uma configuração onde seus usuários estão localizados em um diretório LDAP, mas neste exemplo, simplesmente usamos a tabela de usuários SQL existente do ownCloud.

Por favor, note: Se você estiver executando o privacyIDEA e o ownCloud em servidores diferentes, precisará conceder acesso ao banco de dados SQL. No caso do MySQL/MariaDB, você precisa modificar o bind-address em /etc/mysql/my.cnf da seguinte forma:

bind-address = 0.0.0.0

Além disso, você precisa adicionar o direito de acesso com base no MySQL:

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

Agora o usuário MySQL “ocuser” pode acessar o banco de dados no servidor ownCloud a partir do servidor privacyIDEA.

AVISO: O tráfego de rede para o servidor MySQL não é criptografado. Recomendamos fortemente configurar o TLS se você estiver executando este cenário. Você também pode encontrar alguns tutoriais neste site para configurar o MySQL com SSL.

Conectando o privacyIDEA ao ownCloud

Criar Resolvedor de Usuário

Agora conectamos o privacyIDEA ao ownCloud, para que o privacyIDEA conheça os usuários. Criamos um novo resolvedor de usuário em Config → Users.

Você pode clicar no botão ownCloud, que deve pré-definir todos os campos necessários no mapeamento de atributos do banco de dados.

Então você pode clicar em Test SQL Resolver para ver se tudo correu bem.

Criar Realm

Agora você pode ir para Config → Realms para criar um realm padrão a partir do resolvedor.

Você deve agora ver os usuários do ownCloud na aba Users e ser capaz de inscrever tokens para esses usuários.

Inscrever um Google Authenticator

O privacyIDEA suporta uma ampla variedade de tokens, que você pode encontrar aqui.

Vamos rapidamente inscrever um Google Authenticator como um exemplo simples.

Vá para a visualização de usuários e escolha um usuário para ver os detalhes do usuário. Aqui você pode clicar no botão Enroll New Token.

Na caixa de diálogo de inscrição, você pode escolher o tipo de token e, dependendo do tipo de token, precisará inserir diferentes detalhes. Mas neste exemplo, estamos usando o tipo de token padrão HOTP. Na parte inferior da página, você pode inserir um PIN OTP.

Clique em Enroll Token.

O token é inscrito e você é apresentado a um código QR, que pode escanear com seu aplicativo Google Authenticator.

Outros tipos de tokens são inscritos de outras maneiras, o que está fora do escopo deste tutorial. Para mais informações, consulte a documentação do privacyIDEA.

Agora estamos prontos, pois o usuário do ownCloud tem um token atribuído. Você pode repetir esse processo para outros usuários do ownCloud.

Obtendo o aplicativo ownCloud

Primeiro, você precisa baixar o aplicativo ownCloud privacyIDEA.

Você pode baixar o aplicativo aqui. Você precisa copiar o diretório user_privacyidea para o diretório apps/ do seu ownCloud. Vamos supor que você instalou o ownCloud em /var/www/owncloud, para que você termine com uma estrutura 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

O aplicativo privacyIDEA é implementado como um backend de usuário do ownCloud e atuará como uma sobreposição aos seus backends de usuário existentes para poder pular na solicitação de autenticação, para adicionar o segundo fator ao login.

Configurando o aplicativo ownCloud

Vá para Apps → not Enabled e habilite o aplicativo.

Então você pode ir para Seu Usuário → Admin para configurar o aplicativo privacyIDEA.

Você precisa fornecer a URL do servidor privacyIDEA. Você deve executar o servidor privacyIDEA com um certificado confiável. Se durante seu processo de configuração, você não tiver um certificado confiável, pode desmarcar a caixa de seleção Verify the SSL certificate of the privacyIDEA server.

Para evitar ser bloqueado, você pode marcar a caixa de seleção Also allow users to authenticate with their normal password. Nesse caso, se a autenticação no privacyIDEA falhar, o usuário é autenticado contra o backend de usuário subjacente do ownCloud. Em uso produtivo, você deve desmarcar essa caixa de seleção.

Os clientes de desktop terão, claro, problemas com as senhas de uso único. Se você estiver usando tais clientes, deve marcar a caixa de seleção Allow API access to remote.php with static password. Nesse caso, a solicitação de autenticação vinda de um cliente de desktop (identificada por remote.php) não será autenticada contra o privacyIDEA, mas contra o backend de usuário subjacente.

Finalmente, se tudo estiver bem, você pode ativar a autenticação de dois fatores marcando a caixa de seleção Use privacyIDEA to authenticate the users.

Fazer login no ownCloud

Após ativar o aplicativo privacyIDEA, a tela de login do ownCloud não muda.

Para fazer login, você precisa inserir seu nome de usuário e, no campo de senha, precisa inserir o PIN OTP e o valor OTP gerado pelo seu Google Authenticator.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.