Come implementare un sistema di SSO con il protocollo OpenId Connect

Sistema di SSO con protocollo OpenId Connect
10 luglio 2026 Single Sign-On

Non sempre è conveniente utilizzare un prodotto standard per realizzare un sistema di single sign on (SSO) che implementa OpenId Connect e OAUTH 2.0. Ci sono scenari dove sono necessarie customizzazioni grafiche o funzionali e integrazioni che realizzare con un prodotto risulta più macchinoso o troppo costoso. In questo caso si può utilizzare il framework Openiddict open source free per realizzare agevolmente un sistema custom.

A cosa serve OpenIddict?

OpenIddict è una libreria/framework open source free per ASP.NET Core che serve a implementare autenticazione e autorizzazione usando gli standard OpenID Connect (OIDC) e OAuth 2.0.

Permette di costruire:

  • Un Identity Provider
  • Un sistema di Single Sign On (SSO)
  • "Staccare" token JWT
  • Autenticazione centralizzata per SPA, mobile, web, API e microservizi
  • Integrazione con login esterni (es. Microsoft, Google...)

Supporta completamente gli standard:

  • OAuth 2.0
  • OpenId Connect
  • Proof Key for Code Exchange (PKCE)
  • Device Authorization Flow
  • Client Credentials
  • Refresh Token
  • Introspection
  • Revocation
  • JWT

A differenza di altri prodotti, OpenIddict non è un'applicazione pronta all'uso ma un framework estremamente flessibile che permette di costruire un Identity Provider completamente personalizzato. Con OpenIddict possiamo costruire un servizio centrale per autenticare gli utenti che rilascia token sicuri OIDC / OAUTH.

Perché scegliere OpenIddict?

I principali vantaggi sono:

  • completamente Open Source
  • nessuna licenza commerciale
  • perfetta integrazione con ASP.NET Core
  • elevata estensibilità
  • possibilità di utilizzare qualsiasi sistema di autenticazione esistente
  • pieno controllo del processo di emissione dei token

Questo rende OpenIddict particolarmente adatto sia a piccole applicazioni sia a grandi architetture enterprise.

L'architettura di Openiddict

OpenIddict è composto da diversi moduli indipendenti suddivisi logicamente in tre macroaree:

  • Server
  • Validation
  • Client

Il modulo server gestisce:

  • Login dell'utente
  • Consensi
  • Emissione dei token (Access Token, IDToken, Refresh Token)

La parte di validation permette alle API di validare facilmente i token emessi dal server.

Il modulo client permette alle applicazioni di collegarsi con provider esterni (es. Microsoft, Google e qualsiasi provider OpenID Connect).

Come funziona OpenIddict?

Il flusso tipo è il seguente:

  • L'utente accede all'applicazione (web, SPA, mobile o desktop)
  • L'applicazione reindirizza l'utente verso l'authorization server
  • L'utente effettua il login tramite un web form
  • OpenIddict genera l'Authorization Code
  • L'applicazione richiede i Token JWT
  • Openiddict restituisce i token (Access Token, Refresh Token, ID Token)
  • Le API richiamate dall'applicazione validano il token attraverso il modulo di Validation

Uno dei punti di forza di OpenIddict è la perfetta integrazione con il sistema di autenticazione di ASP.NET Core e la possibilità di personalizzare completamente il comportamento tramite pipeline ed event handler personalizzati. Questa flessibilità rende OpenIddict particolarmente adatto a piattaforme SaaS e scenari multi-tenant.

Quando scegliere OpenIddict?

OpenIddict è particolarmente consigliato in questi scenari:

  • serve pieno controllo dei flussi;
  • si vogliono evitare software commerciali e costi di licenza;
  • è necessario implementare funzionalità personalizzate o integrare sistemi legacy;
  • si vuole realizzare una architettura enterprise;

Al contrario, se si cerca un Identity Provider già pronto all'uso con interfaccia amministrativa e gestione utenti integrata, potrebbe essere più appropriata una soluzione differente, come ad esempio Azure EntraID External Identities.

Tags: openiddict, OAUTH 2.0, OpenId Connect, SSO, Single Sign On, CIAM