Information
Denna instruktion är baserad på dokument Services and Attributes in SAML Metadata v1.0.0, som är en del av Skolfederations policy. Vid händelse av diskrepanser mellan policydokument och denna artikel är det alltid Skolfederations policy som gäller. Denna instruktion ska ses som ett lässtöd.
Hittar du ett fel? Kontakta info@skolfederation.se
Introduktion
Attribut släpps av IdP’n i SAML-intyget för att efterfrågande tjänst ofta kräver en identifierare för användaren (ex EPPN), auktorisationsbaserade attribut (ex undervisningsgrupper, skolenhetskod), attribut för presentation i tjänsten (ex namn) och andra fall.
I Skolfederation finns sidan Tjänster och Produkter där tjänsteleverantörer kan få sina önskade attribut publicerade genom att meddela Skolfederation vilka attribut de kräver. Om än det ger en god överblick över tjänsters efterfrågade attribut i federationen, så stämmer den inte alltid, vilket gör att användarorganisationen behöver vända sig direkt till tjänsteleverantören för att ta reda på vilka attribut som efterfrågas ändå. Sidan kan i dagsläget därmed bara ses som en hänvisning, dess tillförlitlighet är begränsad.
Sidan Tjänster och Produkter visar inte heller vilket entityID som kräver vilka attribut. I händelsen att en tjänsteleverantör har flera entiteter kan det därmed fortfarande behövas kontakt med tjänsteleverantör.
Tjänster har idag ingen möjlighet att få kännedom om vilka attribut som en IdP kan leverera. Detta eftersom det inte har funnits krav på att IdP’n ska presentera detta i metadata eller på annat vis.
Skolfederation ämnar att förändra så deklaration av attribut hanteras i federationens metadata.
Deklaration för SAML SP
I SAML-federation finns stöd för att deklarera vilka attribut tjänsten efterfrågar vid inloggning. Det ger en tydligare koppling vilken tjänst/vilket entityID som kräver vilka attribut. Om alla tjänster deklarerar sina önskade attribut i sitt metadata, finns möjligheterna att
Ta fram en tillförlitlig och dagsaktuell presentationsvy för tjänsters önskade attribut baserat på metadata,
I framtiden skulle IdP kunna automatiskt konfigureras baserat på tjänsters metadata*
* Observera att det kräver utredning som tar i beaktning juridik avseende personuppgifter samt sannolikt utveckling i IdP-lösningar för att det ska realiseras.
Tjänsteleverantörer får dessutom sin attributhantering i sina egna händer, och får det lättare att presentera och uppdatera attribut.
Attributdeklarationen görs i elementet <AttributeConsumingService>. I AttributeConsumingService definieras också namn på tjänst och dess beskrivning. Tjänsten ska definiera namn, beskrivning och åtminstone ett önskat attribut i AttributeConsumingService. Tjänstens namn och beskrivning måste finnas på både svenska och engelska.
Exempel i metadata för SAML SP
Attribut samt tjänstens namn och beskrivning deklareras i <AttributeConsumingService>.
Exempel i metadata:
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://example.com" ...>
<md:SPSSODescriptor...>
...
<md:AssertionConsumerService ... />
<md:AttributeConsumingService index="0">
<md:ServiceName xml:lang="en">Example service</md:ServiceName>
<md:ServiceName xml:lang="sv">Exempeltjänst</md:ServiceName>
<md:ServiceDescription xml:lang="en">Description of service</md:ServiceDescription>
<md:ServiceDescription xml:lang="sv">Beskrivning av tjänst</md:ServiceDescription>
<md:RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" isRequired="true"/>
<md:RequestedAttribute FriendlyName="givenName" Name="urn:oid:2.5.4.42"/>
<md:RequestedAttribute FriendlyName="surName" Name="urn:oid:2.5.4.4"/>
</md:AttributeConsumingService>
</md:SPSSODescriptor>
</md:EntityDescriptor>
Observera att AttributeConsumingService behöver anges i följd efter AssertionConsumerService och innan slutet på SPSSODescriptor. Är det felplacerat i metadata kommer metadatavalidatorn att visa fel för XML-schema vid uppladdning, liknande detta:
Vad krävs från mig som tjänsteleverantör?
Uppdatera era tjänsters metadata i federationen med era önskade attribut samt tjänstens namn och beskrivning, enligt ovan.
Deklaration för SAML IdP
I SAML-metadata kan användarorganisationer deklarera vilka attribut de kan för att ge ut i elementet <Attribute>. IdP måste ha deklarerat stöd för minst ett attribut i metadata. IdP’er kan välja att även deklarera vilka värden som stöds per attribut.
Exempel i metadata för SAML IdP
I nedanstående exempel visas en IdP som deklarerat stöd för att släppa två attribut: eduPersonPrincipalName och eduPersonEntitlement. För eduPersonEntitlement har IdP’n även deklarerat ett värde till eduPersonEntitlement.
<md:EntityDescriptor xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://example.com/">
<md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
...
<md:SingleSignOnService ... />
<md:NameIDMappingService ... />
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6"
FriendlyName="eduPersonPrincipalName">
</saml:Attribute>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid: 1.3.6.1.4.1.5923.1.1.1.7"
FriendlyName="eduPersonEntitlement">
<saml:AttributeValue>
http://example.com/contracts/HEd123
</saml:AttributeValue>
</saml:Attribute>
</md:IDPSSODescriptor>
</md:EntityDescriptor>
Observera att attributdeklarationen behöver anges i följd efter SingleSignOnService och eventuell NameIDMappingService samt innan slutet på IDPSSODescriptor. Är det felplacerat i metadata kommer metadatavalidatorn att visa fel för XML-schema vid uppladdning, liknande detta:
Vad krävs från mig som användarorganisation (skola)?
Uppdatera era IdP-metadata i federationen med attribut enligt ovan.
Är ni osäker på hur er IdP fungerar i detta avseende så fråga er IT-avdelning/leverantör av IdP.
Vad händer om vi inte anpassar vårt metadata?
För SAML SP: de tjänster som kräver attribut vid inloggning som inte presenterar dessa i metadata kommer inte att synas i presentationsvyn för tjänsters önskade attribut baserat på federationens metadata. Framöver kommer kravet implementeras i Federationsadmin så att det inte går att ladda upp nytt metadata utan ovanstående deklaration.
För SAML IdP: Framöver kommer kravet implementeras i Federationsadmin så att det inte går att ladda upp nytt metadata utan ovanstående deklaration.
Har du frågor? Kontakta oss på info@skolfederation.se