← Todos os templates · Senhas e login
Faça deploy de Keycloak em um clique
Gerenciamento de identidade e acesso de código aberto: login único para seus apps com OpenID Connect e SAML
Uma alternativa auto-hospedada para Auth0 e Okta.
O que é Keycloak?
O Keycloak é um servidor de gerenciamento de identidade e acesso: seus apps entregam o login a ele, e quem entrou uma vez está logado em todos eles. Ele suporta OpenID Connect, OAuth 2.0 e SAML 2.0, então a maioria dos apps e frameworks se conecta a ele com as bibliotecas padrão deles. Ele faz o login das pessoas com senha, passkey ou uma conta social como Google ou GitHub, adiciona autenticação de dois fatores com códigos de uso único, sincroniza usuários do LDAP e do Active Directory e deixa cada usuário gerenciar o perfil, a senha e as sessões no console da conta.
O Keycloak é um projeto em incubação da Cloud Native Computing Foundation, usado tanto por empresas quanto em home labs para colocar um só login na frente de muitos apps. Este template o roda em modo de produção com PostgreSQL atrás do proxy e cria o administrador do realm master a partir dos campos antes de o Keycloak responder a qualquer pessoa. O porém: o Keycloak é poderoso e tem muitas configurações, então o primeiro cliente exige alguma leitura, e ele roda em Java, que usa mais memória que a maioria dos servidores de login.
Hospedagem de Keycloak no Pethost
- Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
- Novo projeto abre em Keycloak. Você preenche o que ele pede e clica em Criar projeto: Usuário, Senha do administrador.
- Em um ou dois minutos Keycloak está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
- É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.
Perguntas sobre Keycloak
O Keycloak é gratuito?
Sim. O Keycloak é de código aberto sob a licença Apache 2.0, sem edição paga e sem limite de usuários ou apps. A Red Hat vende suporte para a própria versão dele, o Red Hat build of Keycloak.
Keycloak ou Auth0: qual devo usar?
Os dois fazem o login de usuários por OpenID Connect e SAML, com login social e autenticação de dois fatores. O Auth0 é um serviço na nuvem cobrado por usuários ativos por mês, enquanto o Keycloak é um que você mesmo roda, gratuito para qualquer número de usuários, ao custo de cuidar dele.
O Keycloak permite login com Google ou GitHub?
Sim. Em “Provedores de identidade”, um realm ganha Google, GitHub, Facebook, Microsoft e outros, ou qualquer provedor OpenID Connect ou SAML 2.0, como botões na página de login dele, sem mudança nos seus apps.
O Keycloak suporta autenticação de dois fatores e passkeys?
Sim. Ele aceita códigos de uso único de apps como Google Authenticator ou FreeOTP, códigos de recuperação e passkeys, e um realm pode exigi-los de todos ou deixar que os usuários os ativem no console da conta.
Por que o Keycloak diz que sou um administrador temporário?
O Keycloak marca como temporário o administrador que cria na primeira inicialização e pede um permanente: adicione um usuário no realm master, dê a ele a função admin em “Mapeamento de funções”, entre com ele e exclua o administrador temporário.
De quanta memória e disco Keycloak precisa?
O Keycloak roda em Java: cerca de 550 MB de memória com o Postgres em repouso, mais com muitos usuários e sessões; o banco de dados dele continua pequeno. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.
Arquivo Docker Compose de Keycloak
O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.
Containers: keycloak (quay.io/keycloak/keycloak:26.8), postgres (postgres:18-alpine).
Volumes, no backup noturno: db.
services:
keycloak:
image: quay.io/keycloak/keycloak:26.8
restart: unless-stopped
command: start
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
KC_HOSTNAME: ${URL}
# The proxy serves HTTPS and passes requests on over HTTP, saying in X-Forwarded-* who sent
# them and how.
KC_HTTP_ENABLED: "true"
KC_PROXY_HEADERS: xforwarded
KC_HEALTH_ENABLED: "true"
# The administrator of the master realm is made from these at the first start, before
# Keycloak answers anyone; Keycloak calls it temporary until a permanent one replaces it.
KC_BOOTSTRAP_ADMIN_USERNAME: ${ADMIN_USERNAME}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
depends_on:
postgres:
condition: service_healthy
# The port listens before Keycloak is ready: the deploy waits for its readiness, which its
# management port answers. The image has no curl: bash asks it.
healthcheck:
test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9000 && printf 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && grep -q '\"UP\"' <&3"]
interval: 5s
timeout: 5s
retries: 5
start_period: 180s
postgres:
image: postgres:18-alpine
restart: unless-stopped
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- db:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U keycloak -d keycloak"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
volumes:
db:
Mais em Senhas e login
- VaultwardenUm servidor de gerenciamento de senhas para os apps do Bitwarden
- AuthorizerLogin para os seus próprios apps, com OAuth 2 e OpenID Connect
- Password PusherCompartilhe senhas e segredos por links que expiram
- authentikUm provedor de identidade para login único nos seus apps: OpenID Connect, SAML, LDAP, MFA e passkeys
- FusionAuthGerenciamento de identidade e acesso de clientes: login, cadastro, login único e MFA para seus apps