5.1. SAML¶
La richiesta di autenticazione SAML si riferisce,
nell’elemento <AuthnRequest>
(namespace samlp
),
all’attributo AttributeConsumingServiceIndex corrispondente
all’Attribute Consuming Service specifico, di indice “77
”,
introdotto al §4.6.
Le richieste e risposte di autenticazione SAML impiegano
session ID, nei loro rispettivi attributi ID
, valorizzati
come stringhe uniche che cominciano con sig-
. Le richieste e
risposte di autenticazione contengono entrambe un’estensione
<Signature>
(namespace spid
) contenuta nella sezione
prevista dallo standard per le estentioni SAML. I
metadati sopra elencati sono realizzati mediante i seguenti
elementi:
- punti a. e d. tramite elemento
<Filename>
(namespacespid
), contenente il nome del file del documento, comprensivo della corretta estensione, composto come descritto in §4.2; - punti b. e f. tramite elemento
<DigestValue>
(namespaceds
), contenente un’impronta rappresentata applicandole la trasformazione Base64 (cfr. RFC 4648); - punti c. e g. tramite elemento
<DigestMethod>
(namespaceds
), contenente la codifica W3C della funzione di hash utilizzata per il calcolo dell’impronta del documento; - l’identificativo univoco di sessione è indicato nell’attributo
ID
dell’elemento<AuthnRequest>
per la richiesta di autenticazione, il cui valore combacia con quello dell’attributoInResponseTo
dell’elemento<Response>
per la corrispondete risposta di autenticazione.
Qui sotto è riportato un esempio di richiesta di autenticazione SAML, comprensiva
dell’Attribute Consuming Service specifica e dell’elemento <Signature>
(namespace spid
) per la richiesta di autenticazione relativa a un documento
in formato PDF predisposto dal SP e successivamente inviato all’IdP per la sottoscrizione.
<samlp:AuthnRequest
AttributeConsumingService="77"
Destination="https://url-IdP-destinatario"
ID="sig-SessionID"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:spid="https://spid.gov.it/saml-extensions"
xmlns:enc="http://www.w3.org/2001/04/xmlenc#">
<saml:Issuer>https://url-SP-inviante</saml:Issuer>
...
<samlp:Extensions>
<spid:Signature>
<spid:Filename>AgID_YYYYMMDDThhmmss.tmp.pdf</spid:Filename>
<ds:DigestMethod Algorithm="http://funzione_hash" />
<ds:DigestValue>ImprontaDocumento1</ds:DigestValue>
</spid:Signature>
<spid:Signer>
<saml:Attribute
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="fiscalNumber">
<saml:AttributeValue xsi:type="xs:string">
CodiceFiscaleFirmatario
</saml:AttributeValue>
</saml:Attribute>
</spid:Signer>
</samlp:Extensions>
</samlp:AuthnRequest>
Qui sotto è riportato un esempio di elemento <Signature>
per la risposta di autenticazione SAML relativa alla richiesta di
autenticazione di cui al precedente esempio, ove l’IdP comunica al SP i
metadati del documento firmato con SPID.
<samlp:Response
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="https://url-SP-destinatario"
ID="_ResponseID"
InResponseTo="sig-SessionID">
<saml:Issuer>https://url-IdP-inviante</saml:Issuer>
...
<samlp:Extensions
xmlns:spid="https://spid.gov.it/saml-extensions">
<spid:Signature>
<spid:Filename>AgID_YYYYMMDDThhmmss.pdf</spid:Filename>
<ds:DigestMethod Algorithm="http://funzione_hash" />
<ds:DigestValue>ImprontaDocumento2</ds:DigestValue>
</spid:Signature>
</samlp:Extensions>
</samlp:Response>