Skip to content

[codex] Adiciona suporte ao Login Único gov.br#3837

Open
miguel-salles wants to merge 3 commits into
interlegis:3.1.xfrom
miguel-salles:codex/login-govbr
Open

[codex] Adiciona suporte ao Login Único gov.br#3837
miguel-salles wants to merge 3 commits into
interlegis:3.1.xfrom
miguel-salles:codex/login-govbr

Conversation

@miguel-salles

@miguel-salles miguel-salles commented May 28, 2026

Copy link
Copy Markdown

Descrição

Adiciona suporte opcional ao Login Único gov.br no SAPL via OpenID Connect, mantendo a autenticação local existente e deixando a integração desabilitada por padrão.

A alteração inclui:

  • cliente OIDC gov.br com state, nonce, PKCE, troca de código por tokens e validação RS256 via JWK;
  • novas rotas /login/govbr/, /auth/govbr/callback/ e rota legada /login/govbr/callback/;
  • botão "Entrar com GOV.BR" na tela de login apenas quando GOVBR_LOGIN_ENABLED=True;
  • vínculo de usuário local por CPF no username, com opção de busca por e-mail verificado;
  • opção de criação automática de usuários locais via GOVBR_AUTO_CREATE_USERS;
  • redirecionamento de logout para o encerramento da sessão gov.br quando aplicável;
  • variáveis GOVBR_* nos exemplos de ambiente;
  • documentação de configuração em docs/login-govbr.md;
  • testes para renderização do botão, início do fluxo OIDC e resolução de usuário por CPF.

Issue Relacionada

Closes #3835

#3835

Motivação e Contexto

Permite que casas legislativas autentiquem usuários pelo provedor oficial gov.br sem remover o login local do SAPL. A integração fica opt-in, depende de credenciais configuradas no ambiente e não versiona segredos.

Essa funcionalidade também prepara o caminho para integrações futuras relacionadas a assinaturas e processos que dependam de identidade gov.br.

Como Isso Foi Testado?

Validação informada na issue: fluxo testado em ambiente real da Câmara Municipal de Indaiatuba, com configurações específicas mantidas fora do repositório.

Validações realizadas neste checkout:

  • git diff --check 3.1.x..codex/login-govbr
  • python3 -m py_compile sapl/base/govbr.py sapl/base/tests/test_login.py sapl/base/urls.py sapl/base/views.py sapl/settings.py

Validação pendente neste ambiente local:

  • python manage.py check
  • pytest sapl/base/tests/test_login.py -q

O Python disponível neste ambiente não possui Django instalado, então os testes Django completos ainda precisam ser executados em um virtualenv/container do SAPL.

Capturas de Tela (se apropriado):

Não aplicável.

Tipos de Mudanças

  • Bug fix (alteração que corrige uma issue e não altera funcionalidades já existentes)
  • Nova feature (alteração que adiciona uma funcionalidade e não altera funcionalidades já existentes)
  • Alteração disruptiva (Breaking change) (Correção ou funcionalidade que causa alteração nas funcionalidades existentes)

Checklist:

  • Eu li o documento de Contribuição (CONTRIBUTING).
  • Meu código segue o estilo de código deste projeto.
  • Minha alteração requer uma alteração na documentação.
  • Eu atualizei a documentação de acordo.
  • Eu adicionei testes para cobrir minhas mudanças.
  • Todos os testes novos e existentes passaram.

@miguel-salles miguel-salles marked this pull request as ready for review May 28, 2026 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adicionar suporte ao Login Único gov.br via OpenID Connect

1 participant