Identidade / SSOIdentity / SSO
Login único (SSO) próprio para as minhas aplicações: um provedor de identidade OIDC self-hosted, para o qual cada app delega a autenticação. O provedor está no ar e o primeiro app já entra por ele; os outros entram um a um. My own single sign-on (SSO) for my applications: a self-hosted OIDC identity provider that each app delegates authentication to. The provider is live and the first app already signs in through it; the others are joining one by one.
No arLive
Em implantação nos appsRolling out to the apps
- OIDCpadrão aberto, com PKCEopen standard, with PKCE
- 4serviços com healthcheckservices with health checks
- 5rotas prontas no módulo clienteready-made routes in the client module
- 1º1stapp já integradoapp already integrated
Provedor de identidade próprio
- IdP self-hosted (Authentik) com banco e cache dedicados, healthchecks e versão fixada.
- Exposto só pelo nginx com TLS; os serviços internos ficam presos ao localhost.
- Segredos fora do código, num arquivo de ambiente com acesso restrito.
Login federado (OIDC)
- OIDC padrão por aplicação: discovery, authorization code, refresh token e PKCE.
- Primeiro app integrado: o login do Selo redireciona ao provedor com state e nonce.
- Módulo cliente reutilizável para apps FastAPI: login, callback, logout e “quem sou eu”.
- Autorização por papel checada no servidor: 401 sem sessão, 403 sem papel.
- Login de desenvolvimento disponível só em modo debug.
Operação
- Rollout com a validação do nginx como portão e reversão em um comando.
- Projeto Docker isolado, convivendo com os outros serviços do servidor.
My own identity provider
- A self-hosted IdP (Authentik) with a dedicated database and cache, health checks and a pinned version.
- Exposed only through nginx with TLS; internal services stay bound to localhost.
- Secrets kept out of the code, in an environment file with restricted access.
Federated login (OIDC)
- Standard OIDC per application: discovery, authorization code, refresh tokens and PKCE.
- First app integrated: Selo's login redirects to the provider with state and nonce.
- A reusable client module for FastAPI apps: login, callback, logout and “who am I”.
- Role-based authorization checked on the server: 401 without a session, 403 without the role.
- A development login that is only available in debug mode.
Operations
- Rollout gated by nginx config validation, with one-command rollback.
- An isolated Docker project, running alongside the server's other services.
Em implantação: o provedor está no ar e o primeiro app já usa; os outros apps e painéis entram aos poucos. Rolling out: the provider is live and the first app already uses it; the other apps and dashboards are joining gradually.
Stack
- Authentik
- OIDC / OAuth 2.0
- PostgreSQL
- Redis
- Python
- FastAPI
- Authlib
- Docker
- nginx