Differenze tra le versioni di "RequisitiEntita"
(33 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
− | In questa pagina sono indicati i requisiti | + | = Profilo Tecnico Operativo per le Entità della Federazione IDEM = |
+ | In questa pagina sono indicati i requisiti delle entità che si intende registrare nella Federazione Italiana delle Identità Digitali IDEM GARR AAI. | ||
__TOC__ | __TOC__ | ||
+ | |||
+ | ===Definizioni=== | ||
+ | Le parole chiave utilizzate in questo documento, sempre scritte in maiuscolo ed indicate nella tabella di seguito con a fianco la loro versione originale in lingua inglese, devono essere interpretate secondo quanto indicato nella [<nowiki>RFC 2119</nowiki>]. | ||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | |DEVE/OBBLIGATORIO | ||
+ | |MUST/SHALL/REQUIRED | ||
+ | |- | ||
+ | |NON DEVE | ||
+ | |MUST NOT/SHALL NOT | ||
+ | |- | ||
+ | |DOVREBBE/RACCOMANDATO | ||
+ | |SHOULD | ||
+ | |- | ||
+ | |NON DOVREBBE | ||
+ | |SHOULD NOT | ||
+ | |- | ||
+ | |PUÒ/FACOLTATIVO | ||
+ | |MAY/OPTIONAL | ||
+ | |} | ||
+ | |||
+ | [[#top|[TOP]]] | ||
===Security (SEC) - Identity Provider & Service Provider=== | ===Security (SEC) - Identity Provider & Service Provider=== | ||
Riga 7: | Riga 30: | ||
Non riguardano invece i certificati utilizzati dagli Identity e Service Provider per cifrare e firmare digitalmente le asserzioni presenti nei metadata. | 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 <u>almeno un grado B</u> su SSL Labs: https://www.ssllabs.com/ssltest/ | |
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ==== | + | ====SEC02 - Chain issue==== |
− | + | Il certificato SSL utilizzato sulla porta HTTPS del servizio DEVE essere <u>privo di "Chain issues"</u> (errori sulla catena della CA) --- verificabile con SSL Labs. | |
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
==Identity Provider== | ==Identity Provider== | ||
===Metadata (IDP-MD)=== | ===Metadata (IDP-MD)=== | ||
− | I requisiti di seguito elencati sono relativi ai metadata di un Identity Provider (IDP) | + | I requisiti di seguito elencati sono relativi ai metadata di un Identity Provider (IDP).<br /> |
− | |||
− | <br /> | ||
====IDP-MD01 - validUntil==== | ====IDP-MD01 - validUntil==== | ||
− | <code>validUntil</code> , attributo contenuto nell'elemento <code><md:EntityDescriptor></code>, DEVE essere | + | <code>validUntil</code>, attributo contenuto nell'elemento <code><md:EntityDescriptor></code>, DEVE essere <u>rimosso</u> assieme al suo valore in quanto verrà inserito dalla Federazione. |
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
====IDP-MD02 - entityID==== | ====IDP-MD02 - entityID==== | ||
− | <code>entityID</code> , attributo contenuto nell'elemento <code><md:EntityDescriptor></code>, DEVE essere una | + | <code>entityID</code>, attributo contenuto nell'elemento <code><md:EntityDescriptor></code>, DEVE essere una URL di lunghezza massima 256 caratteri. |
+ | |||
+ | La URL dell'entityID DOVREBBE restituire i metadata dell'entità. | ||
− | |||
''Esempio:''<syntaxhighlight lang="xml"> | ''Esempio:''<syntaxhighlight lang="xml"> | ||
− | entityID="https://idp.example.org/shibboleth" | + | entityID="https://idp.example.org/idp/shibboleth" |
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD03 - Scope==== | ====IDP-MD03 - Scope==== | ||
Riga 49: | Riga 71: | ||
<code><mdui:DisplayName></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:DisplayName></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *contenere il nome del 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 62: | Riga 84: | ||
<code><mdui:Description></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:Description></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *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 75: | Riga 97: | ||
<code><mdui:InformationURL></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:InformationURL></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *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>. |
+ | |||
+ | Per il contenuto della pagina informativa vedere [[RequisitiEntita#IDP-FED02 - Informazioni|IDP-FED02]]. | ||
Riga 88: | Riga 112: | ||
<code><mdui:PrivacyStatementURL></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:PrivacyStatementURL></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *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>. |
+ | |||
+ | Per il contenuto della pagina sul trattamento dei dati personali vedere [[RequisitiEntita#IDP-FED03 - Trattamento dati personali|IDP-FED03]]. | ||
Riga 101: | Riga 127: | ||
<code><mdui:Logo></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:Logo></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *contenere le URL protette da SSL (<code>https://</code>) dei loghi dell'organizzazione in formato '''PNG''' (si RACCOMANDA uno sfondo trasparente) aventi dimensioni: |
− | **'''16x16 pixel''' (o maggiore se rispetta l'aspect-ratio) | + | **'''16x16 pixel''' (o maggiore se rispetta l'aspect-ratio); |
− | **'''80x60 pixel''' (o maggiore se rispetta l'aspect-ratio) | + | **'''80x60 pixel''' (o maggiore se rispetta l'aspect-ratio). |
Riga 111: | Riga 137: | ||
<mdui:Logo width="80" height="60">https://...logo_80x60.png...</mdui:Logo> | <mdui:Logo width="80" height="60">https://...logo_80x60.png...</mdui:Logo> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | [[#top|[TOP]]]< | + | [[#top|[TOP]]] |
+ | ====IDP-MD09 - KeyDescriptor==== | ||
+ | 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>; | ||
+ | *che contenga un certificato X.509 in formato PEM. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [[#top|[TOP]]] | + | ''Esempio:''<syntaxhighlight lang="xml"> |
+ | <md:KeyDescriptor use="signing"> | ||
+ | <ds:KeyInfo> | ||
+ | <ds:X509Data> | ||
+ | <ds:X509Certificate> | ||
+ | MII[..] | ||
+ | </ds:X509Certificate> | ||
+ | </ds:X509Data> | ||
+ | </ds:KeyInfo> | ||
+ | </md:KeyDescriptor> | ||
+ | |||
+ | </syntaxhighlight>[[#top|[TOP]]] | ||
+ | |||
====IDP-MD10 - SingleSignOnService==== | ====IDP-MD10 - SingleSignOnService==== | ||
<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>); |
− | * | + | *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 140: | Riga 174: | ||
<code><md:SingleLogoutService></code> DEVE: | <code><md:SingleLogoutService></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 Logout Request (<code>LogoutRequest</code>); |
+ | *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 184: | ||
<code><md:OrganizationName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE: | <code><md:OrganizationName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE: | ||
− | * | + | *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 162: | Riga 197: | ||
<code><md:OrganizationDisplayName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE: | <code><md:OrganizationDisplayName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE: | ||
− | * | + | *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 175: | Riga 210: | ||
<code><md:OrganizationURL></code>, contenuto nell'elemento <code><md:Organization></code>, DEVE: | <code><md:OrganizationURL></code>, contenuto nell'elemento <code><md:Organization></code>, DEVE: | ||
− | * | + | *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 187: | Riga 222: | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
====IDP-MD15 - ContactPerson==== | ====IDP-MD15 - ContactPerson==== | ||
− | <code><md:ContactPerson></code> | + | I metadata DEVONO contenere <u>almeno</u> 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>; | ||
+ | |||
+ | Si RACCOMANDA di utilizzare un indirizzo <u>impersonale</u> (ad esempio una mailing-list). | ||
Riga 201: | Riga 239: | ||
<br /> | <br /> | ||
===Federation (IDP-FED)=== | ===Federation (IDP-FED)=== | ||
− | I requisiti di seguito elencati sono | + | I requisiti di seguito elencati sono dettati dalla Federazione e destinati agli Identity Provider. |
− | ====IDP- | + | ====IDP-FED01 - Data==== |
− | + | Un Identity Provider in IDEM DEVE essere in grado di rilasciare le seguenti informazioni: | |
− | # | + | #un identificativo univoco, persistente, diverso per ogni servizio e trasmissibile in una delle seguenti forme: |
− | #*<code>persistent | + | #*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; |
− | # | + | #*nell'attributo <code>eduPersonTargetedID</code> per i Service Provider che lo richiedono nell'elemento <code><md:RequestedAttribute></code>. |
− | + | #l'attributo <code>eduPersonScopedAffiliation</code>, ovvero 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"> | ||
− | + | eduPersonScopedAffiliation = member@aai-test.garr.it;staff@aai-test.garr.it | |
− | persistent | + | persistent = https://garr-idp-test.irccs.garr.it/idp/shibboleth!https://sp.aai-test.garr.it/shibboleth!eYfN....Q1rU= |
+ | </syntaxhighlight> | ||
+ | |||
+ | [[#top|[TOP]]] | ||
− | + | ====IDP-FED02 - Informazioni==== | |
− | ====IDP- | + | 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 | ||
− | #un | + | #un riferimento per il supporto agli utenti (ad esempio un indirizzo di posta, o un web form, ecc.); |
− | # | + | #un collegamento alla pagina sul trattamento dei dati personali; |
− | #il Logo di IDEM e il link al Sito di IDEM | + | #il Logo di IDEM e il link al Sito di IDEM. |
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====IDP- | + | ====IDP-FED03 - Trattamento dati personali==== |
− | La pagina sul trattamento dei 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, IDEM | + | A titolo esemplificativo, Il Servizio IDEM GARR AAI rende disponibile il seguente modello: [[InformativaDatiPersonaliIdP|InformativaDatiPersonaliIdP.]] |
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====IDP- | + | ====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 | + | *il collegamento alla pagina informativa indicata da <code><mdui:InformationURL></code> ([[RequisitiEntita#IDP-MD06%20-%20InformationURL|IDP-MD06]]); |
− | *il | + | *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 ([ | + | *il logo di IDEM ([https://idem.garr.it/tutti-i-documenti/idem-archivio/banner-e-loghi 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 | + | *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. |
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
+ | |||
+ | ====IDP-FED05 - Certificati metadata==== | ||
+ | Il certificato o i certificati utilizzati per <u>firmare e cifrare</u> 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=== | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <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> | ||
+ | </syntaxhighlight> | ||
+ | |||
==Service Provider== | ==Service Provider== | ||
===Metadata (SP-MD)=== | ===Metadata (SP-MD)=== | ||
− | I requisiti di seguito elencati sono relativi ai metadata che descrivono un Service Provider (SP) | + | I requisiti di seguito elencati sono relativi ai metadata che descrivono un Service Provider (SP). |
+ | |||
+ | <br /> | ||
− | ====SP- | + | ====SP-MD01 - validUntil==== |
+ | <code>validUntil</code> , attributo contenuto nell'elemento <code><md:EntityDescriptor></code>, DEVE essere <u>rimosso</u> assieme al suo valore in quanto verrà inserito dalla Federazione. | ||
+ | |||
+ | [[RequisitiEntita#top|[TOP]]] | ||
+ | |||
+ | ====SP-MD02 - entityID==== | ||
+ | <code>entityID</code> , attributo contenuto nell'elemento <code><md:EntityDescriptor></code>, DEVE essere una URL di lunghezza massima 256 caratteri. | ||
+ | |||
+ | La URL dell'entityID DOVREBBE restituire i metadata dell'entità. | ||
+ | |||
+ | |||
+ | |||
+ | ''Esempio:''<syntaxhighlight lang="xml"> | ||
+ | entityID="https://sp.example.org/shibboleth" | ||
+ | </syntaxhighlight>[[RequisitiEntita#top|[TOP]]] | ||
+ | |||
+ | ====SP-MD03 - DisplayName==== | ||
<code><mdui:DisplayName></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:DisplayName></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *contenere il nome della risorsa da mostrare all'utente. '''Attenzione''': il nome <u>non deve usare</u> la parola "IDEM" perchè 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 258: | Riga 378: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-MD04 - Description==== |
<code><mdui:Description></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:Description></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *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 271: | Riga 391: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-MD03 - InformationURL==== |
<code><mdui:InformationURL></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:InformationURL></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *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>. |
+ | |||
+ | Per il contenuto della pagina informativa vedere [[RequisitiEntita#SP-FED02%20-%20Informazioni|SP-FED02]]. | ||
+ | |||
''Esempio:'' | ''Esempio:'' | ||
Riga 283: | Riga 406: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-MD04 - PrivacyStatementURL==== |
<code><mdui:PrivacyStatementURL></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | <code><mdui:PrivacyStatementURL></code>, contenuto nell'elemento <code><mdui:UIInfo></code>, DEVE: | ||
− | * | + | *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>. |
+ | |||
+ | Per il contenuto della pagina sul trattamento dei dati personali vedere [[RequisitiEntita#SP-FED03%20-%20Trattamento%20dati|SP-FED03]]. | ||
Riga 296: | Riga 421: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-MD07 - Logo==== |
− | <code><mdui:Logo></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, | + | <code><mdui:Logo></code> , contenuto nell'elemento <code><mdui:UIInfo></code>, DOVREBBE: |
− | * | + | *contenere una URL protetta da SSL ( <code>https://</code> ) del 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; |
− | |||
− | |||
Riga 311: | Riga 434: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | |
+ | ====SP-MD08 - KeyDescriptor==== | ||
+ | I metadata DEVONO contenere <u>almeno</u> un elemento <code><md:KeyDescriptor></code> con le seguenti caratteristiche: | ||
+ | |||
+ | *privo di ulteriori attributi o con il solo attributo <code>use="encryption"</code>; | ||
+ | *contenente un certificato X.509 in formato PEM. | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <md:KeyDescriptor use="encryption"> | ||
+ | <ds:KeyInfo> | ||
+ | <ds:X509Data> | ||
+ | <ds:X509Certificate> | ||
+ | MII[..] | ||
+ | </ds:X509Certificate> | ||
+ | </ds:X509Data> | ||
+ | </ds:KeyInfo> | ||
+ | </md:KeyDescriptor> | ||
+ | </syntaxhighlight>Se il Service Provider supporta il Single Logout, DEVE essere presente un <u>ulteriore</u> elemento <code><md:KeyDescriptor></code> con l'attributo <code>use="signing"</code>. | ||
+ | |||
+ | [[#top|[TOP]]] | ||
+ | |||
+ | ====SP-MD09 - RequestedAttribute==== | ||
<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 | + | *contenere tutti e soli gli attributi SAML richiesti dalla risorsa; |
− | *indicare gli attributi <u>indispensabili</u> all'accesso e all'utilizzo | + | *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 | + | *indicare gli attributi <u>non indispensabili</u> all'accesso e all'utilizzo della risorsa con il parametro <code>isRequired="false"</code> |
Riga 326: | Riga 469: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-MD10 - OrganizationName==== |
<code><md:OrganizationName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE: | <code><md:OrganizationName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE: | ||
− | * | + | *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 339: | Riga 482: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-MD11 - OrganizationDisplayName==== |
<code><md:OrganizationDisplayName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE: | <code><md:OrganizationDisplayName></code> , contenuto nell'elemento <code><md:Organization></code>, DEVE: | ||
− | * | + | *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 349: | Riga 492: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<md:OrganizationDisplayName xml:lang="en">Resource provided by Example University</md:OrganizationDisplayName> | <md:OrganizationDisplayName xml:lang="en">Resource provided by Example University</md:OrganizationDisplayName> | ||
− | <md:OrganizationDisplayName xml:lang="it">Risorsa | + | <md:OrganizationDisplayName xml:lang="it">Risorsa erogata da Università di Esempio</md:OrganizationDisplayName> |
</syntaxhighlight> | </syntaxhighlight> | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-MD12 - OrganizationURL==== |
<code><md:OrganizationURL></code>, contenuto nell'elemento <code><md:Organization></code>, DEVE: | <code><md:OrganizationURL></code>, contenuto nell'elemento <code><md:Organization></code>, DEVE: | ||
− | * | + | *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 366: | Riga 509: | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-MD13 - ContactPerson==== |
− | <code><md:ContactPerson></code> | + | I metadata DEVONO contenere <u>almeno</u> 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>; | ||
− | + | Si RACCOMANDA di utilizzare un indirizzo <u>impersonale</u> (ad esempio una mailing-list). | |
Riga 380: | Riga 526: | ||
===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- | + | ====SP-FED01 - Data==== |
un Service Provider in IDEM riceve ''automaticamente'' le seguenti informazioni: | un Service Provider in IDEM riceve ''automaticamente'' le seguenti informazioni: | ||
Riga 398: | Riga 544: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | <u>Ogni informazione aggiuntiva richiesta</u> per l'utilizzo della/e risorsa/e protetta/e dal Service Provider <u>va motivata adeguatamente</u> a <code>idem-help@garr.it</code>. | + | <u>Ogni informazione aggiuntiva richiesta</u> per l'utilizzo della/e risorsa/e protetta/e dal Service Provider <u>va motivata adeguatamente</u> via mail a <code>idem-help@garr.it</code>. |
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | |
+ | ====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 | + | #la denominazione dell'organizzazione che lo gestisce; |
− | # | + | #il riferimento al supporto utenti; |
− | # | + | #il collegamento alla pagina sul trattamento dei dati personali. |
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-FED03 - Trattamento dati==== |
− | La pagina | + | 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 421: | Riga 568: | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP- | + | ====SP-FED03 - Login Page / Discovery Service==== |
La pagina di accesso ad una risorsa federata in IDEM DEVE contenere: | 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 ([[RequisitiEntita#SP-MD3%20-%20InformationURL|SP-MD3]]) | |
− | *un riferimento alla pagina informativa del servizio | ||
+ | Il Servizio suggerisce di seguire le ''REFEDS Best Practices:'' https://discovery.refeds.org/ | ||
− | ' | + | [[#top|[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=== | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <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="64" width="64">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> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===Riferimenti=== | ||
+ | [RFC 2119] Key words for use in RFCs to Indicate Requirement Levels | ||
+ | |||
+ | http://www.rfc-editor.org/rfc/rfc2119.txt | ||
+ | |||
+ | |||
+ | [SAML2Core] Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0 | ||
+ | |||
+ | http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf | ||
+ | |||
+ | |||
+ | [SAML2Bind] Bindings for the OASIS Security Assertion Markup Language (SAML) V2.0 | ||
+ | |||
+ | http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf | ||
+ | |||
+ | |||
+ | [SAML2Meta] Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0 | ||
+ | |||
+ | http://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf | ||
+ | |||
+ | |||
+ | [SAML2MDIOP] SAML V2.0 Metadata Interoperability Profile Version 1.0 | ||
+ | |||
+ | http://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.pdf | ||
+ | |||
+ | |||
+ | [SAML2Int] SAML V2.0 Deployment Profile for Federation Interoperability | ||
+ | |||
+ | https://kantarainitiative.github.io/SAMLprofiles/saml2int.html |
Versione attuale delle 17:03, 31 mag 2021
Profilo Tecnico Operativo per le Entità della Federazione IDEM
In questa pagina sono indicati i requisiti delle entità che si intende registrare nella Federazione Italiana delle Identità Digitali IDEM GARR AAI.
Indice
- 1 Profilo Tecnico Operativo per le Entità della Federazione IDEM
- 1.1 Definizioni
- 1.2 Security (SEC) - Identity Provider & Service Provider
- 1.3 Identity Provider
- 1.3.1 Metadata (IDP-MD)
- 1.3.1.1 IDP-MD01 - validUntil
- 1.3.1.2 IDP-MD02 - entityID
- 1.3.1.3 IDP-MD03 - Scope
- 1.3.1.4 IDP-MD04 - DisplayName
- 1.3.1.5 IDP-MD05 - Description
- 1.3.1.6 IDP-MD06 - InformationURL
- 1.3.1.7 IDP-MD07 - PrivacyStatementURL
- 1.3.1.8 IDP-MD08 - Logo
- 1.3.1.9 IDP-MD09 - KeyDescriptor
- 1.3.1.10 IDP-MD10 - SingleSignOnService
- 1.3.1.11 IDP-MD11 - SingleLogoutService
- 1.3.1.12 IDP-MD12 - OrganizationName
- 1.3.1.13 IDP-MD13 - OrganizationDisplayName
- 1.3.1.14 IDP-MD14 - OrganizationURL
- 1.3.1.15 IDP-MD15 - ContactPerson
- 1.3.2 Federation (IDP-FED)
- 1.3.3 Esempio IdP Metadata
- 1.3.1 Metadata (IDP-MD)
- 1.4 Service Provider
- 1.4.1 Metadata (SP-MD)
- 1.4.1.1 SP-MD01 - validUntil
- 1.4.1.2 SP-MD02 - entityID
- 1.4.1.3 SP-MD03 - DisplayName
- 1.4.1.4 SP-MD04 - Description
- 1.4.1.5 SP-MD03 - InformationURL
- 1.4.1.6 SP-MD04 - PrivacyStatementURL
- 1.4.1.7 SP-MD07 - Logo
- 1.4.1.8 SP-MD08 - KeyDescriptor
- 1.4.1.9 SP-MD09 - RequestedAttribute
- 1.4.1.10 SP-MD10 - OrganizationName
- 1.4.1.11 SP-MD11 - OrganizationDisplayName
- 1.4.1.12 SP-MD12 - OrganizationURL
- 1.4.1.13 SP-MD13 - ContactPerson
- 1.4.2 Federation (SP-FED)
- 1.4.3 Esempio Metadata Service Provider
- 1.4.4 Riferimenti
- 1.4.1 Metadata (SP-MD)
Definizioni
Le parole chiave utilizzate in questo documento, sempre scritte in maiuscolo ed indicate nella tabella di seguito con a fianco la loro versione originale in lingua inglese, devono essere interpretate secondo quanto indicato nella [RFC 2119].
DEVE/OBBLIGATORIO | MUST/SHALL/REQUIRED |
NON DEVE | MUST NOT/SHALL NOT |
DOVREBBE/RACCOMANDATO | SHOULD |
NON DOVREBBE | SHOULD NOT |
PUÒ/FACOLTATIVO | MAY/OPTIONAL |
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/
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.
Identity Provider
Metadata (IDP-MD)
I requisiti di seguito elencati sono relativi ai metadata di un Identity Provider (IDP).
IDP-MD01 - validUntil
validUntil
, attributo contenuto nell'elemento <md:EntityDescriptor>
, DEVE essere rimosso assieme al suo valore in quanto verrà inserito dalla Federazione.
IDP-MD02 - entityID
entityID
, attributo contenuto nell'elemento <md:EntityDescriptor>
, DEVE essere una URL di lunghezza massima 256 caratteri.
La URL dell'entityID DOVREBBE restituire i metadata dell'entità.
Esempio:
entityID="https://idp.example.org/idp/shibboleth"
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>
IDP-MD04 - DisplayName
<mdui:DisplayName>
, contenuto nell'elemento <mdui:UIInfo>
, DEVE:
- contenere 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>
IDP-MD05 - 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">Identity provider for Example University user</mdui:Description>
<mdui:Description xml:lang="it">Identity provider per gli utenti di Università di Esempio</mdui:Description>
IDP-MD06 - 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.
Per il contenuto della pagina informativa vedere 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>
IDP-MD07 - 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.
Per il contenuto della pagina sul trattamento dei dati personali vedere 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>
IDP-MD08 - Logo
<mdui:Logo>
, contenuto nell'elemento <mdui:UIInfo>
, DEVE:
- contenere le URL protette da SSL (
https://
) dei loghi dell'organizzazione in formato PNG (si RACCOMANDA uno sfondo trasparente) aventi dimensioni:- 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>
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.
Esempio:
<md:KeyDescriptor use="signing">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MII[..]
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
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://..."/>
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://..."/>
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>
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>
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>
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>
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:
- un identificativo univoco, persistente, diverso per ogni servizio e trasmissibile in una delle seguenti forme:
- nell'elemento
<NameID>
con attributoFormat="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>
.
- nell'elemento
- l'attributo
eduPersonScopedAffiliation
, ovvero l'affiliazione dell'utente con l'aggiunta delloscope
.
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=
IDP-FED02 - Informazioni
La pagina informativa esposta in lingua italiana e in lingua inglese DEVE contenere:
- un riferimento per il supporto agli utenti (ad esempio un indirizzo di posta, o un web form, ecc.);
- un collegamento alla pagina sul trattamento dei dati personali;
- il Logo di IDEM e il link al Sito di IDEM.
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.
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.
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 verrà inserito dalla Federazione.
SP-MD02 - entityID
entityID
, attributo contenuto nell'elemento <md:EntityDescriptor>
, DEVE essere una URL di lunghezza massima 256 caratteri.
La URL dell'entityID DOVREBBE restituire i metadata dell'entità.
Esempio:
entityID="https://sp.example.org/shibboleth"
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" perchè 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>
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>
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.
Per il contenuto della pagina informativa vedere SP-FED02.
Esempio:
<mdui:InformationURL xml:lang="en">https://...info page in english...</mdui:InformationURL>
<mdui:InformationURL xml:lang="it">https://...informativa in italiano...</mdui:InformationURL>
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.
Per il contenuto della pagina sul trattamento dei dati personali vedere SP-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>
SP-MD07 - Logo
<mdui:Logo>
, contenuto nell'elemento <mdui:UIInfo>
, DOVREBBE:
- contenere una URL protetta da SSL (
https://
) del 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>
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"
; - contenente 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"
.
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"/>
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>
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>
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>
SP-MD13 - 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>
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:
- Un identificativo univoco persistente e targhettizzato dell'utente:
persistent-id
(persistent NameID) (o eduPersonTargetedID se non è possibile rilasciarlo)
- 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 via mail a idem-help@garr.it
.
SP-FED02 - Informazioni
La pagina informativa esposta in lingua italiana e in lingua inglese DEVE contenere:
- la descrizione del servizio;
- il pubblico a cui si rivolge il servizio;
- la denominazione dell'organizzazione che lo gestisce;
- il riferimento al supporto utenti;
- il collegamento alla pagina sul trattamento dei dati personali.
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
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/
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="64" width="64">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>
Riferimenti
[RFC 2119] Key words for use in RFCs to Indicate Requirement Levels
http://www.rfc-editor.org/rfc/rfc2119.txt
[SAML2Core] Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0
http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
[SAML2Bind] Bindings for the OASIS Security Assertion Markup Language (SAML) V2.0
http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf
[SAML2Meta] Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0
http://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf
[SAML2MDIOP] SAML V2.0 Metadata Interoperability Profile Version 1.0
http://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.pdf
[SAML2Int] SAML V2.0 Deployment Profile for Federation Interoperability
https://kantarainitiative.github.io/SAMLprofiles/saml2int.html