Strumenti Utente

Strumenti Sito


guide_pubbliche:howto:identity:shibbolethsp_config

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
guide_pubbliche:howto:identity:shibbolethsp_config [2025/02/13 06:55]
riccardo.cappone@unipr.it
guide_pubbliche:howto:identity:shibbolethsp_config [2025/09/30 11:22] (versione attuale)
riccardo.cappone@unipr.it [PKCE (Proof Key for Code Exchange)]
Linea 187: Linea 187:
   ​   ​
   ​   ​
-===== Flusso autorizzativo adottato dal nostro OP =====+===== Flusso autorizzativo ​implicito ​adottato dal nostro OP ===== 
 +(solo per i casi di necessità di Token Immediati, Senza Chiamate Back-Channel) 
 response_type => id_token (implicit flow) response_type => id_token (implicit flow)
   ​   ​
Linea 195: Linea 197:
 {{:​guide_pubbliche:​howto:​identity:​response_type_id_token.png?​600|}} {{:​guide_pubbliche:​howto:​identity:​response_type_id_token.png?​600|}}
  
 +
 +===== Flussi autorizzativo adottati dal nostro OP =====
 +
 +   "​response_types_supported":​[
 +      "​id_token",​
 +      "​code",​
 +      "code id_token",​
 +      "code id_token token"
 +   ]
 +   
 +=== response_type => id_token (implicit flow) ===
 +  ​
 +In questa modalità è attivo solamente l'​Authorization Endpoint che dopo l'​autenticazione rilascerà l'ID Token comprensivo dei claim sottoscritti dagli scope. La durata dell'​ID Token è 1h.
 +
 +
 +{{:​guide_pubbliche:​howto:​identity:​response_type_id_token.png?​600|}}
 +
 +
 +=== response_type => code (Authorization code flow) ===
 +  ​
 +Quando il valore di response_type è code, ma openid non è incluso nel parametro di richiesta scope, la richiesta è semplicemente un Authorization Code Flow come definito nella RFC 6749. D'​altra parte, se openid è incluso nel parametro di richiesta scope, viene emesso un ID Token dall'​endpoint token in aggiunta a un Access Token.
 +
 +
 +{{:​guide_pubbliche:​howto:​identity:​code_flow.png?​600|}}  ​
 +
 +=== response_type => code id_token (Hybrid Flow) ===
 +  ​
 +Quando il valore di response_type è code id_token, vengono emessi un codice di autorizzazione e un ID Token dall'​endpoint di autorizzazione,​ e un Access Token e un ID Token vengono emessi dall'​endpoint token.
 +
 +{{:​guide_pubbliche:​howto:​identity:​code_id_token.png?​600|}}
 +
 +
 +=== response_type => code id_token token (Hybrid Flow) ===
 +  ​
 +Quando il valore di response_type è code id_token token, vengono emessi un codice di autorizzazione,​ un Access Token e un ID Token dall'​endpoint di autorizzazione,​ e un Access Token e un ID Token vengono emessi dall'​endpoint token.
 +
 +{{:​guide_pubbliche:​howto:​identity:​code_id_token_token.png?​600|}}
 +   
 +===== PKCE (Proof Key for Code Exchange) =====
 +
 +<WRAP center round tip 60%>
 +Il Codice di Autorizzazione con PKCE (Proof Key for Code Exchange) è oggi lo standard di sicurezza raccomandato per l'​autenticazione OpenID Connect (e l'​autorizzazione OAuth 2.0), in particolare per i client pubblici (come le Single Page Application,​ SPA, o le app mobili native).
 +</​WRAP>​
 +
 +Il flusso del Codice di Autorizzazione è intrinsecamente più sicuro del Flusso Implicito perché gestisce lo scambio dei token sul back-channel (server-to-server),​ lontano dal browser, rendendo i token inaccessibili a JavaScript malevolo.
 +
 +PKCE aggiunge un ulteriore livello di sicurezza per i client che non possono custodire un Client Secret (i client pubblici), proteggendo dal rischio che un codice di autorizzazione venga intercettato e utilizzato da un attaccante.
 ===== OIDC client di esempio sviluppato in PhP ===== ===== OIDC client di esempio sviluppato in PhP =====
 [[guide_pubbliche:​howto:​identity:​oidc_client|Esempio di OIDC client scritto in PhP]] [[guide_pubbliche:​howto:​identity:​oidc_client|Esempio di OIDC client scritto in PhP]]