Buongiorno,
l’amministrazione per cui presto servizio sta per pubblicare su internet un portale per l’accesso ad alcuni servizi per i cittadini.
L’accesso al portale sarà possibile solo tramite SPID.
Poiché i vari servizi pubblicati sul portale sono accessibili con vari livelli di autenticazione (anche in dipendenza della fascia di utenti a cui i servizi sono rivolti), per evitare che gli utenti che hanno effettuato l’accesso, ad esempio, con il Livello 1 debbano riautenticarsi per poter accedere ad un servizio che prevede l’accesso a Livello 2, ci chiedevamo se ci fosse la possibilità di far accedere il cittadino con il massimo livello di accesso SPID posseduto.
Analizzando le regole tecniche avremmo individuato la soluzione che potrebbe soddisfare la nostra esigenza.
Si potrebbe utilizzare l’attributo “Comparison” previsto dall’elemento <RequestedAuthnContext>.
Facendo qualche ricerca sul web, però, ci sono interpretazioni diverse riguardo al comportamento dei vari valori dell’attributo.
Secondo alcune interpretazioni, per ottenere quanto da noi desiderato, bisognerebbe utilizzare “Comparison=Maximum” mentre secondo altre interpretazioni bisognerebbe utilizzare “Comparison=Better”.
Secondo la vostra esperienza, qual è il metodo corretto per richiedere, all’IDP prescelto, l’accesso col massimo livello posseduto dal cittadino?
Tutti gli IDP implementano i meccanismi di autenticazione che prevedono l’attributo “Comparison” in maniera omogenea o potrebbero essere implementati in maniera differente da ogni IDP?
P.S.
In una precedente versione (la 0.1) delle Regole Tecniche, veniva riportato il seguente esempio (che, però, non è più presente sull’ultima versione):
L’esempio seguente di <RequestedAuthnContext> fa riferimento a una “authentication context class” di tipo “SpidL3” o in subordine a una di tipo “SpidL2” .
<samlp:RequestedAuthnContext Comparison=“exact”>
saml:AuthnContextClassRef
urn:oasis:names:tc:SAML:2.0:ac:classes:SpidL3
</saml:AuthnContextClassRef>
saml:AuthnContextClassRef
urn:oasis:names:tc:SAML:2.0:ac:classes:SpidL2
</saml:AuthnContextClassRef>
</samlp:RequestedAuthnContext>
Se abbiamo interpretato bene l’esempio, l’IDP dovrebbe richiedere l’accesso con il livello 3 o, se non posseduto (in subordine), con il livello 2.
L’interpretazione è corretta?
E nel caso lo fosse, è una soluzione utilizzabile?
Grazie