1. Dataporten
– sikker og enkel deling av data i UH-sektoren
UNINETT Fagdager 2. mai 2017
andreas.solberg@uninett.no
Andreas Åkre Solberg
sigmund.augdal@uninett.no
Sigmund Augdal
2. Dataporten Workshop
13:00 - 17:00
Deltakerene: noen uten pålogging til Dataporten?
Introduksjon
Om Dataporten
OAuth og OpenID Connect
API-er med mer.
Hva er nytt og hva er planer videre…
Spørsmål, diskusjon med mer underveis.
Hands-on med OAuth, OpenID Connect og API-er.
2
3. Hva er Dataporten?
Dataporten har vært mulig å realisere på grunn av Feide, og
bygger videre på plattformen for å dekke nye behov.
Nytt grensesnitt mot tjenesteleverandører som også egner seg for datatilgang.
OAuth 2.0 / OpenID Connect.
Samme token som utleveres ved autentisering kan brukes til å nå alle datakildene tjenesten har tilgang til. Stort potensial
og forenkling for tjenesteutviklere.
Gruppe API. Mer kontekst om brukeren.
Bedre støtte for mobilapplikasjoner
100% selvbetjening.
Utviklervennlig. Alle kan opprette tjenester. Ingen betaling kontrakt eller manuell godkjenning. Økt fokus på
selvbetjening.
Tilgangsstyring til API-er (også tredjeparts API-er)
Brukergrensesnitt for å forespørre og godkjenne tilgang mellom applikasjoner og datakilder.
Flere autentiseringskilder:
Feide
ID-porten
eduGAIN (Internasjonal pålogging)
Gjestebrukere (openidp.feide.no)
Sosiale nettverk (Facebook, LinkedIn, Twitter)
Testbrukere
7. Litt mer om ID-porten
Krever manuell godkjenning på organisasjonsnivå.
Mulighet for fakturering ved mye bruk.
Fødselsnummer leveres ikke videre til tjenesten by default.
Planer om oppslagstjenester f.eks. mot kontakt og reservasjonsregisteret og/eller
folkeregisteret. Må utredes. På planen for i år.
Mulig med uthenting av data fra kilder basert på fødselsnummer uten at tjenesten får utlevert
fødselsnummer.
7
10. OAuth 2.0 and Bearer Tokens
Authorization request
https://auth.dataporten.no/oauth/authorization?
response_type=code&client_id=1234
User logs in
User accept consent
User is redirected back to the service provider with a token (sometimes via temporary code)
A token looks like this:
f9ab4387-0cf2-457f-b83c-712b0c99e4b9
Service provider uses token when accessing REST APIs, such as the userinfo or groups API:
GET /api/something HTTP/1.1
Host: api.dataporten.no
Authorization: Bearer f9ab4387-0cf2-457f-b83c-712b0c99e4b9
11. OpenID Connect
Identity layer on top of OAuth 2.0
Standardises userinfo endpoint
Sends cryptographic signed token with user identity along with the Oauth token.
JWT - JSON Web Token (various signed messages in OpenID Connect)
13. 13
OpenID Connect
OAuth 2.0
REST API
HTTP
Dataporten
Autentisering
IDporten gjestereduGAIN
Grupper
…
API Gatekeeper
HTTP
Tjeneste backend
Datakilde 1
Datakilde 2
Feide
Tjeneste 2
Mobil app
Tjeneste 1
Web app
Tjeneste 3
Datakilde 3
FSAT
Feide
orgunit
Feide
GO
adhocGroup
Engine
UH-AD
?
BAS
?
Org
Orgunit
undervisnings-
gruppe
basisgruppe
kull
klasse
studieprogram
studieretning
emner
organisatoriske grupper
prosjekter
med mer
14. Gruppemodell
Hent ut gruppene den påloggede brukeren er medlem i.
Gruppe API
GruppetypeGruppeMedlemskapPerson
Andreas medlem
som ansatt i
avdeling for
system og mellomvare
organisatorisk grupe
16. Dataporten + Mobil-apps
Studentbevis App FSAT
Dataporten gir
– støtte for mobil applikasjon
– tilgangsstyring til FS semesterdata
– gjenbrukbare API-er for semesterdata til
andre tjenester
16
Sesjonsvarighet
8 timer eller 2 år
OAuth gir mulighet for
innlogging via mobil.
› In-app browser vs.
› System browser +
custom url scheme
19. 19
Valg av organisasjon
erstatter Feides valg av org.
inkrementell søk
sortering etter avstand. logoer og
koordinater.
Legger også til alternative
påloggingsvalg: sosiale nett og IDporten.
Introduserer internasjonal pålogging
med selektor for land.
Vises veldig skjelden. Kun første gang
per bruker per maskin/nettleser
20. 20
Kontovelger
innfører click-trough for SSO
oppmerksomhet rundt hvilken rollen
man logger inn på tjenesten som.
I fremtiden kan dette representere rolle-
valg.
En variant av det å huske hvilken
institusjon man valgte å logge inn med
forrige gang, og samtidig holder åpent
muligheten for å velge annerledes denne
gangen.
22. Modell for juridisk grunnlag
for utlevering av personlige data
To hovedklasser:
Personlig samtykke og frivillig bruk. (ikke barneskole)
Obligatorisk bruk i undervisningen: databehandleravtale med mer.
Disse to klassene bygges inn i Dataporten.
25. API Library
Langsiktig mål om et bredt tilbud av API-
er som bidrar til å minimere
integrasjonskostadene ved oppbygging
av nye tjenester
– både sektorens egne tjenester og
eventuelle kommersielle tredjeparts
tjenester.
25
27. 27
Når man får en access token, så kan denne benyttes mot både Dataporten interne APIer, men
også mot tredjeparts APIer via API Gatekeeperen.
En access token er knyttet til et sett av scopes. En liste av scopes kan for eksempel være:
userinfo, feide, email, gk_mediasite, gk_mediasite_admin
OAuth 2.0 Access Token
29. En endret IKT-arkitektur
– enklere tjenesteutvikling og verdiskapning
Enkelt grensesnitt
Autentisering og datakilder i norsk utdanningssektor
Dataporten
Autentisering
IDporten gjestereduGAIN
Grupper FS Læringsanalyse
Open
badges
Feide
Tjeneste 2
Mobil app
Tjeneste 1
Web app
Tjeneste 3
Innholds-
leverandør 1
LMS Cristin
Tilgang til et stort harmonisert, attraktivt marked med
lave eller fraværende integrasjonskostnader
Motivasjon til å gjøre autorative datakilder
standardiserte, gjenbrukbare, tilgjegenlige, forhindre leverandørbindinger
Digital
eksamen
IaaS
PaaS
30. Åpne data
Data hos utdanningsinstitusjoner bør
deles by default.
Viktig for fremtidig verdiskapning.
Ikke vent på forespørsler eller konkrete
behov!
Kan også brukes internt!
Mye enklere å håndtere datasett som
ikke behøver aksesskontroll.
30
31. Utlogging
Utlogging i Dataporten.
Applikasjon bør ha en knapp for utlogging som:
Avslutter lokal sesjon,
og deretter videresender brukeren til en utloggingsside hos Dataporten.
Der vil Feide-sesjonen avsluttes, og andre Feidetjenester,
men ikke andre Dataporten-tjenester.
Mobil app, langvarige sesjoner…
31
36. Mer samordnet sluttbrukeropplevelse
Feide + Dataporten
På kort sikt: loginflyt for sluttbrukere
På lengre sikt: komplett samordning, alt fra kundeportal, styringsmodell, support, finansiering
med mer.
36
38. Signerte tokens
Ønsker mulighet for å kunne signere tokens med rettigheter for spesifikke formål, som kan
sendes og valideres direkte uten å benytte API Gatekeeper.
38
39. Operasjonelle utvidelser
for å øke tilgjengelighet
Multiple datasentre
39
Datasenter 1
AuthEngine Core API
Cassandra Cassandra Cassandra
API
Gatekeeper
Group
engine
Datasenter 2
AuthEngine Core API
Cassandra Cassandra Cassandra
API
Gatekeeper
Group
engine
LB LB
Trondheim
Bergen
Oslo
Tromsø