Seuraavassa on esitetty Haka-resurssirekisterissä suoritettavat toimenpiteet, joilla Hakaan rekisteröidyn IdP:n ylläpitäjä saa IdP:nsä näkymään eduGAIN:iin.
- Merkitse IdP's Basic Information -välilehdellä federaatiot, joihin haluat metadatasi julkaistavan (tässä: eduGAINiin).
- Välilehdellä Contact Information oleva yhteyshenkilön sähköpostiosoitteen tulisi olla rooliin perustuva (esim. techadmin@..) eikä henkilökohtainen.
- Metadata UI -elementit tulisi olla täytetty mahdollisimman täydellisesti. Tämä tapahtuu täyttämällä tiedot Ui Extensions -välilehdellä. Erityisen tärkeät elementit ovat:
- Displayname englanniksi ja itse palvelun kielellä.
- Description englanniksi ja itse palvelun kielellä.
IdP Trust Rules
eduGAIN Rules -välilehdellä IdP-ylläpitäjä voi määritellä, mihin Service Provider -palvelimiin IdP luottaa (luovuttaa attribuutteja). Määritysten perusteella resurssirekisteri tuottaa IdP-palvelimen tarvitseman SAML-metadatatiedoston.
Määrittely voidaan tehdä kahdella tavalla:
- Basic eduGAIN rules: IdP luottaa kaikkiin SP:hin, jotka ovat sitoutuneet GÉANT-tietosuojakäytäntöön
- Advanced eduGAIN rules: IdP-ylläpitäjä määrittelee yksitellen, mihin SP-palvelimiin IdP luottaa
IdP Trust Rules: Basic
Haka-resurssirekisterissä IdP-ylläpitäjä voi yksinkertaisesti konfiguroida IdP:n luottamaan (luovuttamaan attribuutteja) kaikille SP:lle, jotka ovat sitoutuneet GÉANT-tietosuojakäytäntöön (kuva alla). Tällöin resurssirekisteri tuottaa IdP-ylläpitäjälle sekä SAML-metadata- että attribute filter policy -tiedostot, jotka sisältävät mainitut SP-palvelimet.
IdP Trust Rules: Advanced
Basic-tason sääntöjen lisäksi/sijaan IdP-ylläpitäjä voi poimia yksitellen ne SP:t, joihin haluaa luottaa. Advanced-tason säännöt ohittavat aina Basic-tason säännöt, jos sellaisia on tehty. Toimintaperiaate on sama kuin "SP Trust Rules" sivulla SP:n luottamat Identity Provider -palvelimet.
'Advanced eduGAIN Rules' - kohdan alasvetovalikoissa SP-palvelimen kotifederaatio ilmaistaan sen eduGAIN-metadatasta poimitun Registration Authority -arvon perusteella. Vaikka arvo on pakollinen, niin valitettavasti ainakin tällä hetkellä kaikki entityt eivät kerro eduGAIN-metadatassaan kotifederaatiotaan. Haka-resurssirekisteri on niputtanut kyseiset kodittomat 'Homeless'-kotifederaation alle.
Seuraava kuva selventää yleistä periaatetta. Esimerkkikonfiguraatiota ei tule käyttää tuotantokonfiguraation pohjalla, sen ainoa tarkoitus on valaista sääntöjen käyttöä.
Esimerkin konfiguraation säännöt tulkitaan seuraavasti: "Luota (#0) kaikkiin eduGAIN SP -entityihin, paitsi niihin, jotka on rekisteröinyt (#1) Brasilian Café-luottamusverkosto."
Luottamus tiettyyn Entityyn evaluoidaan seuraavasti:
- Tutki Entity-tason säännöt. Jos evaluoitavalle Entitylle löytyy sääntö, noudata sitä. Muuten siirry seuraavaan kohtaan.
- Tutki federaatiotason säännöt (#1). Jos evaluoitavan Entityn kotifederaatiolle löytyy sääntö, noudata sitä. Muuten siirry seuraavaan kohtaan.
- Noudata eduGAIN-tason sääntöä (#0).
Attribuuttien luovutuksen konfiguroiminen
Sen lisäksi, että IdP-ylläpitäjä voi määritellä entity-, kotifederaatio- tai eduGAIN-tason säännöt niistä SP:stä, joihin IdP-palvelin luottaa, IdP-ylläpitäjä voi myös asettaa perälaudan kullekin SP:lle luovutettavien attribuuttien listalle. 'eduGAIN Rules' -välilehdellä on toiminto, jolla voi rakentaa sääntöjä attribuutti- ja SP-kohtaisesti.
Alla oleva esimerkkikonfiguraatio selventää sääntöjen toimintaa eikä ole sellaisenaan malli tuotantokonfiguraatiolle.
Periaattena, on, että attribuutti luovutetaan,
- jos kohdasta IdP Trust Rules (ks. yllä) seuraa, että IdP ylipäätään luottaa kyseiseen SP:hen JA
- jos SP pyytää kyseistä attribuuttia (käyttämällä SAML-metadatan md:RequestedAttributes-elementtiä) JA
- jos "Attributes this IdP releases to eduGAIN" -kohta sallii kyseisen attribuutin luovuttamisen kyseiselle SP:lle.
Kuvan esimerkkikonfiguraatio ilmaisee, että "Lähetä attribuutti 'cn' kaikille sitä pyytäville (#0) eduGAIN SP-palvelimille paitsi, jos palvelun kotifederaatio on (#1) Norjan Feide. Norjan federaation palveluiden joukossa (#2) tee kuitenkin poikkeus foodl.org-palvelun osalta ja lähetä sille cn pyydettäessä". Samoin kuin luottamusta evaluoitaessa, myös attribuuttien kohdalla säännöt evaluoidaan entity-tasolta ylöspäin. Sääntö #2 on voimakkain, koska se koskee yhtä nimenomaista entityä. Toisena tulee Federation-tason sääntö #1 ja viimeisenä eduGAIN-sääntö #0.
Näiden sääntöjen perusteella Haka-resurssirekisteri muodostaa kullekin IdP-palvelimelle attribute filter policy (afp) -tiedoston. Sen perusteella Shibboleth IdP -palvelin päättää, mitä attribuutteja lähetetään kullekin SP:lle.
Luottamuksen ja attribuuttien luovutuksen testaaminen
Myös IdP-ylläpitäjä voi tarkastella omien sääntöjensä vaikutusta kunkin eduGAIN SP:n kohdalla:
Ensimmäinen taulukko kertoo, että foodl.org-niminen SP on sääntöjen perusteella luotettu ja sisällytetty IdP:n saamaan eduGAIN-metadataan. Toisesta taulukosta näet attribuuttisääntöjesi vaikutuksen luovutettaviin attribuutteihin.
Tekemäsi muutokset heijastuvat IdP-kohtaiseen eduGAIN-metadataasi noin tunnin viiveellä siitä, kun Haka-operaattori on hyväksynyt ne. Haka-resurssirekisteri generoi kerran tunnissa IdP:llesi näiden sääntöjen perusteella metadatan (ks. alla), joka sisältää valitsemasi eduGAIN-SP:t sekä niille afp:n. Jos tiettyä attribuuttia ei sääntöjesi mukaan saa luovuttaa kohteelle, kyseinen attributti kommentoidaan ulos sekä metadatasta että afp:stä.
IdP-palvelimen eduGAIN downstream metadata ja attribute-filter.xml (Shibboleth)
Alla taulukossa käytetyn id-arvon saat IdP-palvelimellesi kirjautumalla Resurssirekisteriin. Resurssirekisteri luo jokaiselle eduGAINiin rekisteröidylle IdP-palvelimelle räätälöidyt tiedostot palvelimelle määritetyjen eduGAIN-sääntöjen pohjalta.
Selitys | URL |
---|---|
IdP-palvelimelle räätälöity metadata | https://haka.funet.fi/edugain-nightly/gen-edugain/idp-[id]-metadata-eduGain.xml |
IdP-palvelimelle räätälöity attribute-filter.xml | https://haka.funet.fi/edugain-nightly/gen-edugain/idp-[id]-afp-eduGain.xml |
eduGAIN metadatan allekirjoitusvarmenne |
Esimerkki IdP-palvelimen konfiguroinnista (Shibboleth)
Esimerkki näyttää suuntaa kuinka ottaa käyttöön Resurssirekisterin luoma IdP-kohtainen metadata-tiedosto Haka-metadatan rinnalle (mukana allekirjoituksen tarkistus):
. . <!-- Haka MetadataProvider --> <metadata:MetadataProvider id="HAKAMD" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata" maxRefreshDelay="PT2H" metadataURL="https://haka.funet.fi/metadata/haka-metadata.xml" backingFile="/path/to/backup/location/haka-metadata.xml"> <metadata:MetadataFilter xsi:type="SignatureValidation" trustEngineRef="Haka-trustEngine" /> </metadata:MetadataProvider> <!-- eduGAIN MetadataProvider --> <metadata:MetadataProvider id="EDUGAINMD" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata" maxRefreshDelay="PT2H" metadataURL="https://haka.funet.fi/edugain-nightly/gen-edugain/idp-XX-metadata-eduGain.xml" backingFile="/path/to/backup/location/idp-XX-metadata-eduGain.xml" requireValidMetadata="false"> <metadata:MetadataFilter xsi:type="SignatureValidation" trustEngineRef="eduGAIN-trustEngine" /> </metadata:MetadataProvider> . . <!-- Haka TrustEngine --> <security:TrustEngine id="Haka-trustEngine" xsi:type="security:StaticExplicitKeySignature"> <security:Credential id="Haka_MD_signing" xsi:type="security:X509Filesystem"> <security:Certificate>/path/to/cert/haka-sign-v2.pem</security:Certificate> </security:Credential> </security:TrustEngine> <!-- eduGAIN TrustEngine --> <security:TrustEngine id="eduGAIN-trustEngine" xsi:type="security:StaticExplicitKeySignature"> <security:Credential id="eduGAIN_MD_signing" xsi:type="security:X509Filesystem"> <security:Certificate>/path/to/cert/haka-edugain-sign.csc.fi.pem</security:Certificate> </security:Credential> </security:TrustEngine> . .
Esimerkki näyttää suuntaa kuinka ottaa käyttöön Resurssirekisterin luoman IdP-kohtaisen attribute-filter.xml -tiedoston Haka-filterin rinnalle:
. . <srv:Service id="shibboleth.AttributeFilterEngine" xsi:type="attribute-afp:ShibbolethAttributeFilteringEngine" configurationResourcePollingFrequency="PT2H"> <!-- Haka attribute-filter.xml --> <srv:ConfigurationResource url="https://haka.funet.fi/metadata/haka-attribute-filter.xml" file="/path/to/backup/location/haka-attribute-filter.xml" xsi:type="resource:FileBackedHttpResource"/> <!-- eduGAIN attribute-filter.xml --> <srv:ConfigurationResource url="https://haka.funet.fi/edugain-nightly/gen-edugain/idp-XX-afp-eduGain.xml" file="/path/to/backup/location/idp-XX-afp-eduGain.xml" xsi:type="resource:FileBackedHttpResource"/> </srv:Service> . .