Autentisering og autorisasjon i webapplikasjoner med en etablert standard: SAML 2.0
Andreas Åkre Solberg UNINETT andreas@uninett.no
Feide - autentiseringssystem for webapplikasjoner i utdanningssektoren. Autentisering og attributter for personer i utdanningssektoren: elever, studenter og ansatte. - Dekning i utdannings sektoren: 89% universiteter og 56% ved høyskolene. - I 2006 ble det besluttet å rulle ut Feide i grunnopplæringa. Dette er arbeid i utvikling. UNINETT ABC jobber mye med dette.
Uønsket for tjeneste Uønsket for brukerene Service Provider Service Provider Service Provider Username Pasword Username Pasword Username Pasword User storage User storage User storage
Tillitsmodell Service Provider Service Provider Service Provider User storage Local user account User Local storage user account User Local storage user account Tjenestene overlater til en ekstern instans å avgjøre brukerens identitet. Tjenestene stoler på en eller flere IdP (Identity Provider), og kommuniserer ved hjelp av SAML 2.0. SAML 2.0 Identity Provider Identity User storage Hos Feide er brukerenes identitet knyttet til det brukeradministrative systemet hos utdanningsinstitusjonen der brukeren er tilknyttet.
UiO En liten oppklaring Identity Provider UiB Selv om Feide sin sentrale IdP kan autentisere brukere fra alle utdanningsinstitusjoner har Feide med hensikt valgt å ikke lagre brukerenes passord eller attriutter sentralt. UiB
Web-SSO - Single-Sign-On Web-SLO - Single-Log-Out Brukeren taster inn brukernavn en gang og er innlogget på alle tjenester. SP cookie Brukeren logges umiddelbart ut av alle tjenester med et enkelt tastetrykk. SP cookie cookie IdP SP cookie SP cookie
Autorisasjon Det er vanligst at tjenesten selv tar beslutningen om autorisasjon i en tjeneste. Med autorisasjon menes for eksempel hvor vidt en autentisert bruker har rettighet til å lese eller endre en webside eller et dokument. For å kunne ta beslutningen om autorisasjon kan tjenesten basere seg på påstander fra en IdP om autentisering og attributter. Eksempler på attributter kan være: email = andreas@uninett.no organization = UNINETT affiliation = eployee
Personvern Ikke alle tjenester trenger å vite hvem du er. Noen tjenester trenger bare å kjenne deg igjen fra gang til gang for å presentere dine preferanser fra forrige gang eller din lokale profil. Andre tjenester trenger bare generiske attributter for å gjøre autorisasjon, uten å vite nøyaktig hvem du er. Løsninger: attribute release policy og fødererte IDer.
Fødererte IDer En IdP vil mappe brukernavn til anonymiserende IDer som er unike per tjeneste. Dette hindrer at kan sammenstille data dersom noen kompromiterer brukerdatabaser fra to tjenester. Service Provider Identity Provider ID Federated ID storage ID Identity SAML 2.0 Identity User storage User storage
SAML 2.0 I Feide brukes protokollen SAML 2.0 imellom tjenesten og IdP. SAML 2.0 er en protokoll, standardisert av OASIS, for overføring av informasjon om autentisering og autorisasjon. Viktige meldinger: - AuthenticationRequest - AuthenticationResponse - AttributeRequest - AttributeResponse - AuthorizationRequest - AuthorizationResponse VIKTIG: SAML 2.0 definerer ikke selve autentiseringen, bare informasjon om en autentisering som skal skje eller har forekommet.
En påstand om at brukeren er autentisert i SAML 2.0 Etter en vellykket autentisering, sender IdP-en en signert påstand om at brukeren som bærer med seg meldingen er autentisert. Påstand om attributter kan også sendes med. SP SAML 2.0 AuthN statement Assertion Signed by Feide (X.509) User Authentication (not SAML) Feide IdP AuthNStatement NameID= Andreas2000 AttributeStatement mail = andreas@uninett.no organization = UNINETT SP SAML 2.0 AuthN statement
Innloggingssekvens 1) User access service 7) Show protected resource 6) Creates session cookie SP 2) SAML 2.0 AuthNReq 5) SAML 2.0 AuthNResponse with Assertion 4) Creates SSO cookie Feide IdP 3) User authenticates
SAML 2.0 Profiles Bindings Protocol - Web SSO Profile - SIP SAML Profile - HTTP GET redirect - Browser/POST - SOAP - Browser/Artifact - Request and - Response Assertions - Authentication, - attribute and - authorization
Standards ID-WSF 1.2 ID-FF 1.2 ID-WSF 2.0 SAML 1.1 SAML 2.0 Shibboleth extension
SAML 2.0 Authentication Contexts Feide sine brukere bruker brukernavn og passord. PKI er bedre på mange måter, men vanskeligere å rulle ut og kanskje spesielt i utdanningssektoren. SAML har ikke noe med selve autentiseringen å gjøre, men støtter å legge med informasjon om autentiserings-kontekst (type autentisering) både i autentiseringsforespørsel og svar. For eksempel kan en tjeneste be om minimum brukernavn og passord, men dersom brukerens IdP støtter både PKI og brukernavn og passord kan brukeren velge.
SAML 2.0 Meta data Meta data Feide IdP MinID IdP Meta data SAML 2.0 SP SAML 2.0 Meta data SAML 2.0 Meta data er der man definerer entitetene man stoler på, og nyttig informasjon som tjeneste endepunkter, sertifikater, entityid og profil.
UiO UiB HiØ Feide IdP MinID IdP Users Feide og MinID SAML 2.0 SAML 2.0 SP
Software SAML 2.0 er kompleks så man bør bruke ferdig programvare for å gjøre "all jobben". SAML 2.0 tjenesteprogramvare har som regel et veldig enkelt API og forholde seg til for tjenestene. Feide IdP SAML 2.0 SAML 2.0 SP software API Tjeneste Finnes forskjellig type implementasjoner; java webapp, webserver moduler, servlet filter, c-app med bindings mot flere språk, ren php implementasjon etc.
Europeisk samarbeid - Samarbeid om å få til sammenkobling i norden basert på Shibbolethprotokollen. - EU prosjekt om å få til sammenkobling mellom landene i europa med edugain. - Arbeid å standardisere attributter. Syntaks og semantikk. - Tilgang til trådløse nett for norske studenter på universiteter rundt i Europa med sitt hjemme-brukernavn og passord med eduroam.
Feide IdP SAML 2.0 Feide SP EduGAIN Feide BE WFAYF HTTP Rest + SAML 1.1 SAML 2.0 SAML 1.1 PAPI BE prop HLS SAML 2.0 Meta data A-Select BE prop PAPI IdP A-Select IdP
Spørsmål? Andreas Åkre Solberg UNINETT andreas@uninett.no