Visão Geral - django-auth-govbr¶
O django-auth-govbr (django_govbr_auth) é uma solução completa, extensível e pronta para produção que integra o Login Único do Governo Federal (Gov.br) a aplicações Django.
A biblioteca implementa o padrão OpenID Connect (OIDC) com PKCE (Proof Key for Code Exchange) conforme as normas de segurança exigidas pelo Governo Federal do Brasil.
Principais Recursos¶
- Conformidade OIDC + PKCE (
S256): Autenticação segura com proteção contra ataques de intercepção de código de autorização. - Alternância Simples de Ambiente: Suporte nativo aos ambientes de Homologação (
staging) e Produção (production). - Single Sign-Out (Logout Federated): Encerramento de sessão alinhado com o Gov.br utilizando
id_token_hinte redirecionamento pós-logout. - Backend Extensível: Permite customizar criação e atualização de usuários (
GovBrAuthBackend). - Mapeamento Flexível de Atributos: Converta automaticamente campos do Gov.br (
sub,name,email) para o modeloUserdo Django. - 100% de Cobertura de Testes Unitários e de Integração.
Documentação¶
Explore os tópicos detalhados da documentação:
- 📦 Instalação - Requisitos de ambiente e guia de instalação via
pip,uvoupoetry. - ⚙️ Configuração - Guia passo a passo para integrar com
settings.pyeurls.py. - 🔐 Fluxo & PKCE - Como funciona o fluxo de autenticação OIDC e geração do desafio PKCE.
- 🗺️ Mapeamento de Atributos - Mapeamento de dados do perfil Gov.br para os atributos do
UserDjango. - 🔄 Pipeline de Perfil de Usuário - Como a Cadeia de Responsabilidade consulta e processa o perfil do cidadão.
- 📥 Fetchers (Busca de Dados) - Detalhes e exemplos da cadeia de busca de dados do Gov.br e APIs externas.
- 🛠️ Mappers (Mapeamento) - Detalhes e exemplos da cadeia de mapeamento de atributos para o modelo
User. - 🌐 Escopos & Ambientes - Configuração de ambientes de homologação (
staging) e produção (production), além de escopos OIDC. - 🚪 Single Sign-Out (Logout) - Como implementar e configurar o logout federado.
- 📚 Referência da API - Detalhes e assinaturas das views, backend de autenticação e cliente HTTP.
- 📝 Histórico de Mudanças - Notas de versão e histórico de alterações do projeto.