„HREF metadata specifikáció” változatai közötti eltérés

Innen: KIFÜ Wiki
a (Metaadat kiterjesztések használata)
(Aláírási folyamat: rr migrálás rr.eduid.hu-ra)
(35 közbenső módosítás, amit 3 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
= Metaadat specifikáció =
+
A föderációs metaadat célja, hogy a föderációban részt vevő intézmények illetve entitások technikai, bizalmi és adminisztratív adatait egy helyre gyűjtse. A metaadatok formátuma megfelel a SAML2 metaadat szabványnak.
  
{{ATTENTION|A specifikáció kidolgozása folyamatban van, lényeges változások is belekerülhetnek figyelmeztetés nélkül. Amíg ez a figyelmeztetés itt szerepel, addig munkaverziónak tekintendő! }}
+
= Biztonsági megfontolások =
 +
Mivel a metadata tartalmazza a föderációban részt vevő tagok és komponensek technikai információit, ezért a benne tárolt információkkal kapcsolatban figyelembe kell venni a következő biztonsági megfontolásokat:
  
A föderációs metaadat specifikáció célja, hogy a föderációban részt vevő intézmények illetve entitások technikai, bizalmi és adminisztratív adatait egy helyre gyűjtse. A metaadatok formátuma megfelel a SAML2 metaadat szabványnak.
+
* Téves vagy kompromittálódott adatok eltávolítása esetén a sérülékenységi ablak megegyezik a metadata gyorstárazhatósági (<code>cacheDuration</code>) idejével, '''amennyiben a támadó nem képes blokkolni a központi metaadatok elérhetőségét (DOS)'''
 +
* Amennyiben a támadó képes blokkolni a központi metaadatok elérhetőségét, a sérülékenységi ablak a legutolsó letöltött metadata állomány érvényességéig (<code>validUntil</code> paraméterében meghatározott ideig) tart.
 +
* Amennyiben a metaadatok érvényességi ideje lejár, az entitás nem képes azonosítani a többi föderációs résztvevőt, ezért nem tud föderációs szolgáltatást (pl. IdP esetén azonosítási szolgáltatást) nyújtani.
  
== Metaadatban tárolt információk ==
+
= Metaadatban tárolt információk =
* Az entitások csoportosítása az őket üzemeltető szervezetek szerint történik. A föderációs metaadat tartalmaz egy 'partners' csoportot is, amiben a föderáció olyan SP-i szerepelnek, melyek nem köthetők konkrét intézményhez (ilyen lehet például egy üzleti céllal üzemeltetett SP).
 
 
* Bizalom a metaadatban
 
* Bizalom a metaadatban
** a metaadat integritásvédelmét és hitelességét egy digitális aláírás biztosítja, aminek az aláíró tanúsítványa jelenleg a https://idp.niif.hu/href_signer.crt címen érhető el.
+
** a metaadat integritásvédelmét és hitelességét egy digitális aláírás biztosítja.
 
** a metaadat visszavonhatóságát a lejárati idő (<code>validUntil</code>) biztosítja, ami jelenleg 3 nap.
 
** a metaadat visszavonhatóságát a lejárati idő (<code>validUntil</code>) biztosítja, ami jelenleg 3 nap.
** az egyes rendszerek gyorstárazhatják a metaadatot, de maximum a benne megjelölt ideig (<code>cacheDuration</code>).
+
** az egyes rendszerek gyorstárazhatják a metaadatot, de legalább naponta egyszer kötelesek a hiteles állományt frissíteni.
 +
** az aláírási procedúrát a [[#Metaadat_aláírásának_módja]] fejezet írja le.
 
* Tanúsítványok
 
* Tanúsítványok
** az entitások által használt tanúsítvánnyal kapcsolatban a föderációs metaadat-specifikáció a lejárati időn kívül nem tesz különleges megkötést, sőt: ajánlott az ún. self-signed tanúsítvány használata
+
** kötelező legalább 1024 bites kulcspárt használni
 +
** az entitások által használt tanúsítvánnyal kapcsolatban a föderáció nem tesz különleges megkötést, sőt: ajánlott hosszú lejáratú self-signed tanúsítványok használata
 
* További információk
 
* További információk
 
** minden szöveges mezőt legalább két nyelven: magyarul és angolul ki kell tölteni
 
** minden szöveges mezőt legalább két nyelven: magyarul és angolul ki kell tölteni
 
** kötelezően kitöltendőek az intézményi, adminisztratív információk (<code>Organization</code> illetve <code>ContactPerson</code> elemek)
 
** kötelezően kitöltendőek az intézményi, adminisztratív információk (<code>Organization</code> illetve <code>ContactPerson</code> elemek)
 +
** ajánlott megadni egy helpdesk URL-r, ahova hiba esetén a felhasználók fordulhatnak (<code>errorURL</code> attribútum)
 
** SP-k esetén további kötelező elemek
 
** SP-k esetén további kötelező elemek
*** <code>AttributeConsumingService</code>, ami megadja a kért attribútumokat (<code>RequestedAttributes</code> - itt az attribútum informális neve is szerepeljen) illetve a szolgáltatás nevét
+
*** <code>AttributeConsumingService</code>, ami megadja a kért attribútumokat
*** a szolgáltatás elérhetősége (egy URL, amin a szolgáltatás bemutatkozik)
+
**** <code>RequestedAttributes</code> - itt az attribútum informális neve is szerepeljen
*** adatkezelési szabályzatra mutató URL
+
**** <code>ServiceName</code>, <code>ServiceDescription</code> az SP szolgáltatás neve és leírása
 +
*** a szolgáltatás elérhetősége, amin a szolgáltatás bemutatkozik (extension)
 +
*** adatkezelési szabályzatra mutató URL (extension)
 
** IdP-k esetén
 
** IdP-k esetén
*** a scope csak az adott intézmény kezelésében levő domain név lehet
+
*** a scope csak az adott intézmény kezelésében levő domain név lehet (Shibboleth extension)
*** helpdesk URL, ahova hiba esetén a felhasználók fordulhatnak
+
** lehetőség van további adatok megadására is
** egyéb
+
*** logó
*** lehetőség van logó illetve gps koordináták tárolására is
+
*** gps koordináták, IP cím tartomány
 +
*** különböző tagek, például a szolgáltatás publikus-e, vagy épp bevezetés alatt áll-e
  
 
== Metaadat kiterjesztések használata ==
 
== Metaadat kiterjesztések használata ==
A metaadatban tárolt egyéb információkat a http://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-attr-cd-01.html specifikáció ('entity attributes') alapján tároljuk. Ez a kiegészítő séma lehetőséget ad SAML attribútumok használatára.
+
Ezen kiegészítő adatok tárolására az internet2 szabványtervezetet készít, ennek a sémának a jelenlegi verziója megtalálható [http://wiki.oasis-open.org/security/SAML2MetadataUI itt].
 +
 
 +
A kiegészítő séma névtere: <code>urn:oasis:names:tc:SAML:2.0:metadata:ui</code>. Az alábbi táblázatban ezen névtérben definiált legfontosabb elemeket foglaljuk össze:
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! informális név
+
! element név
! urn
 
 
! szemantika
 
! szemantika
 
! értékekre vonatkozó megkötések
 
! értékekre vonatkozó megkötések
 
|-
 
|-
| tagek
+
| GeolocationHint
| :tags
 
|
 
| néhány példa: edugain, public, for-profit, ...
 
|-
 
| geográfiai koordináták
 
| :geographical-coordinates
 
 
| szélesség és hosszúság érték, a + előjel az északi szélességet illetve keleti hosszúságot jelöli
 
| szélesség és hosszúság érték, a + előjel az északi szélességet illetve keleti hosszúságot jelöli
 
| 47.47359,19.052891
 
| 47.47359,19.052891
 
|-
 
|-
| nyitóoldal url
+
| InformationURL
| :frontpage
+
| az entitásról további információkat (pl. helpdesk) szolgáltató oldal.
| az SP szolgáltatásának nyitóoldala (URL)
 
 
|  
 
|  
 
|-
 
|-
| adatvédelmi nyilatkozat
+
| PrivacyStatementURL
| :privacy-policy
 
 
| Az SP adatvédelmi nyilatkozátnak elérhetősége (URL)
 
| Az SP adatvédelmi nyilatkozátnak elérhetősége (URL)
 
| Engedélyezett formátumok: HTML, PDF
 
| Engedélyezett formátumok: HTML, PDF
 
|-
 
|-
| logó
+
| Logo
| :logo
+
| Az IdP/SP logójának elérhetősége
| Az IdP/SP logójának elérhetősége (URL)
+
| Formátummal kapcsolatban lásd [[#Logo]]
| Engedélyezett formátumok: GIF, JPEG, PNG. Minimális méret: 20x20 pixel. Maximális méret: 200x200 pixel.
 
 
|-
 
|-
| ip cím tartomány
+
| IPHint
| :network-addresses
 
 
| (Csak az IdP-knél) az intézmény hálózati tartománya(i). IdP felderítés esetén előválasztás lehetséges ennek alapján.
 
| (Csak az IdP-knél) az intézmény hálózati tartománya(i). IdP felderítés esetén előválasztás lehetséges ennek alapján.
 
| CIDR, több érték is megadható
 
| CIDR, több érték is megadható
 +
|-
 +
| DomainHint
 +
| (Csak az IdP-knél) az intézmény által felügyelt domain név. IdP felderítés esetén előválasztás lehetséges ennek alapján.
 +
| Több érték is megadható
 
|}
 
|}
 +
 +
 +
=== Logo ===
 +
* formátum: URL egy transzparens hátterű PNG, vagy transzparens hátterű GIF képre
 +
* méretezés
 +
** javasolt oldalarány 1:1 vagy 16:9
 +
** maximális méret 200x200px
 +
** ajánlott egy 16x16px-es verziót is megadni
 +
* attribútumok
 +
** <code>xml:lang</code>: lokalizációs információ
 +
** <code>href</code>: opcionális link
 +
** <code>height</code>: opcionális magasság érték pixelben
 +
** <code>width</code>: opcionális szélesség érték pixelben
  
 
== Egy IdP példa ==
 
== Egy IdP példa ==
  <EntityDescriptor entityID="https://idp.niif.hu/shibboleth">
+
<source lang="xml">
 +
  <EntityDescriptor entityID="https://idp.niif.hu/shibboleth"
 +
  xmlns:mdui="urn:oasis:names:tc:SAML:2.0:metadata:ui">
 
   <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0">
 
   <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0">
 
   <Extensions>
 
   <Extensions>
 
     <shibmd:Scope>niif.hu</shibmd:Scope>
 
     <shibmd:Scope>niif.hu</shibmd:Scope>
     <mdattr:EntityAttributes
+
     <mdui:DiscoHints xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attributes"
+
       <mdui:GeolocationHint>47.518356,19.055437</mdui:GeolocationHint>
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
+
      <mdui:DomainHint>niif.hu</mdui:DomainHint>
    <saml:Attribute Name="urn:geant:niif.hu:eduid.hu:entity-attributes:tags">
+
       <mdui:DomainHint>iif.hu</mdui:DomainHint>
       <saml:AttributeValue>edugain</saml:AttributeValue>
+
     </mdui:DiscoHints>
    </saml:Attribute>
 
    <saml:Attribute Name="urn:geant:niif.hu:eduid.hu:entity-attributes:geographical-coordinates">
 
       <saml:AttributeValue>47.518356,19.055437</saml:AttributeValue>
 
    </saml:Attribute>
 
     </mdattr:EntityAttributes>
 
 
   </Extensions>
 
   </Extensions>
 
   <KeyDescriptor use="signing">
 
   <KeyDescriptor use="signing">
92. sor: 105. sor:
 
   <!-- endpoints, nameidformats -->
 
   <!-- endpoints, nameidformats -->
 
   </IDPSSODescriptor>
 
   </IDPSSODescriptor>
  <AttributeAuthorityDescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
 
  <Extensions>
 
    <shibmd:Scope>niif.hu</shibmd:Scope>
 
  </Extensions>
 
  <KeyDescriptor use="signing">
 
    <ds:KeyInfo>
 
    <ds:X509Data>
 
      <ds:X509Certificate>...</ds:X509Certificate>
 
    </ds:X509Data>
 
    </ds:KeyInfo>
 
  </KeyDescriptor>
 
  <!-- endpoints, nameidformats -->
 
  </AttributeAuthorityDescriptor>
 
  <Organization>
 
  <OrganizationName xml:lang="hu">NIIF Intézet</OrganizationName>
 
  <OrganizationName xml:lang="en">NIIF Institute</OrganizationName>
 
  <OrganizationDisplayName xml:lang="hu">NIIF Intézet</OrganizationDisplayName>
 
  <OrganizationDisplayName xml:lang="en">NIIF Institute</OrganizationDisplayName>
 
  <OrganizationURL xml:lang="hu">http://www.niif.hu</OrganizationURL>
 
  <OrganizationURL xml:lang="en">http://www.niif.hu</OrganizationURL>
 
  </Organization>
 
 
   <ContactPerson contactType="technical">
 
   <ContactPerson contactType="technical">
 
   <SurName>NIIF AAI</SurName>
 
   <SurName>NIIF AAI</SurName>
126. sor: 118. sor:
 
   </ContactPerson>
 
   </ContactPerson>
 
  </EntityDescriptor>
 
  </EntityDescriptor>
 +
</source>
  
 
== Egy SP példa ==
 
== Egy SP példa ==
  <EntityDescriptor entityID="https://rr.aai.niif.hu/shibboleth">
+
<source lang="xml">
 +
  <EntityDescriptor entityID="https://rr.aai.niif.hu/shibboleth"
 +
  xmlns:mdui="urn:oasis:names:tc:SAML:2.0:metadata:ui">
 
  <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol">
 
  <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol">
 
   <Extensions>
 
   <Extensions>
  <mdattr:EntityAttributes
+
    <mdui:UIInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+
      <mdui:PrivacyStatementURL>https://rr.aai.niif.hu/privacy-policy</mdui:PrivacyStatementURL>
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
+
      <mdui:InformationURL>https://rr.aai.niif.hu/about</mdui:InformationURL>
    <saml:Attribute Name="urn:geant:niif.hu:eduid.hu:entity-attributes:tags">
+
     </mdui:UIInfo>
    <saml:AttributeValue>administrative-use-only</saml:AttributeValue>
 
    </saml:Attribute>
 
    <saml:Attribute Name="urn:geant:niif.hu:eduid.hu:entity-attributes:geographical-coordinates">
 
    <saml:AttributeValue>47.47359,19.052891</saml:AttributeValue>
 
    </saml:Attribute>
 
    <saml:Attribute Name="urn:geant:niif.hu:eduid.hu:entity-attributes:privacy-policy">
 
    <saml:AttributeValue>https://rr.aai.niif.hu/privacy-policy</saml:AttributeValue>
 
    </saml:Attribute>
 
    <saml:Attribute Name="urn:geant:niif.hu:eduid.hu:entity-attributes:frontpage">
 
    <saml:AttributeValue>https://rr.aai.niif.hu</saml:AttributeValue>
 
     </saml:Attribute>
 
  </mdattr:EntityAttributes>
 
 
   </Extensions>
 
   </Extensions>
 
   <KeyDescriptor use="signing">
 
   <KeyDescriptor use="signing">
197. sor: 180. sor:
 
  </ContactPerson>
 
  </ContactPerson>
 
  </EntityDescriptor>
 
  </EntityDescriptor>
 +
</source>
 +
 +
= Metaadat aláírásának módja =
 +
== Aláíró kulcs és tanúsítványok ==
 +
* Az aláíró kulcsot smart cardon, pin kóddal védve tároljuk.
 +
* Az aláírás on-line történik, a kártya pin kódját az aláíró szoftver indításakor az AAI adminisztrátor adja meg, a jelszó nem kerül tárolásra az aláírást végző rendszeren (sem másutt).
 +
 +
== Aláírási folyamat ==
 +
* Aláíratlan metaadat frissítése
 +
** az aláíratlan metaadat a https://rr.eduid.hu oldalról ütemezetten (5 perc) letöltésre kerül. A letöltés során az rr.eduid.hu tanúsítványa explicit módon ellenőrzésre kerül.
 +
** a letöltött metaadat formai ellenőrzése
 +
** az ellenőrzött entitások egy verziókövető rendszerbe kerülnek, az esetleges változásról e-mail értesítés készül ([https://listserv.niif.hu/mailman/listinfo/href-metadata-changes href-metadata-changes] nevű levelezőlistára)
 +
* Az aláíró szoftver rendszeresen (1-2 percenként) ellenőrzi a metaadatot a verziókövető rendszerben, és változás esetén új aláírt metaadatokat készít
 +
** amennyiben nincs változás, fix időközönként (naponta legalább egyszer) új aláírt állományok készülnek
 +
 +
== Aláírás ellenőrzése explicit tanúsítvánnyal ==
 +
A föderáció entitásai a föderációs metaadat hitelességéről a digitális aláírás ellenőrzésével győződhetnek meg.
 +
* Az explicit ellenőrzés esetén a <code>http://metadata.eduid.hu/current/</code> URL-ről kell letölteni a metadata fájlokat.
 +
* A tanúsítvány a https://metadata.eduid.hu oldalról érhető el.
 +
** DN-je <code>EMAILADDRESS=aai@niif.hu, CN=Metadata Signer, OU=eduID Federation Operator, O=NIIF Institute, C=HU</code>
 +
** SHA-1 <code>FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66</code>
 +
* Ajánlott a tanúsítvány lejárati idejét figyelmen kívül hagyni.
 +
* A tanúsítványcsere koordinálása out-of-band módszerrel történik (a <code>href-tech</code> levelezőlista segítségével).
 +
 +
== Aláíró kulcs cseréje ==
 +
* A föderációs entitások számára ajánlott a tanúsítvány lejárati idejének figyelmen kívül hagyása.
 +
* A kulccsere koordinálása a <code>href-tech</code> levelezőlistán keresztül történik.
 +
* Kulcs visszavonásakor (kompromittálódás gyanúja esetén) a régi aláíró kulcs azonnal eltávolításra kerül, kontrollált kulcscsere esetén az aláírás párhuzamosan történik a régi és az új kulccsal.
 +
 +
= Metaadat elérése =
 +
A HREF föderációban többféle metaadat-forrás áll rendelkezésre, melyeket a http://metadata.eduid.hu -ról lehet elérni. Fontos megemlíteni, hogy a metadata letöltésénél nem indokolt az SSL használata, ezért - amennyiben lehetséges -, érdemes a metadata URL-eket nem titkosított HTTP protokoll segítségével letölteni.
 +
 +
A metadata elérés URL-je a következő: http://metadata.eduid.hu/${alairo_kulcs_kibocsatas_eve}/${metadata_forras}.xml. A metadata források jelenleg a következők lehetnek:
 +
* <code>href.xml</code>: az éles föderációban részt vevő, és a föderáció kritériumait teljesítő entitások
 +
* <code>href-test.xml</code>: a HREF föderáció tesztrendszerei. Bármely, föderációban részt vevő intézmény tehet be teszt-entitást ebbe a halmazba, ezért ezen metaadat-forrás csak tesztelési célra használható.
 +
* <code>href-edugain.xml</code>: a HREF föderációból az [http://edugain.org eduGAIN] konföderációba kiajánlott entitások. Ide csak olyan entitások kerülhetnek be, melyek megfelelnek a föderációs kritériumoknak, és képesek az [http://edugain.org eduGAIN] konföderációval való együttműködésre. Ezen entitások be kell hogy olvassák az eduGAIN metaadatot is.
 +
* <code>edugain.xml</code>: az [http://edugain.org eduGAIN] konföderáció metaadata, a HREF aláíró kulccsal aláírva.
 +
* intézmény-specifikus metaadat fájlok, melyeket a föderáció kérésre biztosítja, tetszőleges entitások halmazba gyűjtésével.
 +
 +
== MDX-alapú elérés ==
 +
Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a <code>cacheDuration</code>-ben megadott ideig).
 +
 +
A HREF föderációban teszt jelleggel működik és elérhető MDX-kiszolgáló: <code>http://mdx.eduid.hu</code>. A megfelelő beállításokhoz [[MDX|itt]] érhető el segédlet.
 +
 +
Az MDX kiszolgáló eltérő (nem fizikai) kulcsot és tanúsítványt használ. Ennek SHA-1 lenyomata:  <code>91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43</code>. Jelenleg (2015. október) az MDX elérés még csak teszt jelleggel működik, az élesüzemre váltáskor a kulcs és a tanúsítvány változni fog. A jelenlegi tanúsítvány innen tölthető le: <code>http://metadata.eduid.hu/current/mdx-test-signer-2015.crt</code>

A lap 2017. június 8., 11:16-kori változata

A föderációs metaadat célja, hogy a föderációban részt vevő intézmények illetve entitások technikai, bizalmi és adminisztratív adatait egy helyre gyűjtse. A metaadatok formátuma megfelel a SAML2 metaadat szabványnak.

Biztonsági megfontolások

Mivel a metadata tartalmazza a föderációban részt vevő tagok és komponensek technikai információit, ezért a benne tárolt információkkal kapcsolatban figyelembe kell venni a következő biztonsági megfontolásokat:

  • Téves vagy kompromittálódott adatok eltávolítása esetén a sérülékenységi ablak megegyezik a metadata gyorstárazhatósági (cacheDuration) idejével, amennyiben a támadó nem képes blokkolni a központi metaadatok elérhetőségét (DOS)
  • Amennyiben a támadó képes blokkolni a központi metaadatok elérhetőségét, a sérülékenységi ablak a legutolsó letöltött metadata állomány érvényességéig (validUntil paraméterében meghatározott ideig) tart.
  • Amennyiben a metaadatok érvényességi ideje lejár, az entitás nem képes azonosítani a többi föderációs résztvevőt, ezért nem tud föderációs szolgáltatást (pl. IdP esetén azonosítási szolgáltatást) nyújtani.

Metaadatban tárolt információk

  • Bizalom a metaadatban
    • a metaadat integritásvédelmét és hitelességét egy digitális aláírás biztosítja.
    • a metaadat visszavonhatóságát a lejárati idő (validUntil) biztosítja, ami jelenleg 3 nap.
    • az egyes rendszerek gyorstárazhatják a metaadatot, de legalább naponta egyszer kötelesek a hiteles állományt frissíteni.
    • az aláírási procedúrát a #Metaadat_aláírásának_módja fejezet írja le.
  • Tanúsítványok
    • kötelező legalább 1024 bites kulcspárt használni
    • az entitások által használt tanúsítvánnyal kapcsolatban a föderáció nem tesz különleges megkötést, sőt: ajánlott hosszú lejáratú self-signed tanúsítványok használata
  • További információk
    • minden szöveges mezőt legalább két nyelven: magyarul és angolul ki kell tölteni
    • kötelezően kitöltendőek az intézményi, adminisztratív információk (Organization illetve ContactPerson elemek)
    • ajánlott megadni egy helpdesk URL-r, ahova hiba esetén a felhasználók fordulhatnak (errorURL attribútum)
    • SP-k esetén további kötelező elemek
      • AttributeConsumingService, ami megadja a kért attribútumokat
        • RequestedAttributes - itt az attribútum informális neve is szerepeljen
        • ServiceName, ServiceDescription az SP szolgáltatás neve és leírása
      • a szolgáltatás elérhetősége, amin a szolgáltatás bemutatkozik (extension)
      • adatkezelési szabályzatra mutató URL (extension)
    • IdP-k esetén
      • a scope csak az adott intézmény kezelésében levő domain név lehet (Shibboleth extension)
    • lehetőség van további adatok megadására is
      • logó
      • gps koordináták, IP cím tartomány
      • különböző tagek, például a szolgáltatás publikus-e, vagy épp bevezetés alatt áll-e

Metaadat kiterjesztések használata

Ezen kiegészítő adatok tárolására az internet2 szabványtervezetet készít, ennek a sémának a jelenlegi verziója megtalálható itt.

A kiegészítő séma névtere: urn:oasis:names:tc:SAML:2.0:metadata:ui. Az alábbi táblázatban ezen névtérben definiált legfontosabb elemeket foglaljuk össze:

element név szemantika értékekre vonatkozó megkötések
GeolocationHint szélesség és hosszúság érték, a + előjel az északi szélességet illetve keleti hosszúságot jelöli 47.47359,19.052891
InformationURL az entitásról további információkat (pl. helpdesk) szolgáltató oldal.
PrivacyStatementURL Az SP adatvédelmi nyilatkozátnak elérhetősége (URL) Engedélyezett formátumok: HTML, PDF
Logo Az IdP/SP logójának elérhetősége Formátummal kapcsolatban lásd #Logo
IPHint (Csak az IdP-knél) az intézmény hálózati tartománya(i). IdP felderítés esetén előválasztás lehetséges ennek alapján. CIDR, több érték is megadható
DomainHint (Csak az IdP-knél) az intézmény által felügyelt domain név. IdP felderítés esetén előválasztás lehetséges ennek alapján. Több érték is megadható


  • formátum: URL egy transzparens hátterű PNG, vagy transzparens hátterű GIF képre
  • méretezés
    • javasolt oldalarány 1:1 vagy 16:9
    • maximális méret 200x200px
    • ajánlott egy 16x16px-es verziót is megadni
  • attribútumok
    • xml:lang: lokalizációs információ
    • href: opcionális link
    • height: opcionális magasság érték pixelben
    • width: opcionális szélesség érték pixelben

Egy IdP példa

 <EntityDescriptor entityID="https://idp.niif.hu/shibboleth"
  xmlns:mdui="urn:oasis:names:tc:SAML:2.0:metadata:ui">
  <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0">
   <Extensions>
    <shibmd:Scope>niif.hu</shibmd:Scope>
    <mdui:DiscoHints xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <mdui:GeolocationHint>47.518356,19.055437</mdui:GeolocationHint>
      <mdui:DomainHint>niif.hu</mdui:DomainHint>
      <mdui:DomainHint>iif.hu</mdui:DomainHint>
    </mdui:DiscoHints>
   </Extensions>
   <KeyDescriptor use="signing">
    <ds:KeyInfo>
     <ds:X509Data>
      <ds:X509Certificate>...</ds:X509Certificate>
     </ds:X509Data>
    </ds:KeyInfo>
   </KeyDescriptor>
   <!-- endpoints, nameidformats -->
   </IDPSSODescriptor>
  <ContactPerson contactType="technical">
   <SurName>NIIF AAI</SurName>
   <EmailAddress>aai@niif.hu</EmailAddress>
  </ContactPerson>
  <ContactPerson contactType="support">
   <SurName>NIIF AAI</SurName>
   <EmailAddress>aai@niif.hu</EmailAddress>
  </ContactPerson>
  <ContactPerson contactType="administrative">
   <SurName>NIIF AAI</SurName>
   <EmailAddress>aai@niif.hu</EmailAddress>
  </ContactPerson>
 </EntityDescriptor>

Egy SP példa

 <EntityDescriptor entityID="https://rr.aai.niif.hu/shibboleth"
  xmlns:mdui="urn:oasis:names:tc:SAML:2.0:metadata:ui">
 <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol">
  <Extensions>
    <mdui:UIInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <mdui:PrivacyStatementURL>https://rr.aai.niif.hu/privacy-policy</mdui:PrivacyStatementURL>
      <mdui:InformationURL>https://rr.aai.niif.hu/about</mdui:InformationURL>
    </mdui:UIInfo>
  </Extensions>
  <KeyDescriptor use="signing">
   <ds:KeyInfo>
    <ds:X509Data>
     <ds:X509Certificate>...</ds:X509Certificate>
    </ds:X509Data>
   </ds:KeyInfo>
  </KeyDescriptor>
  <KeyDescriptor use="encryption">
   <ds:KeyInfo>
    <ds:X509Data>
     <ds:X509Certificate>...</ds:X509Certificate>
    </ds:X509Data>
   </ds:KeyInfo>
  </KeyDescriptor>
  <!-- endpoints -->
  <AttributeConsumingService index="1">
   <ServiceName xml:lang="hu">HREF Resource Registry</ServiceName>
   <ServiceName xml:lang="en">HREF Resource Registry</ServiceName>
   <ServiceDescription xml:lang="hu">Resource Registry - a föderáció adminisztrációs alkalmazása http://rr.aai.niif.hu/</ServiceDescription>
   <ServiceDescription xml:lang="en">Resource Registry - federation administration tool http://rr.aai.niif.hu/</ServiceDescription>
   <RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" isRequired="true"/>
   <RequestedAttribute FriendlyName="surname" Name="urn:oid:2.5.4.4" isRequired="true"/>
   <RequestedAttribute FriendlyName="givenName" Name="urn:oid:2.5.4.42" isRequired="true"/>
   <RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" isRequired="true"/>
   <RequestedAttribute FriendlyName="schacHomeOrganizationType" Name="urn:oid:1.3.6.1.4.1.25178.1.2.10" isRequired="true"/>
   <RequestedAttribute FriendlyName="eduPersonScopedAffiliation" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.9" isRequired="true"/>
  </AttributeConsumingService>
 </SPSSODescriptor>
 <Organization>
  <OrganizationName xml:lang="hu">NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet</OrganizationName>
  <OrganizationName xml:lang="en">NIIF Institute - National Information Infrastructure Development</OrganizationName>
  <OrganizationDisplayName xml:lang="hu">NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet</OrganizationDisplayName>
  <OrganizationDisplayName xml:lang="en">NIIF Institute - National Information Infrastructure Development</OrganizationDisplayName>
  <OrganizationURL xml:lang="hu">http://www.niif.hu</OrganizationURL>
  <OrganizationURL xml:lang="en">http://www.niif.hu/en</OrganizationURL>
 </Organization>
 <ContactPerson contactType="administrative">
  <SurName>NIIF AAI</SurName>
  <EmailAddress>aai@niif.hu</EmailAddress>
 </ContactPerson>
 <ContactPerson contactType="technical">
  <SurName>NIIF AAI</SurName>
  <EmailAddress>aai@niif.hu</EmailAddress>
 </ContactPerson>
 <ContactPerson contactType="support">
  <SurName>NIIF AAI</SurName>
  <EmailAddress>aai@niif.hu</EmailAddress>
 </ContactPerson>
 </EntityDescriptor>

Metaadat aláírásának módja

Aláíró kulcs és tanúsítványok

  • Az aláíró kulcsot smart cardon, pin kóddal védve tároljuk.
  • Az aláírás on-line történik, a kártya pin kódját az aláíró szoftver indításakor az AAI adminisztrátor adja meg, a jelszó nem kerül tárolásra az aláírást végző rendszeren (sem másutt).

Aláírási folyamat

  • Aláíratlan metaadat frissítése
    • az aláíratlan metaadat a https://rr.eduid.hu oldalról ütemezetten (5 perc) letöltésre kerül. A letöltés során az rr.eduid.hu tanúsítványa explicit módon ellenőrzésre kerül.
    • a letöltött metaadat formai ellenőrzése
    • az ellenőrzött entitások egy verziókövető rendszerbe kerülnek, az esetleges változásról e-mail értesítés készül (href-metadata-changes nevű levelezőlistára)
  • Az aláíró szoftver rendszeresen (1-2 percenként) ellenőrzi a metaadatot a verziókövető rendszerben, és változás esetén új aláírt metaadatokat készít
    • amennyiben nincs változás, fix időközönként (naponta legalább egyszer) új aláírt állományok készülnek

Aláírás ellenőrzése explicit tanúsítvánnyal

A föderáció entitásai a föderációs metaadat hitelességéről a digitális aláírás ellenőrzésével győződhetnek meg.

  • Az explicit ellenőrzés esetén a http://metadata.eduid.hu/current/ URL-ről kell letölteni a metadata fájlokat.
  • A tanúsítvány a https://metadata.eduid.hu oldalról érhető el.
    • DN-je EMAILADDRESS=aai@niif.hu, CN=Metadata Signer, OU=eduID Federation Operator, O=NIIF Institute, C=HU
    • SHA-1 FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66
  • Ajánlott a tanúsítvány lejárati idejét figyelmen kívül hagyni.
  • A tanúsítványcsere koordinálása out-of-band módszerrel történik (a href-tech levelezőlista segítségével).

Aláíró kulcs cseréje

  • A föderációs entitások számára ajánlott a tanúsítvány lejárati idejének figyelmen kívül hagyása.
  • A kulccsere koordinálása a href-tech levelezőlistán keresztül történik.
  • Kulcs visszavonásakor (kompromittálódás gyanúja esetén) a régi aláíró kulcs azonnal eltávolításra kerül, kontrollált kulcscsere esetén az aláírás párhuzamosan történik a régi és az új kulccsal.

Metaadat elérése

A HREF föderációban többféle metaadat-forrás áll rendelkezésre, melyeket a http://metadata.eduid.hu -ról lehet elérni. Fontos megemlíteni, hogy a metadata letöltésénél nem indokolt az SSL használata, ezért - amennyiben lehetséges -, érdemes a metadata URL-eket nem titkosított HTTP protokoll segítségével letölteni.

A metadata elérés URL-je a következő: http://metadata.eduid.hu/${alairo_kulcs_kibocsatas_eve}/${metadata_forras}.xml. A metadata források jelenleg a következők lehetnek:

  • href.xml: az éles föderációban részt vevő, és a föderáció kritériumait teljesítő entitások
  • href-test.xml: a HREF föderáció tesztrendszerei. Bármely, föderációban részt vevő intézmény tehet be teszt-entitást ebbe a halmazba, ezért ezen metaadat-forrás csak tesztelési célra használható.
  • href-edugain.xml: a HREF föderációból az eduGAIN konföderációba kiajánlott entitások. Ide csak olyan entitások kerülhetnek be, melyek megfelelnek a föderációs kritériumoknak, és képesek az eduGAIN konföderációval való együttműködésre. Ezen entitások be kell hogy olvassák az eduGAIN metaadatot is.
  • edugain.xml: az eduGAIN konföderáció metaadata, a HREF aláíró kulccsal aláírva.
  • intézmény-specifikus metaadat fájlok, melyeket a föderáció kérésre biztosítja, tetszőleges entitások halmazba gyűjtésével.

MDX-alapú elérés

Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a cacheDuration-ben megadott ideig).

A HREF föderációban teszt jelleggel működik és elérhető MDX-kiszolgáló: http://mdx.eduid.hu. A megfelelő beállításokhoz itt érhető el segédlet.

Az MDX kiszolgáló eltérő (nem fizikai) kulcsot és tanúsítványt használ. Ennek SHA-1 lenyomata: 91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43. Jelenleg (2015. október) az MDX elérés még csak teszt jelleggel működik, az élesüzemre váltáskor a kulcs és a tanúsítvány változni fog. A jelenlegi tanúsítvány innen tölthető le: http://metadata.eduid.hu/current/mdx-test-signer-2015.crt