Differenze tra le versioni di "RequisitiEntita"

Da WIKI IDEM GARR.
Jump to navigation Jump to search
Riga 118: Riga 118:
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
 
====IDP-MD09 - KeyDescriptor====
 
====IDP-MD09 - KeyDescriptor====
I metadata DEVONO contenere almeno un elemento <code><md:KeyDescriptor></code>
+
I metadata DEVONO contenere almeno un elemento <code><md:KeyDescriptor></code> con le seguenti caratteristiche:
  
 
*privo di ulteriori attributi o con il solo attributo <code>use="signing"</code>;
 
*privo di ulteriori attributi o con il solo attributo <code>use="signing"</code>;
Riga 136: Riga 136:
  
 
====IDP-MD10 - SingleSignOnService====
 
====IDP-MD10 - SingleSignOnService====
L'elemento <code><md:SingleSignOnService></code> DEVE:
+
<code><md:SingleSignOnService></code> DEVE:
  
* essere presente con l'attributo <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'</nowiki></code> perchè necessario alle Authentication Request (<code>AuthnRequest</code>), con una <code>Location</code> la cui URL è protetta da SSL e comincia per <code>https://</code>
+
*essere presente con l'attributo <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'</nowiki></code> perchè necessario alle Authentication Request (<code>AuthnRequest</code>);
*esistere per il <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'</nowiki></code> perchè necessario alle Authentication Response (<code>AuthnResponse</code>), con una <code>Location</code> la cui URL è protetta da SSL e comincia per <code>https://</code><br />
+
*essere presente con l'attributo <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'</nowiki></code> perchè necessario alle Authentication Response (<code>AuthnResponse</code>);
 +
