Instalação do Authentik em VPS: SSO Open Source

12 min de leitura Segurança e Identidade

O que é o Authentik e por que escolher uma solução SSO Open Source?

A gestão de identidades e acessos (Identity and Access Management - IAM) tornou-se um dos pilares fundamentais da infraestrutura de TI moderna. Com a proliferação de aplicações, serviços em nuvem e ferramentas colaborativas, os profissionais de tecnologia frequentemente enfrentam o problema do "fardo das senhas". A necessidade de lembrar dezenas de credenciais diferentes não apenas impacta a produtividade, mas também introduz riscos significativos de segurança, como reutilização de senhas e práticas inadequadas de armazenamento.

Neste cenário, soluções de Single Sign-On (SSO) surgem como a resposta ideal. O SSO permite que um usuário faça login uma única vez e tenha acesso a múltiplos sistemas e aplicações sem precisar autenticar-se novamente. Entre as opções disponíveis no mercado, o Authentik se destaca como uma plataforma robusta, flexível e, principalmente, open source. Diferente de soluções proprietárias caras ou complexas demais para ambientes menores, o Authentik oferece um painel administrativo intuitivo, suporte a protocolos padrão da indústria (como OIDC, SAML e LDAP) e uma arquitetura containerizada que facilita a implantação.

A escolha de realizar uma authentik vps instalação em seu próprio servidor oferece benefícios cruciais: controle total sobre os dados dos usuários, privacidade reforçada (já que as credenciais não residem em servidores de terceiros) e custos operacionais reduzidos. Este tutorial guiará você, passo a passo, pela instalação do Authentik em um ambiente Linux usando Docker Compose, a ferramenta padrão da indústria para orquestração de containers multi-contêiner.

Pré-requisitos para a Instalação

Antes de iniciarmos o processo de configuração, é essencial garantir que seu ambiente atenda aos requisitos mínimos. O Authentik é uma aplicação Python/Django robusta, mas não excessivamente pesada, sendo perfeitamente adequada para rodar em VPSs de entrada.

  • Servidor Linux: Recomendamos Ubuntu Server 22.04 LTS ou Debian 12. Ambos possuem excelente suporte a containers e documentação abundante.
  • Especificações de Hardware: Para um ambiente doméstico ou de pequena equipe, 2 vCPUs e 2GB de RAM são suficientes. Para produção com muitos usuários simultâneos, considere 4GB de RAM ou mais.
  • Docker e Docker Compose: O Authentik depende inteiramente do ecossistema Docker. Certifique-se de que o daemon do Docker está instalado e em execução, e que o plugin docker-compose (v2) está disponível no seu sistema.
  • Domínio Resolvido: Você precisará de um domínio (ex: suaempresa.com) apontando para o IP público da sua VPS. O Authentik requer HTTPS para operar corretamente, especialmente para fluxos OAuth2 e OIDC. Utilizaremos o Nginx Proxy Manager ou Caddy neste guia, mas qualquer proxy reverso que suporte certificados TLS funcionará.

Dica de Segurança: Certifique-se de que as portas 80 (HTTP) e 443 (HTTPS) estão abertas no firewall da sua VPS. As portas internas do Docker (geralmente a 9000 para o serviço web e 8080 para a API) não precisam ser expostas diretamente à internet se você estiver utilizando um proxy reverso.

Passo 1: Preparação do Ambiente Linux

A primeira etapa consiste em preparar o sistema operacional. Vamos atualizar os pacotes existentes e instalar as dependências necessárias para o Docker. Abra seu terminal e conecte-se à sua VPS via SSH.

sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

Agora, vamos adicionar a chave GPG oficial do Docker e configurar o repositório. Isso garante que você esteja instalando versões oficiais e seguras.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Após adicionar o repositório, atualize a lista de pacotes novamente e instale o Docker Engine e o Docker Compose plugin.

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Verifique se a instalação foi bem-sucedida executando os comandos de verificação:

docker --version
docker compose version

Você deve ver as versões instaladas retornadas no terminal. Se tudo estiver correto, seu ambiente está pronto para receber o Authentik.

Passo 2: Configuração do Docker Compose

