O rtCloud suporta três abordagens para Single Sign-On (SSO):

OpçãoMelhor para
Keycloak integradoOrganizações que desejam um servidor SSO totalmente autossuficiente integrado ao rtCloud
Provedor OIDC externoOrganizações que já executam um provedor de identidade (Auth0, Authentik, Okta, Supabase, etc.)
Azure Active DirectoryOrganizações que usam o Microsoft 365 ou Azure AD

Sem SSO configurado, os usuários entram com contas locais do rtCloud gerenciadas pelo painel de administração.


Keycloak integrado

A implantação inclui um contêiner Keycloak opcional que é executado junto com o rtCloud. O Keycloak é pré-configurado com um realm rtSurvey e está pronto para usar.

Requisitos

  • Um nome de domínio com HTTPS (o Keycloak requer HTTPS em produção)
  • Pelo menos 4 GB de RAM no servidor (o Keycloak adiciona ~512 MB de uso de memória)

Configuração

1. Configure as variáveis de ambiente no .env:

  # Habilitar o contêiner Keycloak integrado
EMBED_KEYCLOAK=true

# URLs do Keycloak — use seu domínio real
KEYCLOAK_URL=https://rtcloud.exemplo.com.br/auth
KC_HOSTNAME=https://rtcloud.exemplo.com.br/auth
KC_HOSTNAME_STRICT=false

# Configurações de realm e cliente (correspondem ao JSON do realm importado)
KEYCLOAK_REALM=rtsurvey
KEYCLOAK_CLIENT_ID=rtsurvey-app
KEYCLOAK_CLIENT_SECRET=seu-segredo-do-cliente-aqui

# Credenciais do administrador do Keycloak
KEYCLOAK_ADMIN_USER=admin
KEYCLOAK_ADMIN_PASSWORD=minha_senha_admin_keycloak

# Banco de dados do Keycloak (criado automaticamente)
KEYCLOAK_DB=keycloak
KEYCLOAK_DB_USER=keycloak
KEYCLOAK_DB_PASSWORD=minha_senha_keycloak_db

# Porta em que o Keycloak escuta (lado do host, proxy pelo Nginx)
KEYCLOAK_PORT=8091
  

2. Inicie com o perfil do Keycloak integrado:

  docker compose -f docker-compose.production.yml --profile embed-keycloak up -d
  

3. Verifique se o Keycloak está saudável:

  docker compose -f docker-compose.production.yml ps
  

O contêiner rtcloud-keycloak deve mostrar Up (healthy) após 2 a 3 minutos.

4. Acesse o console de administração do Keycloak:

  https://rtcloud.exemplo.com.br/auth/admin
  

Entre com KEYCLOAK_ADMIN_USER e KEYCLOAK_ADMIN_PASSWORD.

O que está pré-configurado

O Keycloak integrado inicia com um realm rtsurvey pré-importado que inclui:

  • Configuração de cliente para o aplicativo web
  • Funções de usuário padrão (admin, project_manager, enumerator, analyst)
  • Configurações de sessão e token otimizadas para o rtSurvey

Você pode adicionar usuários diretamente no console de administração do Keycloak ou conectar o Keycloak a um provedor de identidade upstream (LDAP, SAML).

Roteamento do Nginx

Ao usar os scripts de implantação em nuvem, o Nginx é configurado para fazer proxy de ambos os serviços:

CaminhoBackend
/Aplicativo rtCloud em 127.0.0.1:8080
/auth/Keycloak em 127.0.0.1:8090

Provedor OIDC externo

Conecte o rtCloud a qualquer provedor de identidade compatível com OpenID Connect. Esta abordagem não requer o contêiner Keycloak.

Provedores suportados

Qualquer provedor compatível com OIDC funciona, incluindo:

  • Authentik
  • Auth0
  • Okta
  • Keycloak (instância externa)
  • Supabase
  • Google (para organizações do Google Workspace)
  • GitHub (por meio de aplicativos OAuth com extensão OIDC)

Configuração

1. Registre o rtCloud como cliente OIDC no seu provedor de identidade.

Você precisará de:

  • Um ID de cliente e um segredo de cliente
  • Registrar o URI de redirecionamento: https://rtcloud.exemplo.com.br/auth/callback
  • Para suporte ao aplicativo móvel, registre também: vn.rta.rtsurvey.auth://callback

2. Configure as variáveis de ambiente no .env:

  # URL de descoberta OIDC (específica do provedor — consulte a documentação do seu IdP)
OIDC_ISSUER_URL=https://seu-provedor-de-identidade.com

# Credenciais do cliente do seu provedor de identidade
OIDC_CLIENT_ID=rtcloud-app
OIDC_CLIENT_SECRET=seu-segredo-do-cliente-aqui

# Escopos para solicitar (openid, profile e email geralmente são suficientes)
OIDC_SCOPE=openid profile email

# URI de redirecionamento registrado no seu provedor de identidade
OIDC_REDIRECT_URI=https://rtcloud.exemplo.com.br/auth/callback

# Opcional: cliente separado para o aplicativo móvel
OIDC_MOBILE_CLIENT_ID=rtcloud-mobile
OIDC_MOBILE_REDIRECT_URI=vn.rta.rtsurvey.auth://callback

# Defina como true para criar automaticamente contas rtCloud para novos usuários OIDC
OPEN_REGISTRATION=false
  

3. Reinicie o contêiner do aplicativo para aplicar as alterações:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

Provisionamento automático de usuários

Quando OPEN_REGISTRATION=true, o rtCloud cria automaticamente uma conta local na primeira vez que um usuário entra via OIDC. A conta é preenchida com o nome e e-mail do usuário a partir do token de ID.

Quando OPEN_REGISTRATION=false (padrão), um administrador do rtCloud deve criar a conta do usuário primeiro, e a identidade OIDC é vinculada no primeiro login.

Endpoints personalizados

Se o seu provedor não suportar descoberta OIDC (.well-known/openid-configuration), você pode definir endpoints manualmente:

  OIDC_AUTHORIZATION_ENDPOINT=https://seu-provedor.com/oauth2/authorize
OIDC_TOKEN_ENDPOINT=https://seu-provedor.com/oauth2/token
OIDC_USERINFO_ENDPOINT=https://seu-provedor.com/oauth2/userinfo
  

Azure Active Directory

Integre o rtCloud com o tenant do Microsoft Azure AD da sua organização.

Configuração

1. Registre um novo aplicativo no Portal do Azure:

  • Vá para Azure Active DirectoryRegistros de aplicativosNovo registro
  • Nome: rtCloud
  • URI de redirecionamento: https://rtcloud.exemplo.com.br/auth/callback (tipo Web)
  • Após a criação, anote o ID do aplicativo (cliente) e o ID do diretório (tenant)
  • Em Certificados e segredos, crie um novo segredo de cliente

2. Configure as variáveis de ambiente no .env:

  AZURE_CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AZURE_TENANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  

3. Reinicie o contêiner do aplicativo:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

Os usuários no seu tenant do Azure AD agora podem entrar no rtCloud usando suas credenciais Microsoft.


Desabilitando o SSO

Para reverter para autenticação local, remova ou comente todas as variáveis relacionadas ao SSO no .env, depois reinicie o contêiner do aplicativo:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

Se você estava usando o Keycloak integrado, pare-o omitindo o sinalizador --profile embed-keycloak e executando docker compose down seguido de up -d sem o perfil.

Esta página foi útil?