*in tutti i casi, contenere un attributo <code>Location</code> valorizzato con una URL protetta da SSL (<code>https://).</code><br />
  
 
''Esempio:''<syntaxhighlight lang="xml">
 
''Esempio:''<syntaxhighlight lang="xml">
Riga 149: Riga 150:
 
<code><md:SingleLogoutService></code> DEVE:
 
<code><md:SingleLogoutService></code> DEVE:
  
*esistere per il <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'</nowiki></code>  perchè necessario alle Logout Request (<code>LogoutRequest</code>), con una <code>Location</code> la cui URL è protetta da SSL e comincia per <code>https://</code><br />
+
*essere presente con l'attributo <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'</nowiki></code>  perchè necessario alle Logout Request (<code>LogoutRequest</code>);
 +
*contenere un attributo <code>Location</code> valorizzato con una URL protetta da SSL (<code>https://).</code>
  
 
''Esempio:''<syntaxhighlight lang="xml">
 
''Esempio:''<syntaxhighlight lang="xml">
Riga 158: Riga 160:
 
<code><md:OrganizationName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE:
 
<code><md:OrganizationName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE:
  
*essere valorizzato con il nome dell'organizzazione a cui afferisce il servizio
+
*contenere il nome dell'organizzazione a cui afferisce il servizio;
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese.</u>
  
  
Riga 171: Riga 173:
 
<code><md:OrganizationDisplayName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE:
 
<code><md:OrganizationDisplayName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE:
  
*essere valorizzato con il nome dell'organizzazione che verrà mostrato nelle interfacce utente
+
*contenere il nome dell'organizzazione che verrà mostrato nelle interfacce utente;
*essere definito sia per la lingua <u>italiana,</u> sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana,</u> sia per la lingua <u>inglese.</u>
  
  
Riga 184: Riga 186:
 
<code><md:OrganizationURL></code>, contenuto nell'elemento <code><md:Organization></code>, DEVE:
 
<code><md:OrganizationURL></code>, contenuto nell'elemento <code><md:Organization></code>, DEVE:
  
*essere valorizzato con la URL del sito principale dell'organizzazione a cui afferisce il servizio
+
*contenere la URL del sito principale dell'organizzazione a cui afferisce il servizio;
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese.</u>
  
  
Riga 196: Riga 198:
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
 
====IDP-MD15 - ContactPerson====
 
====IDP-MD15 - ContactPerson====
<code><md:ContactPerson></code> DEVE:
+
I metadata DEVONO contenere almeno un elemento <code><md:ContactPerson></code> con le seguenti caratteristiche:
 +
 
 +
*contenere l'indirizzo email del contatto tecnico del servizio;
 +
*contenere l'attributo <code>contactType="technical"</code>;
  
*essere valorizzato con l'indirizzo email del contatto tecnico del servizio identificato dall'attributo <code>contactType="technical"</code>.<br />E' OBBLIGATORIA la presenza di almeno un  <code>contactType="technical"</code> in cui sia specificato un indirizzo impersonale (mailing-list)
+
Si RACCOMANDA di utilizzare un indirizzo impersonale (ad esempio una mailing-list).
  
  
Riga 210: Riga 215:
 
<br />
 
<br />
 
===Federation (IDP-FED)===
 
===Federation (IDP-FED)===
I requisiti di seguito elencati sono dettate dalla Federazione e destinate agli Identity Provider.
+
I requisiti di seguito elencati sono dettati dalla Federazione e destinati agli Identity Provider.
  
 
====IDP-FED01 - Data====
 
====IDP-FED01 - Data====
 
Un Identity Provider in IDEM DEVE essere in grado di rilasciare le seguenti informazioni:
 
Un Identity Provider in IDEM DEVE essere in grado di rilasciare le seguenti informazioni:
  
#Un identificativo univoco persistente e targhettizzato per i suoi utenti:
+
#un identificativo univoco, persistente, diverso per ogni servizio e trasmissibile in una delle seguenti forme:
#*<code>persistent-id</code> '''(persistent NameID)''' (o ''eduPersonTargetedID'' se non è possibile rilasciarlo)
+
#*nell'elemento <code><NameID></code> con attributo <code>Format="<nowiki>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</nowiki>"</code> se indicato nei metadata del Service Provider;
#L'affiliazione dell'utente con scopo:
+
#*nell'attributo <code>eduPersonTargetedID</code> per i Service Provider che lo richiedono nell'elemento <code><md:RequestedAttribute></code>;
#*<code>affiliation</code> '''(eduPersonScopedAffiliation)'''<br />
+
#l'attributo <code>eduPersonScopedAffiliation</code>, l'affiliazione dell'utente con l'aggiunta dello <code>scope</code>.<br />
  
 
''Esempio con [https://sp.aai-test.garr.it/secure sp.aai-test.garr.it]:''<syntaxhighlight lang="xml">
 
''Esempio con [https://sp.aai-test.garr.it/secure sp.aai-test.garr.it]:''<syntaxhighlight lang="xml">
affiliation = member@aai-test.garr.it;staff@aai-test.garr.it
+
eduPersonScopedAffiliation = member@aai-test.garr.it;staff@aai-test.garr.it
persistent-id = https://garr-idp-test.irccs.garr.it/idp/shibboleth!https://sp.aai-test.garr.it/shibboleth!eYfN....Q1rU=
+
persistent = https://garr-idp-test.irccs.garr.it/idp/shibboleth!https://sp.aai-test.garr.it/shibboleth!eYfN....Q1rU=
 
</syntaxhighlight>
 
</syntaxhighlight>
  
[[#top|[TOP]]]
+
in rea[[#top|[TOP]]]
  
====IDP-FED02 - Info Page====
+
====IDP-FED02 - Informazioni====
La pagina informativa esposta in lingua <u>italiana</u> e in lingua <u>inglese</u> DEVE opportunamente contenere:
+
La pagina informativa esposta in lingua <u>italiana</u> e in lingua <u>inglese</u> DEVE contenere:
  
#un indirizzo di posta elettronica per il supporto agli utenti in merito a IDEM e alle credenziali di autenticazione
+
#un riferimento per il supporto agli utenti (ad esempio un indirizzo di posta, o un web form, ecc.);
#la Privacy Policy per l’utente contenente gli attributi che potrebbe rilasciare alle risorse federate
+
#un collegamento alla pagina sul trattamento dei dati personali;
#il Logo di IDEM e il link al Sito di IDEM ('''fortemente raccomandato''')
+
#il Logo di IDEM e il link al Sito di IDEM.
  
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
  
====IDP-FED03 - Privacy Page====
+
====IDP-FED03 - Trattamento dati personali====
La pagina sul trattamento dei dati personali (Privacy Policy) seguita dall'istituzione ed esposta in lingua <u>italiana</u> e in lingua <u>inglese</u> DEVE opportunamente contenere le adeguate informazioni per gli utenti.
+
La pagina sul trattamento dei dati personali DEVE contenere tutte le informazioni previste dagli artt. 13 e 14 del Regolamento UE 679/2016.
  
A titolo esemplificativo, IDEM fornisce la pagina: [[InformativaDatiPersonaliIdP|InformativaDatiPersonaliIdP.]]
+
A titolo esemplificativo, Il Servizio IDEM GARR AAI rende disponibile il seguente modello: [[InformativaDatiPersonaliIdP|InformativaDatiPersonaliIdP.]]
  
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
  
====IDP-FED04 - Login Page====
+
====IDP-FED04 - Login====
 
La pagina di login di un Identity Provider federato in IDEM DEVE contenere:
 
La pagina di login di un Identity Provider federato in IDEM DEVE contenere:
  
*il riferimento alla pagina informativa indicata da <code><mdui:InformationURL></code> ([[RequisitiEntita#IDP-MD06%20-%20InformationURL|IDP-MD06]])
+
*il collegamento alla pagina informativa indicata da <code><mdui:InformationURL></code> ([[RequisitiEntita#IDP-MD06%20-%20InformationURL|IDP-MD06]])
*il riferimento alla pagina sul trattamento dei dati personali indicata da <code><mdui:PrivacyStatementURL></code> ([[RequisitiEntita#IDP-MD07%20-%20PrivacyStatementURL|IDP-MD07]])
+
*il collegamento alla pagina sul trattamento dei dati personali indicata da <code><mdui:PrivacyStatementURL></code> ([[RequisitiEntita#IDP-MD07%20-%20PrivacyStatementURL|IDP-MD07]])
 
*il logo di IDEM ([https://idem.garr.it/tutti-i-documenti/idem-archivio/banner-e-loghi Logo IDEM])
 
*il logo di IDEM ([https://idem.garr.it/tutti-i-documenti/idem-archivio/banner-e-loghi Logo IDEM])
 
*il riferimento al <u>Contatto Tecnico</u> o al <u>Contatto di Supporto</u> per la risoluzione delle problematiche legate all'accesso alle risorse da parte degli utenti
 
*il riferimento al <u>Contatto Tecnico</u> o al <u>Contatto di Supporto</u> per la risoluzione delle problematiche legate all'accesso alle risorse da parte degli utenti
Riga 257: Riga 262:
  
 
*di lunga durata (30 anni);
 
*di lunga durata (30 anni);
*autofirmato (self-signed);
+
*autofirmati (self-signed);
*valido (non scaduto);
+
*validi (non scaduto);
*non firmato con algoritmi di firma basati su MD5 o SHA1;
+
*non firmati con algoritmi di firma basati su MD5 o SHA1;
*che corrisponda ad una chiave privata di almeno 3072 bit.<br />
+
*corrispondenti ad una chiave privata di almeno 3072 bit.
 +
 
 +
In ogni caso la chiave privata corrispondente NON DEVE avere una lunghezza minore di 2048 bit.
  
 
===Esempio IdP Metadata===
 
===Esempio IdP Metadata===
Riga 285: Riga 292:
 
     <ds:X509Data>
 
     <ds:X509Data>
 
     <ds:X509Certificate>
 
     <ds:X509Certificate>
         ...idp-backchannel.crt...
+
         MII...
    </ds:X509Certificate>
 
    </ds:X509Data>
 
  </ds:KeyInfo>
 
  </md:KeyDescriptor>
 
  <md:KeyDescriptor use="signing">
 
  <ds:KeyInfo>
 
    <ds:X509Data>
 
    <ds:X509Certificate>
 
        ... idp-signing.crt ...
 
    </ds:X509Certificate>
 
    </ds:X509Data>
 
  </ds:KeyInfo>
 
  </md:KeyDescriptor>
 
  <md:KeyDescriptor use="encryption">
 
  <ds:KeyInfo>
 
    <ds:X509Data>
 
    <ds:X509Certificate>
 
        ... idp-encryption.crt ...
 
 
     </ds:X509Certificate>
 
     </ds:X509Certificate>
 
     </ds:X509Data>
 
     </ds:X509Data>
Riga 355: Riga 344:
 
<code><mdui:DisplayName></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:
 
<code><mdui:DisplayName></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:
  
*essere valorizzato con il nome del servizio da mostrare all'utente senza contenere il valore "'''IDEM'''" riservato al [https://idem.garr.it/federazione-idem/la-federazione#servizio Servizio].
+
*contenere il nome della risorsa da mostrare all'utente. '''Attenzione''': il nome non deve usare la parola "'''IDEM'''", riservata al [https://idem.garr.it/federazione-idem/la-federazione#servizio Servizio];
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese.</u>
  
  
Riga 368: Riga 357:
 
<code><mdui:Description></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:
 
<code><mdui:Description></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:
  
*essere valorizzato con una breve descrizione del servizio
+
*contenere una breve descrizione del servizio;
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese.</u>
  
  
Riga 381: Riga 370:
 
<code><mdui:InformationURL></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:   
 
<code><mdui:InformationURL></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:   
  
*essere valorizzato con la URL della pagina informativa del servizio
+
*contenere la URL della pagina informativa del servizio;
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese.</u>
  
 
''Esempio:''   
 
''Esempio:''   
Riga 393: Riga 382:
 
<code><mdui:PrivacyStatementURL></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:   
 
<code><mdui:PrivacyStatementURL></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:   
  
*essere valorizzato con la URL della pagina sul trattamento dei dati personali del servizio
+
*contenere la URL della pagina sul trattamento dei dati personali del servizio;
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese.</u>
  
  
Riga 404: Riga 393:
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
 
====SP-MD07 - Logo====
 
====SP-MD07 - Logo====
<code><mdui:Logo></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE:
+
<code><mdui:Logo></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DOVREBBE:
  
*essere valorizzato con una URL <code>https://</code> riportante il logo dell'organizzazione in formato '''PNG''' (si RACCOMANDA uno sfondo possibilmente trasparente) con:
+
*contenere una URL <code>https://</code> riportante il logo dell'organizzazione in formato '''PNG''' (si RACCOMANDA uno sfondo possibilmente trasparente) con:
**''base'': dai 64 px ai 350 px
+
**''base'': dai 64 px ai 350 px;
**''altezza'': dai 64px ai 146px
+
**''altezza'': dai 64px ai 146px;
 
 
Se viene fornito di dimensioni maggiori, <u>DEVE rispettare l'aspect-ratio</u>.
 
  
  
Riga 420: Riga 407:
  
 
====SP-MD08 - KeyDescriptor====
 
====SP-MD08 - KeyDescriptor====
<code><md:KeyDescriptor></code> DEVE:
+
I metadata DEVONO contenere almeno un elemento <code><md:KeyDescriptor></code> con le seguenti caratteristiche:
 +
 
 +
* privo di ulteriori attributi o con il solo attributo <code>use="encryption"</code>;
 +
* che contenga un certificato X.509 in formato PEM.
  
*essere fornito privo di attributi o con almeno l'attributo <code>use="signing"</code>;
+
<md:KeyDescriptor use="encryption">
*contenere almeno un certificato X.509 in formato PEM.
+
    <ds:KeyInfo>
 +
      <ds:X509Data>
 +
          <ds:X509Certificate>
 +
          MII[..]
 +
          </ds:X509Certificate>
 +
      </ds:X509Data>
 +
    </ds:KeyInfo>
 +
</md:KeyDescriptor>
 +
Se il Service Provider supporta il Single Logout, DEVE essere presente un ulteriore elemento <code><md:KeyDescriptor></code> con l'attributo <code>use="signing"</code>.
  
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
Riga 430: Riga 428:
 
<code><md:RequestedAttribute></code> , contenuto nell'elemento <code><md:AttributeConsumingService></code>, DEVE:
 
<code><md:RequestedAttribute></code> , contenuto nell'elemento <code><md:AttributeConsumingService></code>, DEVE:
  
*contenere tutti e soli gli attributi SAML richiesti dal servizio
+
*contenere tutti e soli gli attributi SAML richiesti dalla risorsa;
*indicare gli attributi <u>indispensabili</u> all'accesso e all'utilizzo del servizio con il parametro <code>isRequired="true"</code>
+
*indicare gli attributi <u>indispensabili</u> all'accesso e all'utilizzo della risorsa con il parametro <code>isRequired="true"</code>
*indicare gli attributi <u>non indispensabili</u> all'accesso e all'utilizzo del servizio con il parametro <code>isRequired="false"</code>
+
*indicare gli attributi <u>non indispensabili</u> all'accesso e all'utilizzo della risorsa con il parametro <code>isRequired="false"</code>
  
  
Riga 445: Riga 443:
 
<code><md:OrganizationName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE:
 
<code><md:OrganizationName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE:
  
*essere valorizzato con il nome dell'organizzazione che offre il servizio
+
*contenere il nome dell'organizzazione che offre il servizio;
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese.</u>
  
  
Riga 458: Riga 456:
 
<code><md:OrganizationDisplayName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE:
 
<code><md:OrganizationDisplayName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE:
  
*essere valorizzato con il nome dell'organizzazione che offre il servizio da mostrare all'utente
+
*contenere il nome dell'organizzazione che offre il servizio da mostrare all'utente;
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese.</u>
  
  
Riga 471: Riga 469:
 
<code><md:OrganizationURL></code>, contenuto nell'elemento <code><md:Organization></code>, DEVE:
 
<code><md:OrganizationURL></code>, contenuto nell'elemento <code><md:Organization></code>, DEVE:
  
*essere valorizzato con la URL del sito principale dell'organizzazione che offre il servizio
+
*contenere la URL del sito principale dell'organizzazione che offre il servizio.
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u>
+
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese;</u>
  
  
Riga 496: Riga 494:
  
 
===Federation (SP-FED)===
 
===Federation (SP-FED)===
I requisiti di seguito elencati sono dettate dalla Federazione e destinate ai Service Provider
+
I requisiti di seguito elencati sono dettate dalla Federazione e destinate ai Service Provider.
  
 
====SP-FED01 - Data====
 
====SP-FED01 - Data====
Riga 518: Riga 516:
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
  
====SP-FED02 - Info Page====
+
====SP-FED02 - Informazioni====
 
La pagina informativa esposta in lingua <u>italiana</u> e in lingua <u>inglese</u> DEVE contenere:
 
La pagina informativa esposta in lingua <u>italiana</u> e in lingua <u>inglese</u> DEVE contenere:
  
#la descrizione del servizio
+
#la descrizione del servizio;
#il pubblico a cui si rivolge il servizio
+
#il pubblico a cui si rivolge il servizio;
#la denominazione dell'organizzazione che lo condivide
+
#la denominazione dell'organizzazione che lo gestisce;
#indirizzo email per il supporto degli utenti e dei gestori di Identity Provider
+
#il riferimento al supporto utenti;
#un riferimento alla Privacy Policy seguita dal servizio
+
#il collegamento alla pagina sul trattamento dei dati personali.
  
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
  
====SP-FED03 - Privacy Page====
+
====SP-FED03 - Trattamento dati====
La pagina della privacy esposta in lingua <u>italiana</u> e in lingua <u>inglese</u> DEVE contenere le adeguate informazioni circa il trattamento dei dati personali utilizzati.
+
La pagina sul trattamento dei dati personali DEVE contenere tutte le informazioni previste dagli artt. 13 e 14 del Regolamento UE 679/2016.
  
 
Per la stesura della privacy policy IDEM suggerisce di seguire le linee guida di REFEDS:
 
Per la stesura della privacy policy IDEM suggerisce di seguire le linee guida di REFEDS:
Riga 541: Riga 539:
 
La pagina di accesso ad una risorsa federata in IDEM DEVE contenere:
 
La pagina di accesso ad una risorsa federata in IDEM DEVE contenere:
  
*il logo di IDEM ([https://idem.garr.it/tutti-i-documenti/idem-archivio/banner-e-loghi Logo IDEM]) [e il logo di eduGAIN ([https://edugain.org/wp-content/uploads/2018/02/eduGAIN.jpg JPG] | [https://edugain.org/wp-content/uploads/2018/02/eduGAIN.png PNG]) se vi ha aderito]
+
*l'elenco degli IdP abilitati provenienti da IDEM ed eduGAIN;
*un elenco degli IdP in IDEM [e di quelli in eduGAIN se vi ha aderito]
 
 
*un riferimento alla pagina informativa del servizio ([[RequisitiEntita#SP-MD3%20-%20InformationURL|SP-MD3]])
 
*un riferimento alla pagina informativa del servizio ([[RequisitiEntita#SP-MD3%20-%20InformationURL|SP-MD3]])
  
 
+
Il Servizio suggerisce di seguire le ''REFEDS Best Practices:'' https://discovery.refeds.org/
''REFEDS Best Practices:'' https://discovery.refeds.org/
 
  
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
 
====SP-FED04 - Certificati metadata====
 
====SP-FED04 - Certificati metadata====
Il certificato o i certificati utilizzati per firmare e cifrare le asserzioni del SP DOVREBBERO essere:
+
Il certificato o i certificati utilizzati per firmare e cifrare le asserzioni dell'IdP DOVREBBERO essere:
  
 
*di lunga durata (30 anni);
 
*di lunga durata (30 anni);
*autofirmato (self-signed);
+
*autofirmati (self-signed);
*valido (non scaduto);
+
*validi (non scaduto);
*non firmato con algoritmi di firma basati su MD5 o SHA1;
+
*non firmati con algoritmi di firma basati su MD5 o SHA1;
*che corrisponda ad una chiave privata di almeno '''3072''' bit.
+
*corrispondenti ad una chiave privata di almeno 3072 bit.
 +
 
 +
In ogni caso la chiave privata corrispondente NON DEVE avere una lunghezza minore di 2048 bit.
  
 
===Esempio Metadata Service Provider===
 
===Esempio Metadata Service Provider===
Riga 565: Riga 563:
 
                     xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
 
                     xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
 
                     xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui">
 
                     xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui">
 
 
 
   <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
 
   <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
 
       <md:Extensions>
 
       <md:Extensions>
Riga 589: Riga 586:
 
         </mdui:UIInfo>
 
         </mdui:UIInfo>
 
       </md:Extensions>
 
       </md:Extensions>
 
 
 
       <md:KeyDescriptor>
 
       <md:KeyDescriptor>
 
         <ds:KeyInfo>
 
         <ds:KeyInfo>
 
             <ds:X509Data>
 
             <ds:X509Data>
 
               <ds:X509Certificate>
 
               <ds:X509Certificate>
                   SP_SELF-SIGNED_SUGGESTED_CERTIFICATE_USED_TO_
+
                   MII...
                  SIGN_AND_ENCRYPT_THE_ASSERTIONS_EXCHANGED_WITH_A_IDP-CHANGE_IT
 
 
               </ds:X509Certificate>
 
               </ds:X509Certificate>
 
             </ds:X509Data>
 
             </ds:X509Data>
 
         </ds:KeyInfo>
 
         </ds:KeyInfo>
 
       </md:KeyDescriptor>
 
       </md:KeyDescriptor>
 
 
      <md:ArtifactResolutionService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
 
        Location="https://sp.example.com/Shibboleth.sso/Artifact/SOAP"
 
        index="1" />
 
 
 
      <md:SingleLogoutService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
 
        Location="https://sp.example.com/Shibboleth.sso/SLO/SOAP" />
 
 
       <md:SingleLogoutService
 
       <md:SingleLogoutService
 
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
 
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Riga 615: Riga 601:
 
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
 
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
 
         Location="https://sp.example.com/Shibboleth.sso/SLO/POST" />
 
         Location="https://sp.example.com/Shibboleth.sso/SLO/POST" />
      <md:SingleLogoutService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
 
        Location="https://sp.example.com/Shibboleth.sso/SLO/Artifact" />
 
 
 
      <md:ManageNameIDService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
 
        Location="https://sp.example.com/Shibboleth.sso/NIM/SOAP" />
 
      <md:ManageNameIDService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
 
        Location="https://sp.example.com/Shibboleth.sso/NIM/Redirect" />
 
      <md:ManageNameIDService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
 
        Location="https://sp.example.com/Shibboleth.sso/NIM/POST" />
 
      <md:ManageNameIDService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
 
        Location="https://sp.example.com/Shibboleth.sso/NIM/Artifact" />
 
 
 
 
       <md:AssertionConsumerService
 
       <md:AssertionConsumerService
 
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
 
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
 
         Location="https://sp.example.com/Shibboleth.sso/SAML2/POST"
 
         Location="https://sp.example.com/Shibboleth.sso/SAML2/POST"
 
         index="1" />
 
         index="1" />
      <md:AssertionConsumerService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign"
 
        Location="https://sp.example.com/Shibboleth.sso/SAML2/POST-SimpleSign"
 
        index="2" />
 
      <md:AssertionConsumerService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
 
        Location="https://sp.example.com/Shibboleth.sso/SAML2/Artifact"
 
        index="3" />
 
      <md:AssertionConsumerService
 
        Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS"
 
        Location="https://sp.example.com/Shibboleth.sso/SAML2/ECP"
 
        index="4" />
 
 
 
 
       <md:AttributeConsumingService index="1">
 
       <md:AttributeConsumingService index="1">
 
         <!-- example for the required attribute: mail -->
 
         <!-- example for the required attribute: mail -->
Riga 655: Riga 611:
 
             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
 
             NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
 
             isRequired="true" />
 
             isRequired="true" />
 
 
 
         <!-- example for the desired attribute: eduPersonPrincipalName -->
 
         <!-- example for the desired attribute: eduPersonPrincipalName -->
 
         <md:RequestedAttribute FriendlyName="eppn"
 
         <md:RequestedAttribute FriendlyName="eppn"
Riga 663: Riga 618:
 
       </md:AttributeConsumingService>
 
       </md:AttributeConsumingService>
 
   </md:SPSSODescriptor>
 
   </md:SPSSODescriptor>
 
 
 
   <md:Organization>
 
   <md:Organization>
 
       <md:OrganizationName xml:lang="en">ENG ORGANIZATION NAME</md:OrganizationName>
 
       <md:OrganizationName xml:lang="en">ENG ORGANIZATION NAME</md:OrganizationName>
Riga 672: Riga 626:
 
       <md:OrganizationURL xml:lang="it">ITA ORGANIZATION URL</md:OrganizationURL>
 
       <md:OrganizationURL xml:lang="it">ITA ORGANIZATION URL</md:OrganizationURL>
 
   </md:Organization>
 
   </md:Organization>
 
 
 
   <md:ContactPerson contactType="technical">
 
   <md:ContactPerson contactType="technical">
 
       <md:EmailAddress>mailto:technical.contact.mailing.list@example.org</md:EmailAddress>
 
       <md:EmailAddress>mailto:technical.contact.mailing.list@example.org</md:EmailAddress>
   </md:ContactPerson>
+
   </md:ContactPerson>  
 
 
 
</md:EntityDescriptor>
 
</md:EntityDescriptor>
 
</syntaxhighlight>
 
</syntaxhighlight>

Versione delle 12:43, 12 mag 2021

In questa pagina sono indicati i requisiti richiesti dalla Federazione Italiana delle Identità Digitali IDEM GARR AAI.

Indice

Security (SEC) - Identity Provider & Service Provider

I requisiti di seguito elencati sono relativi al certificato SSL utilizzato per l'interfaccia HTTPS del servizio.

Non riguardano invece i certificati utilizzati dagli Identity e Service Provider per cifrare e firmare digitalmente le asserzioni presenti nei metadata.

SEC01 - Grado di robustezza SSL

il certificato SSL utilizzato sulla porta HTTPS del servizio DEVE riportare almeno un grado B su SSL Labs: https://www.ssllabs.com/ssltest/

[TOP]

SEC02 - Chain issue

il certificato SSL utilizzato sulla porta HTTPS del servizio DEVE essere privo di "Chain issues" (errori sulla catena della CA) --- verificabile con SSL Labs.

[TOP]

Identity Provider

Metadata (IDP-MD)

I requisiti di seguito elencati sono relativi ai metadata di un Identity Provider (IDP) e seguono le direttive indicate in SAML V2.0 Deployment Profile for Federation Interoperability.


IDP-MD01 - validUntil

validUntil , attributo contenuto nell'elemento <md:EntityDescriptor>, DEVE essere rimosso assieme al suo valore in quanto è la Federazione a compilarlo.

[TOP]

IDP-MD02 - entityID

entityID , attributo contenuto nell'elemento <md:EntityDescriptor>, DEVE essere una URI assoluta di lunghezza massima 256 caratteri.

Si RACCOMANDA di scegliere un valore che abbia la più bassa probabilità di modifica possibile.


Esempio:

entityID="https://idp.example.org/idp/shibboleth"

[TOP]

IDP-MD03 - Scope

<shibmd:Scope>, contenuto nell'elemento <md:Extension>, DEVE:

  • assumere valori di dominio nella disponibilità dell'organizzazione (strumento di verifica WHOIS)


Esempio:

<shibmd:Scope>example.org</shibmd:Scope>

[TOP]

IDP-MD04 - DisplayName

<mdui:DisplayName>, contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • essere valorizzato con il nome del servizio da mostrare all'utente
  • essere definito sia per la lingua italiana, sia per la lingua inglese


Esempio:

<mdui:DisplayName xml:lang="en">Example University</mdui:DisplayName>
<mdui:DisplayName xml:lang="it">Università di Esempio</mdui:DisplayName>

[TOP]

IDP-MD05 - Description

<mdui:Description>, contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • essere valorizzato con una breve descrizione del servizio
  • essere definito sia per la lingua italiana, sia per la lingua inglese


Esempio:

<mdui:Description xml:lang="en">Identity provider for Example University user</mdui:Description> 
<mdui:Description xml:lang="it">Identity provider per gli utenti di Università di Esempio</mdui:Description>

[TOP]

IDP-MD06 - InformationURL

<mdui:InformationURL>, contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • essere valorizzato con la URL della pagina informativa del servizio
  • essere definito sia per la lingua italiana, sia per la lingua inglese

Per il contenuto della pagina informativa vedi IDP-FED02.


Esempio:

<mdui:InformationURL xml:lang="en">https://...info page in english...</mdui:InformationURL> 
<mdui:InformationURL xml:lang="it">https://...pagina di informazioni in italiano...</mdui:InformationURL>

[TOP]

IDP-MD07 - PrivacyStatementURL

<mdui:PrivacyStatementURL>, contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • essere valorizzato con la URL della pagina sul trattamento dei dati personali del servizio
  • essere definito sia per la lingua italiana, sia per la lingua inglese

Per il contenuto della pagina sul trattamento dei dati personali vedi IDP-FED03.


Esempio:

<mdui:PrivacyStatementURL xml:lang="en">https://...privacy policy in english...</mdui:PrivacyStatementURL>  
<mdui:PrivacyStatementURL xml:lang="it">https://...privacy policy in italiano...</mdui:PrivacyStatementURL>

[TOP]

<mdui:Logo>, contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • essere valorizzato con le URL https:// dei loghi dell'organizzazione in formato PNG (si RACCOMANDA uno sfondo trasparente) nei formati:
    • 16x16 pixel (o maggiore se rispetta l'aspect-ratio)
    • 80x60 pixel (o maggiore se rispetta l'aspect-ratio)


Esempio:

<mdui:Logo width="16" height="16">https://...favicon_16x16.png...</mdui:Logo>
<mdui:Logo width="80" height="60">https://...logo_80x60.png...</mdui:Logo>

[TOP]

IDP-MD09 - KeyDescriptor

I metadata DEVONO contenere almeno un elemento <md:KeyDescriptor> con le seguenti caratteristiche:

  • privo di ulteriori attributi o con il solo attributo use="signing";
  • che contenga un certificato X.509 in formato PEM.
<md:KeyDescriptor use="signing">
   <ds:KeyInfo>
      <ds:X509Data>
         <ds:X509Certificate>
         MII[..]
         </ds:X509Certificate>
      </ds:X509Data>
   </ds:KeyInfo>
</md:KeyDescriptor>

[TOP]

IDP-MD10 - SingleSignOnService

<md:SingleSignOnService> DEVE:

  • essere presente con l'attributo Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect' perchè necessario alle Authentication Request (AuthnRequest);
  • essere presente con l'attributo Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST' perchè necessario alle Authentication Response (AuthnResponse);
  • in tutti i casi, contenere un attributo Location valorizzato con una URL protetta da SSL (https://).

Esempio:

<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://..."/>
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://..."/>

[TOP]

IDP-MD11 - SingleLogoutService

<md:SingleLogoutService> DEVE:

  • essere presente con l'attributo Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect' perchè necessario alle Logout Request (LogoutRequest);
  • contenere un attributo Location valorizzato con una URL protetta da SSL (https://).

Esempio:

<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://..."/>

[TOP]

IDP-MD12 - OrganizationName

<md:OrganizationName> , contenuto nell'elemento <md:Organization>, DEVE:

  • contenere il nome dell'organizzazione a cui afferisce il servizio;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.


Esempio:

<md:OrganizationName xml:lang="en">Example University</md:OrganizationName> 
<md:OrganizationName xml:lang="it">Università di Esempio</md:OrganizationName>

[TOP]

IDP-MD13 - OrganizationDisplayName

<md:OrganizationDisplayName> , contenuto nell'elemento <md:Organization>, DEVE:

  • contenere il nome dell'organizzazione che verrà mostrato nelle interfacce utente;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.


Esempio:

<md:OrganizationDisplayName xml:lang="en">Example University</md:OrganizationDisplayName>
<md:OrganizationDisplayName xml:lang="it">Università di Esempio</md:OrganizationDisplayName>

[TOP]

IDP-MD14 - OrganizationURL

<md:OrganizationURL>, contenuto nell'elemento <md:Organization>, DEVE:

  • contenere la URL del sito principale dell'organizzazione a cui afferisce il servizio;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.


Esempio:

<md:OrganizationURL xml:lang="en">https://...institutional site in english...</md:OrganizationURL> 
<md:OrganizationURL xml:lang="it">https://...sito istituzionalein italiano...</md:OrganizationURL>

[TOP]

IDP-MD15 - ContactPerson

I metadata DEVONO contenere almeno un elemento <md:ContactPerson> con le seguenti caratteristiche:

  • contenere l'indirizzo email del contatto tecnico del servizio;
  • contenere l'attributo contactType="technical";

Si RACCOMANDA di utilizzare un indirizzo impersonale (ad esempio una mailing-list).


Esempio:

<ContactPerson contactType="technical">mailto:mailing-list@domain</md:ContactPerson>

[TOP]


Federation (IDP-FED)

I requisiti di seguito elencati sono dettati dalla Federazione e destinati agli Identity Provider.

IDP-FED01 - Data

Un Identity Provider in IDEM DEVE essere in grado di rilasciare le seguenti informazioni:

  1. un identificativo univoco, persistente, diverso per ogni servizio e trasmissibile in una delle seguenti forme:
    • nell'elemento <NameID> con attributo Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" se indicato nei metadata del Service Provider;
    • nell'attributo eduPersonTargetedID per i Service Provider che lo richiedono nell'elemento <md:RequestedAttribute>;
  2. l'attributo eduPersonScopedAffiliation, l'affiliazione dell'utente con l'aggiunta dello scope.

Esempio con sp.aai-test.garr.it:

eduPersonScopedAffiliation = member@aai-test.garr.it;staff@aai-test.garr.it
persistent = https://garr-idp-test.irccs.garr.it/idp/shibboleth!https://sp.aai-test.garr.it/shibboleth!eYfN....Q1rU=

in rea[TOP]

IDP-FED02 - Informazioni

La pagina informativa esposta in lingua italiana e in lingua inglese DEVE contenere:

  1. un riferimento per il supporto agli utenti (ad esempio un indirizzo di posta, o un web form, ecc.);
  2. un collegamento alla pagina sul trattamento dei dati personali;
  3. il Logo di IDEM e il link al Sito di IDEM.

[TOP]

IDP-FED03 - Trattamento dati personali

La pagina sul trattamento dei dati personali DEVE contenere tutte le informazioni previste dagli artt. 13 e 14 del Regolamento UE 679/2016.

A titolo esemplificativo, Il Servizio IDEM GARR AAI rende disponibile il seguente modello: InformativaDatiPersonaliIdP.

[TOP]

IDP-FED04 - Login

La pagina di login di un Identity Provider federato in IDEM DEVE contenere:

  • il collegamento alla pagina informativa indicata da <mdui:InformationURL> (IDP-MD06)
  • il collegamento alla pagina sul trattamento dei dati personali indicata da <mdui:PrivacyStatementURL> (IDP-MD07)
  • il logo di IDEM (Logo IDEM)
  • il riferimento al Contatto Tecnico o al Contatto di Supporto per la risoluzione delle problematiche legate all'accesso alle risorse da parte degli utenti

[TOP]

IDP-FED05 - Certificati metadata

Il certificato o i certificati utilizzati per firmare e cifrare le asserzioni dell'IdP DOVREBBERO essere:

  • di lunga durata (30 anni);
  • autofirmati (self-signed);
  • validi (non scaduto);
  • non firmati con algoritmi di firma basati su MD5 o SHA1;
  • corrispondenti ad una chiave privata di almeno 3072 bit.

In ogni caso la chiave privata corrispondente NON DEVE avere una lunghezza minore di 2048 bit.

Esempio IdP Metadata

<md:EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui" entityID="https://idp.example.org/idp/shibboleth">
 <md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
  <md:Extensions>
   <shibmd:Scope regexp="false">example.org</shibmd:Scope>
   <mdui:UIInfo>
    <mdui:DisplayName xml:lang="en">ENG IDP DISPLAYNAME</mdui:DisplayName>
    <mdui:DisplayName xml:lang="it">ITA IDP DISPLAYNAME</mdui:DisplayName>
    <mdui:Description xml:lang="en">ENG IDP DESCRIPTION</mdui:Description>
    <mdui:Description xml:lang="it">ITA IDP DESCRIPTION</mdui:Description>
    <mdui:InformationURL xml:lang="en">HTTPS URL ENG INFO PAGE</mdui:InformationURL>
    <mdui:InformationURL xml:lang="it">HTTPS URL ITA INFO PAGE</mdui:InformationURL>
    <mdui:PrivacyStatementURL xml:lang="en">URL ENG PRIVACY POLICY PAGE</mdui:PrivacyStatementURL>
    <mdui:PrivacyStatementURL xml:lang="it">URL ITA PRIVACY POLICY PAGE</mdui:PrivacyStatementURL>
    <mdui:Logo width="80" height="60">HTTPS URL LOGO</mdui:Logo>
    <mdui:Logo width="16" height="16">HTTPS URL FAVICON</mdui:Logo>
   </mdui:UIInfo>
  </md:Extensions>
  <md:KeyDescriptor use="signing">
   <ds:KeyInfo>
    <ds:X509Data>
     <ds:X509Certificate>
        MII...
     </ds:X509Certificate>
    </ds:X509Data>
   </ds:KeyInfo>
  </md:KeyDescriptor>
  <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://idp.example.org/idp/profile/SAML2/Redirect/SLO"/>
  <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
  <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
  <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://idp.example.org/idp/profile/SAML2/Redirect/SSO"/>
  <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://idp.example.org/idp/profile/SAML2/POST/SSO"/>
 </md:IDPSSODescriptor>
 <md:Organization>
  <md:OrganizationName xml:lang="it">ITA IDP ORGANIZATION NAME</md:OrganizationName>
  <md:OrganizationName xml:lang="en">ENG IDP ORGANIZATION NAME</md:OrganizationName>
  <md:OrganizationDisplayName xml:lang="it">ITA IDP DISPLAYNAME ORGANIZATION</md:OrganizationDisplayName>
  <md:OrganizationDisplayName xml:lang="en">ENG IDP DISPLAYNAME ORGANIZATION</md:OrganizationDisplayName>
  <md:OrganizationURL xml:lang="it">https://example.org/it</md:OrganizationURL>
  <md:OrganizationURL xml:lang="en">https://example.org/en</md:OrganizationURL>
 </md:Organization>
 <md:ContactPerson contactType="technical">
  <md:GivenName>EXAMPLE CONTACT NAME</md:GivenName>
  <md:SurName>EXAMPLE CONTACT SURNAME</md:SurName>
  <md:EmailAddress>mailto:technical.contact@example.org</md:EmailAddress>
 </md:ContactPerson>
</md:EntityDescriptor>

Service Provider

Metadata (SP-MD)

I requisiti di seguito elencati sono relativi ai metadata che descrivono un Service Provider (SP)


SP-MD01 - validUntil

validUntil , attributo contenuto nell'elemento <md:EntityDescriptor>, DEVE essere rimosso assieme al suo valore in quanto è la Federazione a compilarlo.

[TOP]

SP-MD02 - entityID

entityID , attributo contenuto nell'elemento <md:EntityDescriptor>, DEVE essere una URI assoluta di lunghezza massima 256 caratteri.

Si RACCOMANDA di scegliere un valore che abbia la più bassa probabilità di modifica possibile.


Esempio:

entityID="https://sp.example.org/shibboleth"

[TOP]

SP-MD03 - DisplayName

<mdui:DisplayName> , contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • contenere il nome della risorsa da mostrare all'utente. Attenzione: il nome non deve usare la parola "IDEM", riservata al Servizio;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.


Esempio:

<mdui:DisplayName xml:lang="en">Resource provided by Example Organization</mdui:DisplayName>
<mdui:DisplayName xml:lang="it">Risorsa erogata da Organizzazione di Esempio</mdui:DisplayName>

[TOP]

SP-MD04 - Description

<mdui:Description> , contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • contenere una breve descrizione del servizio;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.


Esempio:

<mdui:Description xml:lang="en">The resource allow you to ...</mdui:Description> 
<mdui:Description xml:lang="it">La risorsa ti permette di ...</mdui:Description>

[TOP]

SP-MD03 - InformationURL

<mdui:InformationURL> , contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • contenere la URL della pagina informativa del servizio;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.

Esempio:

<mdui:InformationURL xml:lang="en">https://...info page in english...</mdui:InformationURL> 
<mdui:InformationURL xml:lang="it">https://...informativa in italiano...</mdui:InformationURL>

[TOP]

SP-MD04 - PrivacyStatementURL

<mdui:PrivacyStatementURL>, contenuto nell'elemento <mdui:UIInfo>, DEVE:

  • contenere la URL della pagina sul trattamento dei dati personali del servizio;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.


Esempio:

<mdui:PrivacyStatementURL xml:lang="en">https://...privacy policy in english...</mdui:PrivacyStatementURL>  
<mdui:PrivacyStatementURL xml:lang="it">https://...privacy policy in italiano...</mdui:PrivacyStatementURL>

[TOP]

<mdui:Logo> , contenuto nell'elemento <mdui:UIInfo>, DOVREBBE:

  • contenere una URL https:// riportante il logo dell'organizzazione in formato PNG (si RACCOMANDA uno sfondo possibilmente trasparente) con:
    • base: dai 64 px ai 350 px;
    • altezza: dai 64px ai 146px;


Esempio:

<mdui:Logo width="64" height="64">https://...logo.png</mdui:Logo>

[TOP]

SP-MD08 - KeyDescriptor

I metadata DEVONO contenere almeno un elemento <md:KeyDescriptor> con le seguenti caratteristiche:

  • privo di ulteriori attributi o con il solo attributo use="encryption";
  • che contenga un certificato X.509 in formato PEM.
<md:KeyDescriptor use="encryption">
   <ds:KeyInfo>
      <ds:X509Data>
         <ds:X509Certificate>
         MII[..]
         </ds:X509Certificate>
      </ds:X509Data>
   </ds:KeyInfo>
</md:KeyDescriptor>

Se il Service Provider supporta il Single Logout, DEVE essere presente un ulteriore elemento <md:KeyDescriptor> con l'attributo use="signing".

[TOP]

SP-MD09 - RequestedAttribute

<md:RequestedAttribute> , contenuto nell'elemento <md:AttributeConsumingService>, DEVE:

  • contenere tutti e soli gli attributi SAML richiesti dalla risorsa;
  • indicare gli attributi indispensabili all'accesso e all'utilizzo della risorsa con il parametro isRequired="true"
  • indicare gli attributi non indispensabili all'accesso e all'utilizzo della risorsa con il parametro isRequired="false"


Esempio:

<md:RequestedAttribute FriendlyName="givenName" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/>
<md:RequestedAttribute FriendlyName="displayName" Name="urn:oid:2.16.840.1.113730.3.1.241" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="false"/>

[TOP]

SP-MD10 - OrganizationName

<md:OrganizationName> , contenuto nell'elemento <md:Organization>, DEVE:

  • contenere il nome dell'organizzazione che offre il servizio;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.


Esempio:

<md:OrganizationName xml:lang="en">Example Organization</md:OrganizationName> 
<md:OrganizationName xml:lang="it">Organizzazione di Esempio</md:OrganizationName>

[TOP]

SP-MD11 - OrganizationDisplayName

<md:OrganizationDisplayName> , contenuto nell'elemento <md:Organization>, DEVE:

  • contenere il nome dell'organizzazione che offre il servizio da mostrare all'utente;
  • essere definito sia per la lingua italiana, sia per la lingua inglese.


Esempio:

<md:OrganizationDisplayName xml:lang="en">Resource provided by Example University</md:OrganizationDisplayName>
<md:OrganizationDisplayName xml:lang="it">Risorsa erogata da Università di Esempio</md:OrganizationDisplayName>

[TOP]

SP-MD12 - OrganizationURL

<md:OrganizationURL>, contenuto nell'elemento <md:Organization>, DEVE:

  • contenere la URL del sito principale dell'organizzazione che offre il servizio.
  • essere definito sia per la lingua italiana, sia per la lingua inglese;


Esempio:

<md:OrganizationURL xml:lang="en">https://...institutional site in english...</md:OrganizationURL> 
<md:OrganizationURL xml:lang="it">https://...sito istituzionalein italiano...</md:OrganizationURL>

[TOP]

SP-MD13 - ContactPerson

<md:ContactPerson> DEVE:

  • essere valorizzato con l'indirizzo email del contatto tecnico del servizio identificato dall'attributo contactType="technical".
    Si RACCOMANDA l'utilizzo di un indirizzo impersonale (mailing-list)


Esempio:

<ContactPerson contactType="technical">mailto:mailing-list@domain</md:ContactPerson>

[TOP]

Federation (SP-FED)

I requisiti di seguito elencati sono dettate dalla Federazione e destinate ai Service Provider.

SP-FED01 - Data

un Service Provider in IDEM riceve automaticamente le seguenti informazioni:

  1. Un identificativo univoco persistente e targhettizzato dell'utente:
    • persistent-id (persistent NameID) (o eduPersonTargetedID se non è possibile rilasciarlo)
  2. L'affiliazione dell'utente con scopo:
    • affiliation (eduPersonScopedAffiliation)


Esempio con sp.aai-test.garr.it:

affiliation = member@aai-test.garr.it;staff@aai-test.garr.it
persistent-id = https://garr-idp-test.irccs.garr.it/idp/shibboleth!https://sp.aai-test.garr.it/shibboleth!eYfN....Q1rU=

Ogni informazione aggiuntiva richiesta per l'utilizzo della/e risorsa/e protetta/e dal Service Provider va motivata adeguatamente a idem-help@garr.it.

[TOP]

SP-FED02 - Informazioni

La pagina informativa esposta in lingua italiana e in lingua inglese DEVE contenere:

  1. la descrizione del servizio;
  2. il pubblico a cui si rivolge il servizio;
  3. la denominazione dell'organizzazione che lo gestisce;
  4. il riferimento al supporto utenti;
  5. il collegamento alla pagina sul trattamento dei dati personali.

[TOP]

SP-FED03 - Trattamento dati

La pagina sul trattamento dei dati personali DEVE contenere tutte le informazioni previste dagli artt. 13 e 14 del Regolamento UE 679/2016.

Per la stesura della privacy policy IDEM suggerisce di seguire le linee guida di REFEDS:

https://wiki.refeds.org/display/CODE/Privacy+policy+guidelines+for+Service+Providers

[TOP]

SP-FED03 - Login Page / Discovery Service

La pagina di accesso ad una risorsa federata in IDEM DEVE contenere:

  • l'elenco degli IdP abilitati provenienti da IDEM ed eduGAIN;
  • un riferimento alla pagina informativa del servizio (SP-MD3)

Il Servizio suggerisce di seguire le REFEDS Best Practices: https://discovery.refeds.org/

[TOP]

SP-FED04 - Certificati metadata

Il certificato o i certificati utilizzati per firmare e cifrare le asserzioni dell'IdP DOVREBBERO essere:

  • di lunga durata (30 anni);
  • autofirmati (self-signed);
  • validi (non scaduto);
  • non firmati con algoritmi di firma basati su MD5 o SHA1;
  • corrispondenti ad una chiave privata di almeno 3072 bit.

In ogni caso la chiave privata corrispondente NON DEVE avere una lunghezza minore di 2048 bit.

Esempio Metadata Service Provider

<md:EntityDescriptor entityID="https://sp.example.com/shibboleth"
                     xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
                     xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui">
   <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
      <md:Extensions>
         <init:RequestInitiator
            xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
            Binding="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
            Location="https://sp.example.com/Shibboleth.sso/Login" />
         <idpdisc:DiscoveryResponse
            xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
            Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
            Location="https://sp.example.com/Shibboleth.sso/DS" index="1" />
         <mdui:UIInfo>
            <mdui:DisplayName xml:lang="en">ENG DISPLAY NAME</mdui:DisplayName>
            <mdui:DisplayName xml:lang="it">ITA DISPLAY NAME</mdui:DisplayName>
            <mdui:Description xml:lang="en">ENG DESCRIPTION</mdui:Description>
            <mdui:Description xml:lang="it">ITA DESCRIPTION</mdui:Description>
            <mdui:InformationURL xml:lang="en">HTTPS ENG INFORMATION PAGE URL</mdui:InformationURL>
            <mdui:InformationURL xml:lang="it">HTTPS ITA INFORMATION PAGE URL</mdui:InformationURL>
            <mdui:Logo height="16" width="16">HTTPS RESOURCE FAVICON PNG</mdui:Logo>
            <mdui:Logo height="60" width="80">HTTPS RESOURCE LOGO PNG</mdui:Logo>
            <mdui:PrivacyStatementURL xml:lang="en">HTTPS ENG PRIVACY POLICY PAGE URL</mdui:PrivacyStatementURL>
            <mdui:PrivacyStatementURL xml:lang="it">HTTPS ITA PRIVACY POLICY PAGE URL</mdui:PrivacyStatementURL>
         </mdui:UIInfo>
      </md:Extensions>
      <md:KeyDescriptor>
         <ds:KeyInfo>
            <ds:X509Data>
               <ds:X509Certificate>
                  MII...
               </ds:X509Certificate>
            </ds:X509Data>
         </ds:KeyInfo>
      </md:KeyDescriptor>
      <md:SingleLogoutService
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
         Location="https://sp.example.com/Shibboleth.sso/SLO/Redirect" />
      <md:SingleLogoutService
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
         Location="https://sp.example.com/Shibboleth.sso/SLO/POST" />
      <md:AssertionConsumerService
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
         Location="https://sp.example.com/Shibboleth.sso/SAML2/POST"
         index="1" />
      <md:AttributeConsumingService index="1">
         <!-- example for the required attribute: mail -->
         <md:RequestedAttribute FriendlyName="mail"
            Name="urn:oid:0.9.2342.19200300.100.1.3"
            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
            isRequired="true" />
         <!-- example for the desired attribute: eduPersonPrincipalName -->
         <md:RequestedAttribute FriendlyName="eppn"
            Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6"
            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
            isRequired="false" />
      </md:AttributeConsumingService>
   </md:SPSSODescriptor>
   <md:Organization>
      <md:OrganizationName xml:lang="en">ENG ORGANIZATION NAME</md:OrganizationName>
      <md:OrganizationName xml:lang="it">ITA ORGANIZATION NAME</md:OrganizationName>
      <md:OrganizationDisplayName xml:lang="en">ENG ORGANIZATION DISPLAY NAME</md:OrganizationDisplayName>
      <md:OrganizationDisplayName xml:lang="it">ITA ORGANIZATION DISPLAY NAME</md:OrganizationDisplayName>
      <md:OrganizationURL xml:lang="en">ENG ORGANIZATION URL</md:OrganizationURL>
      <md:OrganizationURL xml:lang="it">ITA ORGANIZATION URL</md:OrganizationURL>
   </md:Organization>
   <md:ContactPerson contactType="technical">
      <md:EmailAddress>mailto:technical.contact.mailing.list@example.org</md:EmailAddress>
   </md:ContactPerson> 
</md:EntityDescriptor>