O Authentik utiliza um banco de dados PostgreSQL como backend e Redis para cache e filas de tarefas. Em vez de configurar cada container manualmente com comandos docker run complexos, utilizaremos um arquivo docker-compose.yml. Este arquivo define todos os serviços necessários de forma declarativa.

Crie um diretório dedicado para o projeto:

mkdir -p ~/authentik && cd ~/authentik

Agora, crie o arquivo de configuração. Você pode usar seu editor de texto favorito, como nano ou vim:

nano docker-compose.yml

Cole o seguinte conteúdo no arquivo. Este é um modelo básico e seguro para a instalação inicial:

version: "3.4"
services:
  postgres:
    image: docker.io/library/postgres:16
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${PG_PASS:-postgres}
      POSTGRES_USER: ${PG_USR:-authentik}
      POSTGRES_DB: ${PG_DB:-authentik}
  redis:
    image: docker.io/library/redis:alpine
    restart: unless-stopped
  server:
    image: ghcr.io/goauthentik/server:2024.x.x
    restart: unless-stopped
    command: server
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgres
      AUTHENTIK_POSTGRESQL__USER: ${PG_USR:-authentik}
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS:-postgres}
      AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
      # IMPORTANTE: Defina uma chave secreta forte aqui ou use variáveis de ambiente externas
      AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:-"change-me-to-a-random-string"}
    ports:
      - "9000:9000"
    volumes:
      - ./media:/media
      - ./custom-logs:/var/log/custom
  worker:
    image: ghcr.io/goauthentik/server:2024.x.x
    restart: unless-stopped
    command: worker
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgres
      AUTHENTIK_POSTGRESQL__USER: ${PG_USR:-authentik}
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS:-postgres}
      AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
      AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:-"change-me-to-a-random-string"}
    volumes:
      - ./media:/media
      - ./custom-logs:/var/log/custom
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
  db_data:

Nota Crítica: No trecho acima, substitua "change-me-to-a-random-string" por uma sequência aleatória complexa de caracteres. Esta é a chave criptográfica usada para assinar sessões e senhas. Se você perder esta chave ou usá-la em texto claro sem proteção, a segurança do seu sistema fica comprometida. Uma boa prática é usar um gerador de senhas seguro.

Salve o arquivo (Ctrl+O, Enter, Ctrl+X no nano).

Passo 3: Inicialização e Migração do Banco de Dados

Com o arquivo docker-compose.yml salvo, podemos iniciar os containers. O Docker irá baixar as imagens necessárias (PostgreSQL, Redis e Authentik) se elas não estiverem presentes localmente.

docker compose up -d

O parâmetro -d executa os serviços em modo detached (background). Você pode acompanhar o log do servidor para verificar se há erros:

docker compose logs -f server

A primeira vez que você iniciar o Authentik, ele precisará criar as tabelas no banco de dados e aplicar migrações. Isso pode levar alguns minutos. Você saberá que está pronto quando vir mensagens indicando que o servidor está escutando na porta 9000.

Importante: O Authentik exige a execução de um comando de setup inicial para criar o usuário administrador (superusuário). Execute este comando em seu terminal, fora do modo interativo dos logs:

docker compose exec server python manage.py changepassword root

O sistema solicitará que você defina uma senha forte para o usuário root. Esta será sua conta de administrador principal. Anote esta senha em um local seguro, pois ela é a chave mestra do seu sistema de identidade.

Passo 4: Configuração do Proxy Reverso e HTTPS

Agora que o Authentik está rodando na porta 9000, ele não é acessível diretamente pela internet de forma segura. Precisamos configurar um proxy reverso para gerenciar o tráfego HTTP/HTTPS e fornecer certificados SSL/TLS automáticos. O Caddy é uma escolha excelente por sua simplicidade e configuração automática de certificados Let's Encrypt.

Crie um arquivo Caddyfile no mesmo diretório:

nano Caddyfile

Insira a seguinte configuração, substituindo auth.seudominio.com pelo seu domínio real:

auth.seudominio.com {
    reverse_proxy localhost:9000
    
    tls admin@seudominio.com
}

