From 89b6828267ed396d26d3a69730487e97b595d3fb Mon Sep 17 00:00:00 2001 From: peppelinux Date: Sun, 13 Jun 2021 12:27:16 +0200 Subject: [PATCH] AuthnRequest Destination Fixes https://github.com/italia/spid-regole-tecniche/issues/20 * fix: authnrequest example * fix: normative text related to Destination value in AuthnRequest --- code-samples/authnrequest.xml | 2 +- single-sign-on.rst | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code-samples/authnrequest.xml b/code-samples/authnrequest.xml index d03ac37..b2d02c4 100644 --- a/code-samples/authnrequest.xml +++ b/code-samples/authnrequest.xml @@ -3,7 +3,7 @@ ID="_4d38c302617b5bf98951e65b4cf304711e2166df20" Version="2.0" IssueInstant="2015-01-29T10:00:31Z" - Destination="https://spid.identityprovider.it" + Destination="https://spid.identityprovider.it/redirect-Post-saml2sso" AssertionConsumerServiceURL="http://spid.serviceprovider.it" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AttributeConsumingServiceIndex="1"> diff --git a/single-sign-on.rst b/single-sign-on.rst index 2760297..2936fd9 100644 --- a/single-sign-on.rst +++ b/single-sign-on.rst @@ -27,7 +27,7 @@ Il meccanismo di autenticazione è innescato dalla selezione, da parte dell'uten AuthnRequest ------------ -Il messaggio ``AuthnRequest`` è inviato dal Service Provider, per tramite dello User Agent, al SingleSignOnService dell'Identity Provider ed ha la funzione di avviare il flusso di autenticazione. +Il messaggio ``AuthnRequest`` è inviato dal Service Provider, per tramite dello User Agent, al SingleSignOnService dell'Identity Provider ed ha la funzione di avviare il flusso di autenticazione. Può essere inoltrato da un Service Provider all’Identity Provider usando il binding HTTP-Redirect o il binding HTTP-POST. Il messaggio deve essere conforme allo standard SAML v2.0 (cfr. [SAML-Core]) e rispettare le condizioni di seguito indicate. .. admonition:: SI DEVE @@ -37,10 +37,10 @@ Può essere inoltrato da un Service Provider all’Identity Provider usando il b * l'attributo ``ID`` univoco, per esempio basato su un *Universally Unique Identifier* (UUID) o su una combinazione *origine + timestamp* (quest'ultimo generato con una precisione di almeno un millesimo di secondo per garantire l'univocità) * l'attributo ``Version``, che deve valere sempre ``2.0``, coerentemente con la versione della specifica SAML adottata; * l'attributo ``IssueInstant`` a indicare l'istante di emissione della richiesta, in formato UTC (esempio: ``2017-03-05T18:03:10.531Z``) - * l'attributo ``Destination``, a indicare l'indirizzo (URI reference) dell'Identity Provider a cui è inviata la richiesta, come risultante nell'attributo entityID presente nel metadata IdP dell'Identity Provider a cui viene inviata la richiesta - + * l'attributo ``Destination``, valore dell'attributo Location esposto dal SingleSignOnService dell'IdP al quale è inviata la richiesta. + .. WARNING:: - Il valore richiesto per l'attributo *Destination* differisce da quanto previsto dalle specifiche SAML. + Il valore richiesto per l'attributo *Destination* in SPID può corrispondere all'entityID dell'Identity Provider a cui è inviata la richiesta. Tuttavia l'`Avviso 11 SPID `_ consente ai Service Provider di implementare questo parametro come da standard Saml2. * l'attributo ``ForceAuthn`` nel caso in cui si richieda livelli di autenticazione superiori a SpidL1 (SpidL2 o SpidL3) * l'attributo ``AssertionConsumerServiceIndex``, riportante un indice posizionale facente riferimento ad uno degli elementi ```` presenti nei metadata del Service Provider, atto ad indicare, mediante l'attributo ``Location``, l'URL a cui inviare il messaggio di risposta alla richiesta di autenticazione, e mediante l'attributo ``Binding``, il binding da utilizzare, quest'ultimo valorizzato obbligatoriamente con ``urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST``. In alternativa all'attributo ``AssertionConsumerServiceIndex`` (scelta sconsigliata) possono essere presenti: @@ -117,13 +117,13 @@ Autenticazione con identità digitale uso professionale o per la persona giuridi Per i casi in cui il fornitore di servizi richieda una Autenticazione per i seguenti profili: -- Identità digitale della persona giuridica +- Identità digitale della persona giuridica - Identità digitale ad uso professionale della persona fisica - Identità digitale ad uso professionale per la persona giuridica si applicano le seguenti specifiche tecniche: -- `Avviso AgID numero 15 `_ +- `Avviso AgID numero 15 `_ - `Avviso AgID numero 18 `_ - `Avviso AgID numero 18 v2 `_ @@ -163,7 +163,7 @@ La risposta inviata dall'Identity Provider al Service Provider può essere tras (Messaggi di errore SPID) * Deve essere presente l'elemento ```` a indicare l'entityID dell'entità emittente, cioè l'Identity Provider stesso. L'attributo ``Format`` deve essere omesso o fissato al valore ``urn:oasis:names:tc:SAML:2.0:nameid-format:entity``. - + * Deve essere presente un elemento ```` ad attestare l’avvenuta autenticazione, contenente almeno un elemento ````; nel caso l’Identity Provider abbia riscontrato un errore nella gestione della richiesta di autenticazione l’elemento ```` non deve essere presente. .. admonition:: SI PUÒ @@ -209,9 +209,9 @@ Assertion * Deve essere presente l'elemento ```` a sua volta contenente l'elemento: * ```` riportante nel sotto elemento ```` la classe relativa all'effettivo contesto di autenticazione (es. ``https://www.spid.gov.it/SpidL2``); - + Nel caso di asserzioni emesse a seguito di richieste di autenticazione per il livello SPID 1 l’elemento ```` deve avere l'attributo ``SessionIndex`` specificante l'indice della sessione di autenticazione instaurata per l’utente presso il gestore dell’identità; tale elemento non dovrà essere presente nel caso di asserzioni emesse a seguito di richieste di autenticazione per i livelli SPID 2 e SPID 3. - + * Deve essere presente l'elemento ```` riportante la firma che l'entità emittente (SP) appone sull'envelope XML da inoltrare. La firma deve essere prodotta secondo il profilo specificato per SAML (cfr [SAML-Core] cap5) utilizzando chiavi RSA almeno a 2048 bit e algoritmo di digest SHA-256 o superiore. .. admonition:: SI PUÒ