Differenze tra le versioni di "RequisitiEntita"

Da WIKI IDEM GARR.
Jump to navigation Jump to search
Riga 30: Riga 30:
 
Si RACCOMANDA di scegliere un valore che abbia la più bassa probabilità di modifica possibile.
 
Si RACCOMANDA di scegliere un valore che abbia la più bassa probabilità di modifica possibile.
  
<nowiki>***</nowiki> The simple type entityIDType restricts the XML schema data type anyURI to a maximum length of 1024 characters. ***
 
  
 
''Esempio:''<syntaxhighlight lang="xml">
 
''Esempio:''<syntaxhighlight lang="xml">
Riga 76: Riga 75:
 
<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
+
*essere valorizzato con la URL della pagina informativa del servizio che DEVE contenere:
 +
**un indirizzo di posta elettronica per il supporto agli utenti in merito a IDEM e alle credenziali di autenticazione
 +
**la Privacy Policy per l’utente contenente gli attributi che l'IdP potrebbe rilasciare alle risorse federate
 +
**il [https://idem.garr.it/tutti-i-documenti/idem-archivio/banner-e-loghi Logo di IDEM] e il link al [https://idem.garr.it/ Sito di IDEM] ('''fortemente raccomandato''')
 
*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 89: Riga 91:
 
<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
+
*essere valorizzato con la URL della pagina sul trattamento dei dati personali (Privacy Policy) seguita dall'istituzione.  A titolo esemplificativo, IDEM fornisce la pagina: [[InformativaDatiPersonaliIdP|InformativaDatiPersonaliIdP.]]
 
*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 217: Riga 219:
  
 
</syntaxhighlight>[[#top|[TOP]]]
 
</syntaxhighlight>[[#top|[TOP]]]
====IDP-FED02 - Info Page====
+
====IDP-FED02 - Login Page====
La pagina informativa esposta in lingua <u>italiana</u> e in lingua <u>inglese</u> DEVE opportunamente contenere:
 
 
 
#un indirizzo di posta elettronica per il supporto agli utenti in merito a IDEM e alle credenziali di autenticazione
 
#la Privacy Policy per l’utente contenente gli attributi che potrebbe rilasciare alle risorse federate
 
#il Logo di IDEM e il link al Sito di IDEM ('''fortemente raccomandato''')
 
 
 
[[#top|[TOP]]]
 
 
 
====IDP-FED03 - Privacy Page====
 
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.
 
 
 
A titolo esemplificativo, IDEM fornisce la pagina: [[InformativaDatiPersonaliIdP|InformativaDatiPersonaliIdP.]]
 
 
 
[[#top|[TOP]]]
 
 
 
====IDP-FED04 - Login Page====
 
 
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>
+
*il riferimento 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>
+
*il riferimento alla pagina sul trattamento dei dati personali indicata da <code><mdui:PrivacyStatementURL></code> ([[RequisitiEntita#IDP-MD07%20-%20PrivacyStatementURL|IDP-MD07]])
*il logo di IDEM ([[:File:IDEM logo big.png|Logo 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]]]
Riga 346: Riga 332:
 
<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
+
*essere valorizzato con la URL della pagina informativa del servizio in cui DEVE essere inserito:
 +
**la descrizione del servizio
 +
**il pubblico a cui si rivolge il servizio
 +
**la denominazione dell'organizzazione che lo condivide
 +
**un indirizzo email per il supporto degli utenti e dei gestori di Identity Provider
 +
**un riferimento alla Privacy Policy seguita dal servizio ([[RequisitiEntita#SP-MD4%20-%20PrivacyStatementURL|SP-MD4]])
 
*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 358: Riga 349:
 
<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
+
*essere valorizzato con la URL della Privacy Policy adottata dal servizio in cui DEVONO essere contenute le adeguate informazioni circa il trattamento dei dati personali utilizzati. Per la sua stesura IDEM suggerisce di seguire le linee guida di REFEDS:  https://wiki.refeds.org/display/CODE/Privacy+policy+guidelines+for+Service+Providers
 
*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 473: Riga 464:
  
 
[[#top|[TOP]]]
 
[[#top|[TOP]]]
====SP-FED02 - Info Page====
+
====SP-FED02 - Login Page / Discovery Service====
La pagina informativa esposta in lingua <u>italiana</u> e in lingua <u>inglese</u> DEVE contenere:
 
 
 
#la descrizione del servizio
 
#il pubblico a cui si rivolge il servizio
 
#la denominazione dell'organizzazione che lo condivide
 
#indirizzo email per il supporto degli utenti e dei gestori di Identity Provider
 
#un riferimento alla Privacy Policy seguita dal servizio
 
 
 
[[#top|[TOP]]]
 
 
 
====SP-FED03 - Privacy Page====
 
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.
 
 
 
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|[TOP]]]
 
 
 
====SP-FED04 - 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:
  
*il logo di IDEM ([[:File:IDEM logo big.png|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]
+
*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]
 
*un elenco degli IdP in IDEM [e di quelli in eduGAIN se vi ha aderito]
 
*un elenco degli IdP in IDEM [e di quelli in eduGAIN se vi ha aderito]
*un riferimento alla pagina informativa del servizio
+
*un riferimento alla pagina informativa del servizio ([[RequisitiEntita#SP-MD3%20-%20InformationURL|SP-MD3]])
  
  

Versione delle 14:16, 10 mag 2021

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

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/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 che DEVE contenere:
    • un indirizzo di posta elettronica per il supporto agli utenti in merito a IDEM e alle credenziali di autenticazione
    • la Privacy Policy per l’utente contenente gli attributi che l'IdP potrebbe rilasciare alle risorse federate
    • il Logo di IDEM e il link al Sito di IDEM (fortemente raccomandato)
  • 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://...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 (Privacy Policy) seguita dall'istituzione. A titolo esemplificativo, IDEM fornisce la pagina: InformativaDatiPersonaliIdP.
  • 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>, 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]

DAVIDE - ARRIVATO QUI!

IDP-MD09 - KeyDescriptor

<md:KeyDescriptor> DEVE contenere almeno una chiave pubblica:

  • nel formato di un certificato X.509 e possibilmente:
    • di lunga durata (30 anni)
    • autofirmato (self-signed)
    • valido (non scaduto)
    • non firmato con algoritmi di firma basati su MD5 o SHA1
  • che corrisponda ad una chiave privata di almeno 2048 bit. Per le nuove installazioni si RACCOMANDA una lunghezza di 3072 bit.
  • con o senza l'attributo use="signing"

[TOP]

IDP-MD10 - SingleSignOnService

<md:SingleSignOnService> DEVE:

  • esistere per il Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect' perchè necessario alle Authentication Request (AuthnRequest), con una Location la cui URL è protetta da SSL e comincia per https://
  • esistere per il Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST' perchè necessario alle Authentication Response (AuthnResponse), con una Location la cui URL è protetta da SSL e comincia per 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:

  • esistere per il Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect' perchè necessario alle Logout Request (LogoutRequest), con una Location la cui URL è protetta da SSL e comincia per 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:

  • essere valorizzato con 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:

  • essere valorizzato con 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:

  • essere valorizzato con 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

<md:ContactPerson> DEVE:

  • essere valorizzato con l'indirizzo email del contatto tecnico del servizio identificato dall'attributo contactType="technical".
    E' OBBLIGATORIA la presenza di almeno un contactType="technical" in cui sia specificato un indirizzo impersonale (mailing-list)


Esempio:

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

[TOP]


Federation (IDP-FED)

I requisiti di seguito elencati sono dettate dalla Federazione e destinate 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 e targhettizzato per i suoi utenti:
    • 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=

[TOP]

IDP-FED02 - Login Page

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

  • il riferimento alla pagina informativa indicata da <mdui:InformationURL> (IDP-MD06)
  • il riferimento 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]


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>
        ...idp-backchannel.crt...
     </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: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 - DisplayName

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

  • essere valorizzato con il nome del servizio da mostrare all'utente senza contenere il valore "IDEM" riservato 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-MD02 - 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">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:

  • essere valorizzato con la URL della pagina informativa del servizio in cui DEVE essere inserito:
    • la descrizione del servizio
    • il pubblico a cui si rivolge il servizio
    • la denominazione dell'organizzazione che lo condivide
    • un indirizzo email per il supporto degli utenti e dei gestori di Identity Provider
    • un riferimento alla Privacy Policy seguita dal servizio (SP-MD4)
  • 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:


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 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

Se viene fornito di dimensioni maggiori, DEVE rispettare l'aspect-ratio.


Esempio:

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

[TOP]

SP-MD06 - RequestedAttribute

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

  • contenere tutti e soli gli attributi SAML richiesti dal servizio
  • indicare gli attributi indispensabili all'accesso e all'utilizzo del servizio con il parametro isRequired="true"
  • indicare gli attributi non indispensabili all'accesso e all'utilizzo del servizio 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-MD07 - OrganizationName

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

  • essere valorizzato con 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-MD08 - OrganizationDisplayName

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

  • essere valorizzato con 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-MD09 - OrganizationURL

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

  • essere valorizzato con 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-MD10 - 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 - Login Page / Discovery Service

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

  • il logo di IDEM (Logo IDEM) [e il logo di eduGAIN (JPG | PNG) se vi ha aderito]
  • un elenco degli IdP in IDEM [e di quelli in eduGAIN se vi ha aderito]
  • un riferimento alla pagina informativa del servizio (SP-MD3)


REFEDS Best Practices: https://discovery.refeds.org/

[TOP]

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>
                  SP_SELF-SIGNED_SUGGESTED_CERTIFICATE_USED_TO_
                  SIGN_AND_ENCRYPT_THE_ASSERTIONS_EXCHANGED_WITH_A_IDP-CHANGE_IT
               </ds:X509Certificate>
            </ds:X509Data>
         </ds:KeyInfo>
      </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
         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: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
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
         Location="https://sp.example.com/Shibboleth.sso/SAML2/POST"
         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">
         <!-- 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>