SSO Miante: Autenticação Centralizada e Single Sign-On em Projetos Django
Introdução
Em ambientes corporativos, onde múltiplas aplicações compartilham usuários, regras de acesso e requisitos de segurança, a centralização da autenticação deixa de ser um diferencial e passa a ser uma necessidade arquitetural. A manutenção de usuários duplicados, políticas inconsistentes de acesso e múltiplos fluxos de login gera complexidade operacional, riscos de segurança e retrabalho constante.
O sso_miante surge como uma solução prática e modular para esse cenário, oferecendo uma implementação de Single Sign-On (SSO) nativa para projetos Django, com foco em simplicidade, reutilização e governança centralizada de usuários.
PyPi: https://pypi.org/project/sso-miante/
O que é o sso_miante
O sso_miante é uma biblioteca Django voltada à centralização da autenticação e da gestão de usuários entre múltiplas aplicações. Seu principal objetivo é permitir que diferentes sistemas Django compartilhem:
- Base única de usuários
- Sessões autenticadas
- Regras padronizadas de acesso
A biblioteca é composta por dois aplicativos distintos, porém complementares:
- Aplicativo principal (SSO Server)
- Responsável pela autenticação, cadastro de usuários e gestão dos aplicativos clientes.
- Aplicativo cliente (SSO Client)
- Integrado aos sistemas consumidores, delegando o processo de login ao servidor SSO de forma transparente.
Essa separação permite uma arquitetura limpa, escalável e alinhada às boas práticas de sistemas distribuídos.
Quando utilizar
O sso_miante é indicado para projetos que demandam:
- Login unificado entre múltiplos sistemas Django
- Padronização de autenticação e autorização
- Governança centralizada de usuários
- Redução de redundância na gestão de credenciais
- Facilidade de integração com novos sistemas
É especialmente útil em ambientes corporativos, plataformas internas, ecossistemas de aplicações e soluções modulares.
Instalação
A instalação é simples e realizada via PyPI:
pip install sso-miante
Configuração do Projeto Principal (SSO Server)
O projeto principal será o núcleo da autenticação, onde os usuários ficam centralizados e onde os aplicativos clientes são cadastrados.
1. Registrar o aplicativo no Django
No arquivo settings.py:
INSTALLED_APPS = [
...
'sso_miante',
]
2. Configurar as URLs
No arquivo urls.py do projeto:
from django.urls import path, include
urlpatterns = [
...
path("", include("sso_miante.urls")),
]
3. Executar as migrações
python manage.py migrate
4. Iniciar o servidor
Exemplo de execução local:
python manage.py runserver 127.0.0.1:8000
5. Acessar o painel administrativo do SSO
Após iniciar o servidor, acesse:
http://127.0.0.1:8000/sso/
Importante: substitua http://127.0.0.1:8000/ pelo domínio real do ambiente (homologação ou produção).
Cadastro de Aplicativos Clientes
No painel administrativo do SSO:
- Clique em Novo
- Informe o nome do aplicativo
- Copie e armazene com segurança: ID APP e SECRETS APP
- Informe os servidores (HOSTs) autorizados a realizar login (Caso haja mais de um, informe um por linha)
Após esses passos, o aplicativo cliente estará habilitado para autenticação via SSO.
Esse processo pode ser repetido quantas vezes forem necessárias para novos sistemas.
Configuração dos Projetos Adicionais (SSO Clients)
Os projetos adicionais são os sistemas que consomem o login centralizado.
1. Instalação
pip install sso-miante
2. Registrar o aplicativo cliente
No settings.py:
INSTALLED_APPS = [
...
'sso_miante_client',
]
3. Configurar variáveis de integração
Ainda no settings.py, adicione:
SSO_MIANTE_ID = 'APP_ID' # Gerado no projeto principal
SSO_MIANTE_SECRETS = 'SECRETS' # Gerado no projeto principal
SSO_MIANTE_URL = 'http://127.0.0.1:8000/sso/userinfo/' # Ajuste para o domínio real
LOGIN_URL = "sso_login"
LOGOUT_REDIRECT_URL = "sso_login"
Essas variáveis estabelecem a confiança entre o sistema cliente e o servidor SSO.
4. Configurar as URLs do cliente
No urls.py do projeto:
from django.urls import path, include
urlpatterns = [
...
path("", include("sso_miante_client.urls")),
]
A partir desse ponto, o sistema já estará integrado ao fluxo de autenticação centralizado.
Arquitetura e Boas Práticas
O sso_miante segue princípios importantes de arquitetura:
- Separação clara de responsabilidades (server x client)
- Baixo acoplamento entre aplicações
- Reutilização de templates e arquivos estáticos embarcados
- Compatibilidade com versões modernas do Django
- Facilidade de manutenção e expansão
Essa abordagem reduz riscos operacionais e facilita a evolução do ecossistema de aplicações.
Histórico de Versões
- 0.0.9 ou anteriores - Versões beta, destinadas apenas a testes (Não recomendado para uso)
- 1.0.0 - Primeira versão oficial e estável do projeto
Conclusão
O sso_miante oferece uma solução objetiva, robusta e alinhada às boas práticas para autenticação centralizada em ambientes Django. Sua adoção reduz complexidade, melhora a governança de usuários e cria uma base sólida para crescimento de sistemas integrados.
Para equipes que mantêm múltiplas aplicações Django e buscam padronização, segurança e escalabilidade, o sso_miante representa uma escolha estratégica.
Espero que tenham gostado do Artigo



