Differenze tra le versioni di "RequisitiEntita"
Riga 76: | Riga 76: | ||
<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 |
− | |||
− | |||
− | |||
*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 92: | Riga 89: | ||
<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 | + | *essere valorizzato con la URL della pagina sul trattamento dei dati personali del servizio |
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u> | *essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u> | ||
Riga 218: | Riga 215: | ||
affiliation = member@aai-test.garr.it;staff@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= | persistent-id = https://garr-idp-test.irccs.garr.it/idp/shibboleth!https://sp.aai-test.garr.it/shibboleth!eYfN....Q1rU= | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | [[#top|[TOP]]] | ||
+ | |||
+ | ====IDP-FED02 - Info 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==== | |
− | ====IDP- | ||
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: | ||
Riga 347: | Riga 362: | ||
</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: | ||
− | *essere valorizzato con la URL della pagina informativa del servizio | + | *essere valorizzato con 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> | ||
Riga 364: | Riga 374: | ||
</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: | ||
− | *essere valorizzato con la URL della | + | *essere valorizzato con la URL della pagina sul trattamento dei dati personali del servizio |
*essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u> | *essere definito sia per la lingua <u>italiana</u>, sia per la lingua <u>inglese</u> | ||
Riga 482: | Riga 492: | ||
[[#top|[TOP]]] | [[#top|[TOP]]] | ||
− | ====SP-FED02 - Login Page / Discovery Service==== | + | |
+ | ====SP-FED02 - Info Page==== | ||
+ | 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-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: | ||
Versione delle 09:18, 12 mag 2021
In questa pagina sono indicati i requisiti richiesti dalla Federazione Italiana delle Identità Digitali IDEM GARR AAI.
Indice
- 1 Security (SEC) - Identity Provider & Service Provider
- 2 Identity Provider
- 2.1 Metadata (IDP-MD)
- 2.1.1 IDP-MD01 - validUntil
- 2.1.2 IDP-MD02 - entityID
- 2.1.3 IDP-MD03 - Scope
- 2.1.4 IDP-MD04 - DisplayName
- 2.1.5 IDP-MD05 - Description
- 2.1.6 IDP-MD06 - InformationURL
- 2.1.7 IDP-MD07 - PrivacyStatementURL
- 2.1.8 IDP-MD08 - Logo
- 2.1.9 IDP-MD09 - KeyDescriptor
- 2.1.10 IDP-MD10 - SingleSignOnService
- 2.1.11 IDP-MD11 - SingleLogoutService
- 2.1.12 IDP-MD12 - OrganizationName
- 2.1.13 IDP-MD13 - OrganizationDisplayName
- 2.1.14 IDP-MD14 - OrganizationURL
- 2.1.15 IDP-MD15 - ContactPerson
- 2.2 Federation (IDP-FED)
- 2.3 Esempio IdP Metadata
- 2.1 Metadata (IDP-MD)
- 3 Service Provider
- 3.1 Metadata (SP-MD)
- 3.1.1 SP-MD01 - validUntil
- 3.1.2 SP-MD02 - entityID
- 3.1.3 SP-MD03 - DisplayName
- 3.1.4 SP-MD04 - Description
- 3.1.5 SP-MD03 - InformationURL
- 3.1.6 SP-MD04 - PrivacyStatementURL
- 3.1.7 SP-MD07 - Logo
- 3.1.8 SP-MD08 - RequestedAttribute
- 3.1.9 SP-MD09 - OrganizationName
- 3.1.10 SP-MD10 - OrganizationDisplayName
- 3.1.11 SP-MD11 - OrganizationURL
- 3.1.12 SP-MD12 - ContactPerson
- 3.2 Federation (SP-FED)
- 3.3 Esempio Metadata Service Provider
- 3.1 Metadata (SP-MD)
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) 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.
IDP-MD02 - entityID
entityID
, attributo contenuto nell'elemento <md:EntityDescriptor>
, DEVE essere una URI assoluta di lunghezza massima 256 caratteri.
Si RACCOMANDA di scegliere un valore che abbia la più bassa probabilità di modifica possibile.
Esempio:
entityID="https://idp.example.org/idp/shibboleth"
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:
- 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>
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>
IDP-MD06 - InformationURL
<mdui:InformationURL>
, contenuto nell'elemento <mdui:UIInfo>
, DEVE:
- essere valorizzato con la URL della pagina informativa del servizio
- essere definito sia per la lingua italiana, sia per la lingua inglese
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:
- essere valorizzato con la URL della pagina sul trattamento dei dati personali del servizio
- essere definito sia per la lingua italiana, sia per la lingua inglese
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:
- 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>
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"
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 unaLocation
la cui URL è protetta da SSL e comincia perhttps://
- esistere per il
Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'
perchè necessario alle Authentication Response (AuthnResponse
), con unaLocation
la cui URL è protetta da SSL e comincia perhttps://
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:
- esistere per il
Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'
perchè necessario alle Logout Request (LogoutRequest
), con unaLocation
la cui URL è protetta da SSL e comincia perhttps://
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:
- 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>
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>
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>
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 uncontactType="technical"
in cui sia specificato un indirizzo impersonale (mailing-list)
Esempio:
<ContactPerson contactType="technical">mailto:mailing-list@domain</md:ContactPerson>
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:
- Un identificativo univoco persistente e targhettizzato per i suoi utenti:
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=
IDP-FED02 - Info Page
La pagina informativa esposta in lingua italiana e in lingua inglese 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)
IDP-FED03 - Privacy Page
La pagina sul trattamento dei dati personali (Privacy Policy) seguita dall'istituzione ed esposta in lingua italiana e in lingua inglese DEVE opportunamente contenere le adeguate informazioni per gli utenti.
A titolo esemplificativo, IDEM fornisce la pagina: InformativaDatiPersonaliIdP.
IDP-FED04 - 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
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 - validUntil
validUntil
, attributo contenuto nell'elemento <md:EntityDescriptor>
, DEVE essere rimosso assieme al suo valore in quanto è la Federazione a compilarlo.
SP-MD02 - entityID
entityID
, attributo contenuto nell'elemento <md:EntityDescriptor>
, DEVE essere una URI assoluta di lunghezza massima 256 caratteri.
Si RACCOMANDA di scegliere un valore che abbia la più bassa probabilità di modifica possibile.
Esempio:
entityID="https://sp.example.org/shibboleth"
SP-MD03 - 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>
SP-MD04 - 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>
SP-MD03 - InformationURL
<mdui:InformationURL>
, contenuto nell'elemento <mdui:UIInfo>
, DEVE:
- essere valorizzato con la URL della pagina informativa del servizio
- essere definito sia per la lingua italiana, sia per la lingua inglese
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:
- essere valorizzato con la URL della pagina sul trattamento dei dati personali del servizio
- essere definito sia per la lingua italiana, sia per la lingua inglese
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>
, 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>
SP-MD08 - 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"/>
SP-MD09 - 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>
SP-MD10 - 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>
SP-MD11 - 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>
SP-MD12 - 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>
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 a idem-help@garr.it
.
SP-FED02 - Info Page
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 condivide
- indirizzo email per il supporto degli utenti e dei gestori di Identity Provider
- un riferimento alla Privacy Policy seguita dal servizio
SP-FED03 - Privacy Page
La pagina della privacy esposta in lingua italiana e in lingua inglese 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
SP-FED03 - 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/
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>