Detta är en kort genomgång av vad Shibboleth är och hur du kopplar in ditt system. OBS: DOKUMENTET ÄR UNDER UTVECKLING! 1. Vad i all världen är Shibboleth? Ibland kan det vara svårt att förstå vad som menas med Shibboleth och vad det innebär att koppla sitt system till Shibboleth. Federation (=samtliga deltagande system litar på varandra) Shibboleth IDPprogramvara Begäran om inloggning Godkänt! Datapaket tillbaka ditt-system.lu.se Shibboleth SPprogramvara Ditt system Användare Idp.lu.se Shibboleth IDPprogramvara Idp.uu.se annat-system.lu.se Shibboleth SPprogramvara annat system 1. Shibboleth är ett samlingsnamn för ett antal programvaror. 2. Leverantören heter Shibboleth consortium, och programvarorna är open source. 3. Programvarornas huvuduppgift är att erbjuda Web Single Sign-on både inom en organisation och inom en hel grupp av organisationer. 4. Programvarorna är en implementation av den öppna standarden SAML 2.0 Security Assertion Markup Language, version 2. 5. De komponenter vi använder är: a) Shibboleth Identity Provider (IDP), som är ett centralt administrerat server-program som sköter inloggning, och sedan går i god för den aktuella användaren. b) Shibboleth Service Provider (SP), som begär inloggning av en IDP när det krävs, och sedan släpper in användaren till ditt system. Detta är den del som du behöver installera.
6. Du behöver inte alls använda programvaror från Shibboleth för att vara med. Huvudsaken är att de använder standarden SAML 2.0. 7. En mängd IDP:er och SP:ar kan bestämma sig för att samarbeta och lita på varandra. Detta kallas Federation. Den federation som är aktuell för LU:s del heter SWAMID och är ett samarbete medan universitet och högskolor i Sverige. 8. När du kopplar ditt system till Shibboleth ber du egentligen samtliga medlemmar inom federationen att lita på ditt system, samtidigt som ditt system i sin tur litar på alla andra medlemmar i federationen. 9. Ditt system kan välja att acceptera inloggningar från många olika IDP:er. Exempelvis kan en användare på Uppsala Universitet logga in via Uppsalas IDP, för att sedan släppas in i ditt system. Man kan t om låta användaren själv välja vilken IDP som ska användas. Finns IDP:n med i federationen så accepterar ditt system inloggningen. 10. Efter att inloggningen genomförts levereras ett paket med information om användaren till ditt system. Ditt system behöver därför inte i framtiden göra slagningar mot LDAP för att ta reda på namn, epostadress eller annan data. 2. Kategorisera ditt system system.lu.se Ändamål Målgrupp Säkerhetskrav Entitetskategori Ditt system kommer att få tillgång till attribut baserat på sitt användningsområde samt de säkerhetskrav det uppfyller. Därför måste du kategorisera ditt system. Användning Vad används systemet till? Vad är dess ändamål? Målgrupp När ditt system ingår i SWAMID-federationen och använder Shibboleth kan samtliga personer som har ett giltigt uid/lösen inom federationen i princip logga in i ditt system. Dvs
samtliga anställda och studenter inom sveriges högskolevärld. För att begränsa tillgången till ditt system måste du därför ställa upp ett antal krav på vem som ska släppas in. Exempel på målgrupper kan vara: Hela högskole-sverige inklusive studenter Anställda inom LU Studenter inom LU Anställda inom en viss fakultet eller institution Anställda med en viss tilldelad behörighet (entitlement) Följande information kan användas för att begränsa målgruppen: affiliation : student/anställd/alumni etc Läroanstalt Organisatorisk information som tillhörighet till fakultet, institution, kostnadsställe Entitlement, dvs behörigheter som tilldelats i vår centrala katalog
Attributbehov Begäran om inloggning Idp.lu.se Godkänt! Data om användaren: uid namn epost org system.lu.se När en användare har loggat in i ditt system får du ett paket med data om den aktuella användaren ifrån IDP:n. Dessa data kallas attribut. Normalt behövs bara några få enkla attribut, men ibland kan ett system ha speciella behov. Se vilka attribut som kan levereras här: SWAMID standardattribut (beroende på entitetskategori) https://samltest.swamid.se/ Lokala LU-attribut länk Attribut med specialregler noredupersonnin Lu-uid Har du speciella behov så prata med oss. Säkerhetskrav Utbyte av metadata mellan IDP, SP och SWAMID säkras genom XML-signering och utbyte av signeringscertifikat. Detta gör att du kan lita på informationen du får den vägen (och vice versa). Däremot är data inte krypterad. Kommunikationen mellan användarens browser och olika IDP:er (t ex idp.lu.se) är däremot krypterad (https). Kommunikationen mellan användarens browser och ditt system kan vara okrypterad men vi avråder starkt från detta.
Entitetskategori(er) Det finns lagar som styr hur personinformation får göras tillgänglig till olika system, bl a svenska personuppgiftslagen (PUL) och olika EU-direktiv. Beroende på ditt systems ändamål, användningsområde och målgrupp får du därför tillgång till olika typer av information. Detta styrs inom SWAMID av systemets entitetskategori. Här är de viktigaste kategorierna: BAS Den lägsta nivån. Systemet uppfyller inga krav på målgrupp, användningsområde och säkerhet alls. Research & Education (RE) För system som används för administration av- och samarbete inom forskning och utveckling. CoC Om systemet vill tala om att det följer EU:s GEANT Data protection Code of Conduct, kan det läggas i denna kategori. I övrigt samma som RE-kategorin. SFS För system som faller inom SFS1993:1153. System som hanterar antagning och registrering av studenter och studentmeriter. System inom denna kategori får tillgång till användarens personnummer. För system som riktar sig till målgrupper inom LU har du möjlighet att få tillgång till mycket mer information.
3. Namnge ditt system Ett systems Entitets-id är dess UNIKA NAMN inom en FEDERATION Unikt namn: https://system.lu.se/shibboleth Roll: SP Certifikat: MIIDXDCCABAgIEU2tfcTANBgk Entitetskategorier: RE, CoC Hostnamn/url Ditt system behöver ett riktigt hostnamn för att få ett korrekt entitets-id. Har du inget sådant så måste du beställa ett (CNAME). Entitetsid Detta är ditt systems unika identifierare inom hela SWAMID-federationen, och därmed inom LU. Entitetsid ska se ut som en URL: https://mitt-system.lu.se/shibboleth Obs. URL:en används egentligen inte som en riktig URL utan det är bäst att se den som ett slags välstrukturerat namn. Dvs https:// följt av ditt systems hostnamn följt av /shibboleth. 4. Anmäl ditt system
Gemensam metadata SWAMID Alla medlemmar i SWAMID-federationen (alltså alla deltagande IDP:er och SP:ar) måste veta lite om varandra: entitetsid, roll (om de är SP eller IDP), entitetskategori, certifikat, kommunikationsvägar osv. Denna information kallas Metadata. All denna information har samlats i en central XML-fil som går att hämta på följande URL (titta gärna på den!): http://md.swamid.se/md/swamid-2.0.xml Efter att ditt system är anmält kommer dess metadata att finnas med i denna fil. Samtliga deltagande system läser och förlitar sig på denna gemensamma data. På så sätt kan andra deltagande system samarbeta med ditt. Det finns även en mindre omfattande variant som bara innehåller IDP-metadata: http://md.swamid.se/md/swamid-idp.xml Denna kommer ditt system att läsa in per automatik. SWAMID:s publika certifikat Din garanti för att metadata går att lita på är att den signerats med SWAMID:s publika certifikat: http://md.swamid.se/md/md-signer.crt Denna fil måste du ladda ner och göra tillgänglig för din installation. Se nedan för instruktioner.
För att släppa in ditt system i federationen behöver vi följande information: Visningsnamn (på svenska och helst även engelska) Vad ditt system kallas i vardagligt tal. Skall inte vara ett domännamn. Beskrivning (på svenska och helst även engelska) En kort beskrivning av systemet. Vad det är till för, vem det är till för, ansvarig organisation mm. Max 140 tkn Målgrupp Vilken grupp människor som behöver logga in i systemet inkl. organisationstillhörighet Kontaktperson Namn, titel, epost, telefonnummer och övriga kontaktuppgifter för systemansvarig eller annan kontaktperson. Entitetsid Ditt systems unika namn enligt avsnittet Namnge ditt system. SWAMID entitetskategori En eller flera kategorier enligt avsnittet Namnge ditt system. Specialbehov av attribut Tala med oss om detta först! Hem-url För att komma till systemets förstasida. Systemets metadatafil Som bilaga till ditt mail. Se nedan hur du hittar den. Var hittar du systemets metadatafil? Denna fil genereras automatiskt av ditt system när du anger följande URL: https://mitt-system.lu.se/shibboleth.sso/metadata Olika webbäsare hanterar den skapade filen på olika sätt. Normalt laddas filen ned och får namnet Metadata, men ibland visas filen upp direkt i din webbläsare. Alternativt ber browsern dig att välja ett program att visa filen i. Oavsett vilket så behöver du bara spara filen någonstans. Ge den gärna namnet mitt-system.lu.se-metadata.xml eller något liknande. Anmäl ditt system så här Gå till följande formulär och fyll i detta. Ett mail skapas som skickas till LU Servicedesk. http://www.lu.se/form/anmalan-till-shibboleth Det är viktigt att allt finns med och är korrekt, annars kommer LU Servicedesk att be dig komplettera.
Vad får du för feedback? När ditt system är anmält och finns med i metadata meddelar LU Servicedesk dig. 5. Se till att din Apache web server är någorlunda ny och komplett Ska vara minst Apache 2.2. 2.4 rekommenderas och våra exempel baseras på denna. mod_ssh måste vara installerad och konfigurerad Se till att apache kan hantera många attribut (httpd.conf) ProxyIOBufferSize 65536 Du behöver ett officiellt server-certifikat för att kunna köra https. Beställ här: http://www.ca.lu.se/ 6. Hämta och installera programvaran Shibboleth Service provider Shibboleth (programleverantören) rekommenderar att Shibboleth SP 2.5.3 ( current stable version ) används. Det bästa sättet att lära sig mer om att installera en Shibboleth Service Provider (SP) är att titta på SWAMID:s webinar om detta. Gå in på följande länk och välj sedan länken Webinar: inspelning. (Obs, använder Adobe Connect): https://wiki.swamid.se/display/swamid/swamid+webinar+2+2014 Det finns en instruktion för att installera en Sibboleth SP som du kan följa: https://portal.nordu.net/pages/viewpage.action?pageid=31201449 Se även: https://wiki.shibboleth.net/confluence/display/shib2/installation 7. Hämta filer och mallar Ladda hem mall för konfigurationsfil shibboleth2.xml
http://dokumentation.ldc.lu.se/shibboleth/mall-shibboleth2.xml Ladda hem mall för konfigurationsfil attribute-map.xml http://dokumentation.ldc.lu.se/shibboleth/ldc-attr-map.xml Ladda hem SWAMID signer certifikat http://md.swamid.se/md/md-signer.crt 8. Konfigurera accesskontroll För att aktivera inloggning via Shibboleth för Apache ska ändringar göras i httpd.conf. Apaches klassiska AuthType och Require-options används. Se följande länkar: https://wiki.shibboleth.net/confluence/display/shib2/nativespapacheconfig#nativespapac heconfig-authconfigoptions https://wiki.shibboleth.net/confluence/display/shib2/nativesphtaccess Exempel för att koppla på inloggningen AuthType shibboleth Require shib-session Exempel för att koppla på inloggningen med attribut-överföring via http-headers (ej default): AuthType shibboleth Require shib-session ShibUseHeaders on Du kan styra vem som ska släppas in i ditt system baserade på olika regler. Den enklaste regeln är användaren kunde logga in via aktuell IDP : Require shib-session Andra regler baserat på attributvärden: Require shib-attr edupersonaffiliation student Require shib-user! ~ ^.+@lu.se$ Require shib-attr luedupersonfakultet HT Require shib-attr swamigmaiassertion urn:mace:swami.se:gmai:ladok:reader
Signeringsnyckel (sp-cert.pem och sp-key.pem) Signeringsnyckel skapas per automatik vid installation av Shibboleth SP. Du hittar dem i \opt\shibboleth-sp\etc\shibboleth-katalogen. Vill du skapa om dem använder du följande kommando: C:\opt\shibboleth-sp\etc\shibboleth\keygen.bat f -h mitt-system.lu.se -y 3 -e https://mitt-system.lu.se/shibboleth -f betyder att du vill skriva över din gamla nyckel. -h = ditt hostnamn -y 3 betyder 3 års giltighetstid. Detta kan vara ganska lagom. -e = ditt entitetsid Både privat nyckel och publik nyckel (certifikat) skapas och hamnar i den katalog du står i under namnen sp-key.pem och sp-cert.pem. Lägg in följande data i mallen shibboleth2.xml: DITT-SYSTEMS-ENTITETSID-HAR SOKVAG-TILL-NYCKEL SOKVAG-TILL-SWAMID-METADATA SOKVAG-TILL-SWAMID-SIGNER-CERT Normalt leder alla sökvägar till shibboleths installationsbibliotek. Default: /etc/shibboleth 9. Testa din installation När ditt system är anmält till SWAMID och finns med i SWAMID:s stora metadatafil kan du börja testa din installation. Gå till: https://<ditt-system.lu.se>/secure Denna url (/secure) är skyddad av din Shibboleth Service Provider, och du kommer därför att skickas till idp.lu.se för att logga in. Efter inloggningen skickas du tillbaks, men /secure innehåller ingenting så därför får du felet Not found. Däremot är du nu inloggad. Ange sedan följande url: https://<ditt-system.lu.se>/shibboleth.sso/session Om allting är som det skall så visas information om din inloggnings-session och en lista med de attribut som du fick av idp.lu.se.
Gratulerar, du är färdig!