Differenze tra le versioni di "Technical Profile"
Riga 51: | Riga 51: | ||
__TOC__ | __TOC__ | ||
− | =Technical Profile for the entities of the IDEM Federation = | + | =Technical Profile for the entities of the IDEM Federation= |
The Technical Profile defines all the requirements for an entity to be registered in the Italian Identity Federation IDEM GARR AAI. | The Technical Profile defines all the requirements for an entity to be registered in the Italian Identity Federation IDEM GARR AAI. | ||
===Definitions=== | ===Definitions=== | ||
Riga 102: | Riga 102: | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD05 - Description==== | ====IDP-MD05 - Description==== | ||
− | <code><mdui:Description></code>, | + | <code><mdui:Description></code>, defined in the element <code><mdui:UIInfo></code>, MUST: |
− | * | + | *contain a bried description of the service; |
− | * | + | *be available in both Italian and English languages. |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<mdui:Description xml:lang="en">Identity provider for Example University user</mdui:Description> | <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> | <mdui:Description xml:lang="it">Identity provider per gli utenti di Università di Esempio</mdui:Description> | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD06 - InformationURL==== | ====IDP-MD06 - InformationURL==== | ||
− | <code><mdui:InformationURL></code>, | + | <code><mdui:InformationURL></code>, defined in the element <code><mdui:UIInfo></code>, MUST: |
− | * | + | *conatain the URL of the Information page of the service. |
− | * | + | *be available in both Italian and English languages. |
− | + | For the actual content of the page refer to [[Profilo_Tecnico_Operativo#IDP-FED02 - Informazioni|IDP-FED02]]. | |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<mdui:InformationURL xml:lang="en">https://...info page in english...</mdui:InformationURL> | <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> | <mdui:InformationURL xml:lang="it">https://...pagina di informazioni in italiano...</mdui:InformationURL> | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD07 - PrivacyStatementURL==== | ====IDP-MD07 - PrivacyStatementURL==== | ||
− | <code><mdui:PrivacyStatementURL></code>, | + | <code><mdui:PrivacyStatementURL></code>, defined in the element <code><mdui:UIInfo></code>, MUST: |
− | * | + | *contain the URL of the Privacy Policy of the service. |
− | * | + | *be available in both Italian and English languages. |
− | + | For the actual content of the page refer to [[Profilo_Tecnico_Operativo#IDP-FED03 - Trattamento dati personali|IDP-FED03]]. | |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<mdui:PrivacyStatementURL xml:lang="en">https://...privacy policy in english...</mdui:PrivacyStatementURL> | <mdui:PrivacyStatementURL xml:lang="en">https://...privacy policy in english...</mdui:PrivacyStatementURL> | ||
<mdui:PrivacyStatementURL xml:lang="it">https://...privacy policy in italiano...</mdui:PrivacyStatementURL> | <mdui:PrivacyStatementURL xml:lang="it">https://...privacy policy in italiano...</mdui:PrivacyStatementURL> | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD08 - Logo==== | ====IDP-MD08 - Logo==== | ||
− | <code><mdui:Logo></code>, | + | <code><mdui:Logo></code>, defined in the element <code><mdui:UIInfo></code>, MUST: |
− | * | + | *contain at least a URL protected by SSL (<code>https://</code>) pointing to the logo of the organisation. |
− | + | It is RECOMMENDED that: | |
− | * | + | *the logo is in PNG format on transparent background. |
− | * | + | *to publish two logos: |
− | **'''16x16 pixel''' ( | + | **'''16x16 pixel''' (or bigger but respecing the same aspect-ratio) - [https://garr-idp-test.irccs.garr.it/it/favicon.png Example]. |
− | **'''80x60 pixel''' ( | + | **'''80x60 pixel''' (or bigger but respecing the same aspect-ratio) - [https://garr-idp-test.irccs.garr.it/it/logo.png Example]. |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<mdui:Logo width="16" height="16">https://...favicon_16x16.png...</mdui:Logo> | <mdui:Logo width="16" height="16">https://...favicon_16x16.png...</mdui:Logo> | ||
<mdui:Logo width="80" height="60">https://...logo_80x60.png...</mdui:Logo> | <mdui:Logo width="80" height="60">https://...logo_80x60.png...</mdui:Logo> | ||
Riga 153: | Riga 153: | ||
====IDP-MD09 - KeyDescriptor==== | ====IDP-MD09 - KeyDescriptor==== | ||
− | + | The metadata of the entity MUST define at least one <code><md:KeyDescriptor></code> element with the following requirements: | |
+ | |||
+ | * contain an X.509 certificate in PEM format. | ||
− | * | + | *with no further attributes or only the attribute <code>use="signing"</code>; |
− | |||
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<md:KeyDescriptor use="signing"> | <md:KeyDescriptor use="signing"> | ||
<ds:KeyInfo> | <ds:KeyInfo> | ||
Riga 171: | Riga 172: | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD10 - SingleSignOnService==== | ====IDP-MD10 - SingleSignOnService==== | ||
− | <code><md:SingleSignOnService></code> | + | <code><md:SingleSignOnService></code> MUST: |
− | * | + | *be defined with the attribute <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'</nowiki></code> (for<code>AuthnRequest</code>. |
− | * | + | *be defined with the attribute <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'</nowiki></code> (for <code>AuthnResponse</code>). |
− | * | + | *always contain a <code>Location</code> attribute valued with a URL protected by SSL (<code>https://</code>). |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<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-POST" Location="https://..."/> | ||
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://..."/> | <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://..."/> | ||
Riga 183: | Riga 184: | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD11 - SingleLogoutService==== | ====IDP-MD11 - SingleLogoutService==== | ||
− | <code><md:SingleLogoutService></code> | + | <code><md:SingleLogoutService></code> MUST: |
− | * | + | *be defined with the attribute <code>Binding='<nowiki>urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'</nowiki></code> (for <code>LogoutRequest</code>) |
− | * | + | *always contain a <code>Location</code> attribute valued with a URL protected by SSL (<code>https://</code>). |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://..."/> | <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://..."/> | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD12 - OrganizationName==== | ====IDP-MD12 - OrganizationName==== | ||
− | <code><md:OrganizationName></code> , | + | <code><md:OrganizationName></code> , defined in the element <code><md:Organization></code>, MUST: |
− | * | + | *contain the name of the organisation to which the service belongs. |
− | * | + | *be available in both Italian and English languages. |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<md:OrganizationName xml:lang="en">Example University</md:OrganizationName> | <md:OrganizationName xml:lang="en">Example University</md:OrganizationName> | ||
<md:OrganizationName xml:lang="it">Università di Esempio</md:OrganizationName> | <md:OrganizationName xml:lang="it">Università di Esempio</md:OrganizationName> | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD13 - OrganizationDisplayName==== | ====IDP-MD13 - OrganizationDisplayName==== | ||
− | <code><md:OrganizationDisplayName></code> , | + | <code><md:OrganizationDisplayName></code> , defined in the element <code><md:Organization></code>, MUST: |
− | * | + | *contain the name of the organisation that will be shown in the user inteface. |
− | * | + | *be available in both Italian and English languages. |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<md:OrganizationDisplayName xml:lang="en">Example University</md:OrganizationDisplayName> | <md:OrganizationDisplayName xml:lang="en">Example University</md:OrganizationDisplayName> | ||
<md:OrganizationDisplayName xml:lang="it">Università di Esempio</md:OrganizationDisplayName> | <md:OrganizationDisplayName xml:lang="it">Università di Esempio</md:OrganizationDisplayName> | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD14 - OrganizationURL==== | ====IDP-MD14 - OrganizationURL==== | ||
− | <code><md:OrganizationURL></code>, | + | <code><md:OrganizationURL></code>, defined in the element <code><md:Organization></code>, MUST: |
− | * | + | *contain the URL of the main site of organisation to which the service belongs. |
− | * | + | *be available in both Italian and English languages. |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<md:OrganizationURL xml:lang="en">https://...institutional site in english...</md:OrganizationURL> | <md:OrganizationURL xml:lang="en">https://...institutional site in english...</md:OrganizationURL> | ||
<md:OrganizationURL xml:lang="it">https://...sito istituzionale in italiano...</md:OrganizationURL> | <md:OrganizationURL xml:lang="it">https://...sito istituzionale in italiano...</md:OrganizationURL> | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] | ||
====IDP-MD15 - ContactPerson==== | ====IDP-MD15 - ContactPerson==== | ||
− | + | The metadata of the entity MUST define at least one <code><md:ContactPerson></code> element with the following requirements: | |
− | * | + | *containt the e-mail address of the technical contact of the service. |
− | * | + | *contain the attribute <code>contactType="technical"</code>; |
− | + | It is RECOMMENDED to use an impersonal e-mail address (for example a mailing-list). | |
− | '' | + | ''Example:''<syntaxhighlight lang="xml"> |
<ContactPerson contactType="technical">mailto:mailing-list@domain</md:ContactPerson> | <ContactPerson contactType="technical">mailto:mailing-list@domain</md:ContactPerson> | ||
</syntaxhighlight>[[#top|[TOP]]] | </syntaxhighlight>[[#top|[TOP]]] |
Versione delle 10:13, 13 ott 2021
Versione 1.0.3
31 Agosto 2021
Revisioni
Versione | Data | Descrizione | Autore |
---|---|---|---|
1.0 | 01-06-2021 | Prima versione completa | Marco Malavolti
Barbara Monticini Davide Vaghetti |
1.0.1 | 07-06-2021 | Modifica IDP-MD08 e SP-MD07 | Marco Malavolti
Barbara Monticini Davide Vaghetti |
1.0.2 | 10-06-2021 | SEC02 trasformato in raccomandazione dato che SEC01 copre già i casi di chain-issue piu' gravi | Marco Malavolti
Barbara Monticini Davide Vaghetti |
1.0.3 | 31-08-2021 | IDP-MD04 - DisplayName e SP-MD03 - DisplayName: inserito il divieto di utilizzo delle parole "IDEM" ed "eduGAIN" perchè riservate | Marco Malavolti
Barbara Monticini Davide Vaghetti Mario Di Lorenzo |
Indice
- 1 Revisioni
- 2 Technical Profile for the entities of the IDEM Federation
- 2.1 Definitions
- 2.2 Security (SEC) - Identity Provider & Service Provider
- 2.3 Identity Provider
- 2.3.1 Metadata (IDP-MD)
- 2.3.1.1 IDP-MD01 - validUntil
- 2.3.1.2 IDP-MD02 - entityID
- 2.3.1.3 IDP-MD03 - Scope
- 2.3.1.4 IDP-MD04 - DisplayName
- 2.3.1.5 IDP-MD05 - Description
- 2.3.1.6 IDP-MD06 - InformationURL
- 2.3.1.7 IDP-MD07 - PrivacyStatementURL
- 2.3.1.8 IDP-MD08 - Logo
- 2.3.1.9 IDP-MD09 - KeyDescriptor
- 2.3.1.10 IDP-MD10 - SingleSignOnService
- 2.3.1.11 IDP-MD11 - SingleLogoutService
- 2.3.1.12 IDP-MD12 - OrganizationName
- 2.3.1.13 IDP-MD13 - OrganizationDisplayName
- 2.3.1.14 IDP-MD14 - OrganizationURL
- 2.3.1.15 IDP-MD15 - ContactPerson
- 2.3.2 Federation (IDP-FED)
- 2.3.3 Esempio IdP Metadata
- 2.3.1 Metadata (IDP-MD)
- 2.4 Service Provider
- 2.4.1 Metadata (SP-MD)
- 2.4.1.1 SP-MD01 - validUntil
- 2.4.1.2 SP-MD02 - entityID
- 2.4.1.3 SP-MD03 - DisplayName
- 2.4.1.4 SP-MD04 - Description
- 2.4.1.5 SP-MD05 - InformationURL
- 2.4.1.6 SP-MD06 - PrivacyStatementURL
- 2.4.1.7 SP-MD07 - Logo
- 2.4.1.8 SP-MD08 - KeyDescriptor
- 2.4.1.9 SP-MD09 - RequestedAttribute
- 2.4.1.10 SP-MD10 - OrganizationName
- 2.4.1.11 SP-MD11 - OrganizationDisplayName
- 2.4.1.12 SP-MD12 - OrganizationURL
- 2.4.1.13 SP-MD13 - ContactPerson
- 2.4.2 Federation (SP-FED)
- 2.4.3 Esempio Metadata Service Provider
- 2.4.4 Riferimenti
- 2.4.1 Metadata (SP-MD)
Technical Profile for the entities of the IDEM Federation
The Technical Profile defines all the requirements for an entity to be registered in the Italian Identity Federation IDEM GARR AAI.
Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as described in [RFC2119].
Security (SEC) - Identity Provider & Service Provider
The following requirements are related to the SSL certificate used for the HTTPS interface of the service. They are not to be applied to the certificates used by Identity Providers and Service Providers to sign and encrypt the assertions.
SEC01 - SSL robustness level
The SSL certificate used on the HTTPS port of the service MUST report at least a B grade on SSL Labs: https://www.ssllabs.com/ssltest/
SEC02 - Chain issue
The SSL certificate used on the HTTPS port of the service SHOULD be free of "Chain issues" --- check with SSL Labs: https://www.ssllabs.com/ssltest/
Identity Provider
Metadata (IDP-MD)
The following requirements are related to the metadata of an Identity Provider (IDP),
IDP-MD01 - validUntil
validUntil
, attribute defined in the element <md:EntityDescriptor>
, MUST be removed along with it's value as it will be replaced by the IDEM Federation.
IDP-MD02 - entityID
entityID
, attribute defined in the element <md:EntityDescriptor>
, MUST be a URI with a maximum lenght of 256 charaters.
If the enttyID URI is a URL it SHOULD return the entity metadata.
Example:
entityID="https://idp.example.org/idp/shibboleth"
IDP-MD03 - Scope
<shibmd:Scope>
, defined in the element <md:Extension>
, MUST contain domain value controlled by the Organisation (verifications will be performed with WHOIS).
Example:
<shibmd:Scope>example.org</shibmd:Scope>
IDP-MD04 - DisplayName
<mdui:DisplayName>
, defined in the element <mdui:UIInfo>
, MUST:
- contain the name of the service that will be displayed to the users. WARNING: the name MUST not contain either the words "IDEM" or "eduGAIN".
- be available in both Italian and English languages.
Example:
<mdui:DisplayName xml:lang="en">Example University</mdui:DisplayName>
<mdui:DisplayName xml:lang="it">Università di Esempio</mdui:DisplayName>
IDP-MD05 - Description
<mdui:Description>
, defined in the element <mdui:UIInfo>
, MUST:
- contain a bried description of the service;
- be available in both Italian and English languages.
Example:
<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>
, defined in the element <mdui:UIInfo>
, MUST:
- conatain the URL of the Information page of the service.
- be available in both Italian and English languages.
For the actual content of the page refer to IDP-FED02.
Example:
<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>
, defined in the element <mdui:UIInfo>
, MUST:
- contain the URL of the Privacy Policy of the service.
- be available in both Italian and English languages.
For the actual content of the page refer to IDP-FED03.
Example:
<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>
, defined in the element <mdui:UIInfo>
, MUST:
- contain at least a URL protected by SSL (
https://
) pointing to the logo of the organisation.
It is RECOMMENDED that:
- the logo is in PNG format on transparent background.
- to publish two logos:
Example:
<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
The metadata of the entity MUST define at least one <md:KeyDescriptor>
element with the following requirements:
- contain an X.509 certificate in PEM format.
- with no further attributes or only the attribute
use="signing"
;
Example:
<md:KeyDescriptor use="signing">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MII[..]
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
IDP-MD10 - SingleSignOnService
<md:SingleSignOnService>
MUST:
- be defined with the attribute
Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'
(forAuthnRequest
. - be defined with the attribute
Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'
(forAuthnResponse
). - always contain a
Location
attribute valued with a URL protected by SSL (https://
).
Example:
<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>
MUST:
- be defined with the attribute
Binding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'
(forLogoutRequest
) - always contain a
Location
attribute valued with a URL protected by SSL (https://
).
Example:
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://..."/>
IDP-MD12 - OrganizationName
<md:OrganizationName>
, defined in the element <md:Organization>
, MUST:
- contain the name of the organisation to which the service belongs.
- be available in both Italian and English languages.
Example:
<md:OrganizationName xml:lang="en">Example University</md:OrganizationName>
<md:OrganizationName xml:lang="it">Università di Esempio</md:OrganizationName>
IDP-MD13 - OrganizationDisplayName
<md:OrganizationDisplayName>
, defined in the element <md:Organization>
, MUST:
- contain the name of the organisation that will be shown in the user inteface.
- be available in both Italian and English languages.
Example:
<md:OrganizationDisplayName xml:lang="en">Example University</md:OrganizationDisplayName>
<md:OrganizationDisplayName xml:lang="it">Università di Esempio</md:OrganizationDisplayName>
IDP-MD14 - OrganizationURL
<md:OrganizationURL>
, defined in the element <md:Organization>
, MUST:
- contain the URL of the main site of organisation to which the service belongs.
- be available in both Italian and English languages.
Example:
<md:OrganizationURL xml:lang="en">https://...institutional site in english...</md:OrganizationURL>
<md:OrganizationURL xml:lang="it">https://...sito istituzionale in italiano...</md:OrganizationURL>
IDP-MD15 - ContactPerson
The metadata of the entity MUST define at least one <md:ContactPerson>
element with the following requirements:
- containt the e-mail address of the technical contact of the service.
- contain the attribute
contactType="technical"
;
It is RECOMMENDED to use an impersonal e-mail address (for example a mailing-list).
Example:
<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:
affiliation = 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.
Esempi:
- IT: https://garr-idp-test.irccs.garr.it/it/info.html
- EN: https://garr-idp-test.irccs.garr.it/en/info.html
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.
Esempi:
- IT: https://garr-idp-test.irccs.garr.it/it/privacy.html
- EN: https://garr-idp-test.irccs.garr.it/en/privacy.html
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);
- auto firmati (self-signed);
- validi (non scaduti);
- 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 o la parola "eduGAIN" perchè riservata a eduGAIN;
- 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-MD05 - 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-MD06 - 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>
, DEVE:
- contenere almeno una URL protetta da SSL (
https://
) del logo dell'organizzazione.
Si RACCOMANDA:
- di pubblicare in formato PNG (con sfondo trasparente)
- un logo 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-FED04 - 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-MD05)
Il Servizio suggerisce di consultare le linee guida REFEDS Best Practices per l'implementazione del login federato: https://discovery.refeds.org/
SP-FED05 - Certificati metadata
Il certificato o i certificati utilizzati per firmare e cifrare le asserzioni del SP DOVREBBERO essere:
- di lunga durata (30 anni);
- auto firmati (self-signed);
- validi (non scaduti);
- 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
[IDEM-META] IDEM METADATA PROFILE v1.0
https://wiki.idem.garr.it/w/images/8/81/IDEM_METADATA_PROFILE_V1.1-ita-eng.pdf
[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
[REFEDS-DISCO] REFEDS - Discovery Best Practice