Shibboleth IdP -ohjelmiston kehittyessä on toteutettu uusi attribuuttisuodatussääntö, joka saa syötteensä suoraan federaation SAML-metadatasta. Viimeistään, kun organisaatiot päivittävät IdP-ohjelmistonsa versiotasolle 3, kannattaa ottaa käyttöön uusi suodatussääntö. Nykyisen attribute-filter.xml -tiedoston julkaiseminen lopetetaan myöhemmin ilmoitettavana ajankohtana.
attribute-filter.xml
on perinteinen Haka-metadatan rinnalla julkaistu tiedosto, joka on voitu määritellä Shibboleth IdP -ohjelmistolle attribuuttien luovutussäännön perustaksi. Tiedosto on perustunut palvelujen (SP) metadatassa pyytämiin attribuutteihin. Perinteinen suodatin sisältää saman tiedon, kuin RequesteAttribute
-elementit SP:n metadatassa. Tiedosto ei ole allekirjoitettu. Sen ohella on julkaistu md5-summa, jolla on voinut tarkastaa, että tieto on pysynyt muuttumattomana. Md5-summa ei ole yhtä luotettava tapa varmistua tiedon aitoudesta, kuin Haka-metadatan yhteydessä käytettävä XML-allekirjoitus.
Määrittely Shibbolethin konfiguraatiossa
Uusi luovutussääntö määritellään Shibboleth Wikin ohjeen mukaisesti: https://wiki.shibboleth.net/confluence/x/dAInAQ käyttäen AttributeInMetadata
suodatintyyppiä. Suodatin täsmää niihin attribuutteihin, jotka on lisätty autentikaatiossa kyseessä olevan palvelun metadatassa RequestedAttribute
-elementtiin. Koska tuotannossa olevalla IdP:llä voi olla sidoksia useisiin metadatasyötteisiin, suodatin kytketään oikeaan metadatasyötteeseen lisäämällä siihen PolicyRequirementRule
tyyppiä InEntityGroup
, joka viittaa metadatasyötteen EntitiesDescriptor
-elementin Name
-parametrissa määritettyyn nimeen.
Suodatinta voi testata Hakan testipalvelinten kanssa. Testipalvelimien metadatasyötteeseen (CSC Testipalvelut) on lisätty nimi, johon suodattimen voi sitoa.
<AttributeFilterPolicy id="haka-onlyifrequired"> <PolicyRequirementRule xsi:type="OR"> <Rule xsi:type="InEntityGroup" groupID="urn:mace:funet.fi:haka" /> <!-- testiympäristössä määritä testimetadatan nimi: <Rule xsi:type="InEntityGroup" groupID="CSC testipalvelut" /> --> </PolicyRequirementRule> <AttributeRule attributeID="eduPersonTargetedID"> <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="false"/> </AttributeRule> <AttributeRule attributeID="eduPersonPrincipalName"> <PermitValueRule xsi:type="AttributeInMetadata" onlyIfRequired="false"/> </AttributeRule> <!-- ..... --> </AttributeFilterPolicy>