← Aplicações← Applications

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