# Opcional: Redirecionar HTTP para HTTPS se necessário, embora o Caddy faça isso automaticamente na maioria dos casos.
http://auth.seudominio.com {
    redir https://auth.seudominio.com{uri}
}

Agora, adicione o Caddy ao seu docker-compose.yml ou crie um arquivo separado para ele. Para manter a simplicidade neste tutorial, vamos adicionar o serviço Caddy diretamente ao compose existente (ou criar um novo compose apenas para o proxy). Aqui, adicionaremos ao compose atual:

nano docker-compose.yml

Adicione este bloco na seção services:

  caddy:
    image: caddy:2-alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config

volumes:
  db_data:
  caddy_data:
  caddy_config:

Reinicie os serviços para aplicar as mudanças:

docker compose down
docker compose up -d

Aguarde alguns segundos e acesse https://auth.seudominio.com no seu navegador. Você deverá ver a tela de login do Authentik.

Passo 5: Configuração Inicial e Primeiros Passos

Faça login com o usuário root e a senha definida anteriormente. Ao entrar no painel administrativo, você será convidado a completar o setup inicial ou poderá acessar diretamente o dashboard.

Os primeiros passos recomendados incluem:

  1. Configurar Fontes de Identidade: Vá em Applications -> Identity Providers. Aqui, você pode conectar o Authentik ao seu Active Directory (LDAP), Azure AD ou criar provedores locais para testar.
  2. Criar uma Aplicação Provedora: Em Applications -> Applications, clique em "Create". Selecione um protocolo, como OIDC. Dê um nome à aplicação (ex: "Meu GitLab") e configure o Client ID e Client Secret. Copie esses valores, pois serão necessários na configuração da aplicação de destino.
  3. Definir Fluxos de Autenticação: O Authentik usa "Fluxos" para definir como a autenticação ocorre. Por padrão, o fluxo Authentication - Default funciona bem para a maioria dos casos. Você pode customizar isso em Flows.

Para testar, configure uma aplicação pública simples, como um painel de controle ou até mesmo o próprio GitLab (se você tiver um), usando as credenciais OIDC geradas pelo Authentik.

Melhores Práticas para Produção

A instalação descrita acima é funcional, mas para um ambiente de produção robusto, considere as seguintes melhorias:

  • Backup Automático: Configure backups regulares do volume db_data. O banco de dados PostgreSQL contém toda a estrutura de usuários e permissões. Scripts simples com pg_dump podem ser agendados via cron.
  • Variáveis de Ambiente Seguras: Não deixe senhas e chaves hardcoded no docker-compose.yml. Utilize um arquivo .env ou ferramentas como Docker Secrets para gerenciar credenciais sensíveis.
  • Monitoramento: Integre o Authentik com ferramentas de monitoramento como Prometheus e Grafana. O Authentik expõe métricas na porta 9001 que podem ser coletadas facilmente.
  • Atualizações: Mantenha suas imagens Docker atualizadas. Verifique frequentemente o repositório oficial do Authentik no GitHub para novas versões e notas de lançamento, pois atualizações frequentes trazem correções de segurança importantes.

Conclusão

Realizar uma authentik vps instalação é um investimento estratégico na segurança e eficiência da sua infraestrutura. Ao centralizar a autenticação, você simplifica o ciclo de vida do usuário (onboarding/offboarding) e fortalece a postura de segurança contra ataques de phishing e credenciais vazadas.

O Authentik demonstra que soluções open source podem competir com gigantes corporativos em funcionalidade, oferecendo ao mesmo tempo a liberdade de auto-hospedagem (self-hosted). Com este tutorial, você possui as bases para implantar um sistema de Single Sign-On profissional, escalável e sob seu total controle. A partir daqui, a personalização dos fluxos de identidade e a integração com suas aplicações favoráveis são o próximo passo na sua jornada de transformação digital.

Lembre-se: a segurança é um processo contínuo. Revise regularmente os logs de acesso, audite as permissões e mantenha seu sistema atualizado. Agora que você domina a instalação, explore a documentação oficial para avançar em tópicos como autenticação multifator (MFA) avançada e integração com provedores de nuvem.

Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000
WhatsApp