Hvad er Unilogins OIDC Letvægtsløsning?

Unilogins Letvægtsløsning (herfra benævnt Letvægtsløsningen) er et alternativ til Unilogins andre tilslutningsmuligheder (SAML og SSOproxy), som erstatning for SSOproxy, som lukker i Q1 2024 .

OIDC-løsningen bygger på OIO specifikationen af OpenID Connect (OIDC) protokollen, som understøtter autentifikation af brugeren og Single Sign-On (SSO).
OIDC-standarden er et rammeværk baseret på JSON Web Tokens (JWT) til udveksling af sikkerhedsinformationer mellem de forskellige parter. Sikkerhedsinformationen udtrykkes i form af JWT påstande (claims), som er digitalt signerede JSON-strukturer, der udveksles mellem de kommunikerende parter. Ved udveksling er det muligt at sende information om brugeren i form af JWT tokens, som kan anvendes til autentificering og Web SSO.

Unilogins OIDC-løsning er et alternativ til Unilogins SAML-løsning, som begge integrerer til Unilogin Brokeren. Læs mere om SAML-løsningen her
OIDC og SAML erstatter begge Unilogins SSOproxy og Atlas løsninger, som begge lukker i Q1 2024.

Licens

OIDC-løsningen kan autorisere brugere med Unilogins licenssystem Giv Adgang . Licens til en specifik tjeneste oprettes enten af en brugeradministrator på en institution eller af brugeradministrator for tjenesten selv. En brugeradministrator kan give en klasse, aktørtype eller en institution adgang til en tjeneste. Når brugeren efterfølgende logger på tjekkes det om vedkommende har licens til den specifikke tjeneste. Hvis tjenesten kræver, at brugeren har licens, og brugeren mangler, så vil adgangen blive afvist. 

Let på data

Fokus med denne tilslutningsform er, at have en SSO til Unilogin med minimering af data der udveksles. Der videreformidles kun institutionsnummer og et tjenestespecifikt pseudonym for brugeren ved login. Det vil sige, at der sendes ingen personfølsomme data mellem Unilogin og letvægtstilsluttede tjenester.

Det er kun muligt at logge ind på letvægtstilsluttede tjenester med en-faktor, da dataminimering ikke skaber behov for højere sikringsniveau.

Overvejelser ved tilslutning

Denne tilslutningsform er tiltænkt tjenester som ønsker at blive tilsluttet Unilogin, og som ikke har behov for andet end validering af brugeren og SSO.

Hvis tjenesten:

  • Ønsker yderligere data
  • Har behov for højere sikringsniveau ved login
  • Har andre behov som ikke kan dækkes af denne minimale løsning

Så skal man bruge en af Unilogins andre tilslutningsmuligheder, heriblandt SAML, og den kommende fulde OIDC tilslutning. 

Feltspecifikation

Vi skal bruge metadata om tjenesten for at oprette forbindelse mellem den og Unilogin. Metadata skabelon til oprettelse af tjeneste kan hentes her.

Følgende parametre kan findes i skabelonen. Parametre markeret som krav skal udfyldes. Resterende kan udfyldes efter behov.

ParameterTypeVærdiEksempelKrav
clientId stringURI med tjenestens ID"https://tjeneste.domæne.dk/min-tjeneste"X
redirectUris string[] Array med minimum en URL som brugeren redirectes til ved login. Relative stiger kan bruges hvis Root URL er sat. Wildcards (*) er ikke tilladt.

[ "https://tjeneste.domæne.dk/login" ] 

X
[ "/login" ] 
udbyderNummer string 

ID som modtages ved oprettelse som udbyder på https://tilslutning.stil.dk/

"A01234" 

X
tjenesteKode string 

Kode der bindes til tjenesten. Dette bruges til tjekke om brugeren har licens til tjenesten. Koden oprettes ved registrering af tjenesten i GivAdgang. Behøves ikke at være udfyldt, hvis licensstyring ikke ønskes.

"min-tjeneste-kode" X
manglerLicensUrl string Link der redirectes til ved manglende licens. Behøves ikke at være udfyldt, hvis licensstyring ikke ønskes."https://tjeneste.domæne.dk/mangler-licens" X
namestring Tjenestens navn"Min Tjeneste" 
description string Beskrivelse af tjenesten (max. 255 tegn)"Min Tjeneste har dette formål:" 
rootUrl string Grund URL, som redirectsUris kan bruge til relative stiger"https://tjeneste.domæne.dk"
webOrigins string[]Array med URI'er som tjenesten tillader til CORS (Cross-Origin Resource Sharing)[ "https://domæne2.dk" ]

Eksempel på udfyldt metadata

Metadata med dummy data
{
    "clientId": "https://tjeneste.domæne.dk/min-tjeneste",
    "redirectUris": [
        "https://tjeneste.domæne.dk/login"
    ],
	"attributes": {
        "udbyderNummer": "A01234",
        "manglerLicensUrl": "https://tjeneste.domæne.dk/mangler-licens",
        "tjenesteKode": "min-tjeneste-kode",
		"pkce.code.challenge.method": "S256",
        "login_theme": "unilogin"
    },
	"protocol": "openid-connect",
	"publicClient": false,
	"name": "Min Tjeneste",
    "description": "Min Tjeneste har dette formål: ",
    "rootUrl": "",
    "webOrigins": [
        "https://domæne2.dk"
    ]
}

De forskellige attributter inkluderet i respons kan ses i følgende tabel:

Claim

Obligatorisk

Fulde navn

Beskrivelse

Eksempel værdier på felter

Note

exp
jaExpiration time Udløbstidspunkt for token
1680093037

iat
jaIssued atTidspunktet token blev udstedt, som et JSON nummer
1680092737

auth_time
jaTime for End-User authenticationTidspunktet autentifikationen skete, som et JSON nummer
1680092737

jti
jaJWT IDEt unikt ID for token
5d77a80b-47e7-4cfa-8029-8a648be6e3f4

iss
jaIssuer IdentifierID for udsteder af token. Denne er tilsvarende attributten "Broker" ved SAML login.
https://broker.unilogin.dk/auth/realms/broker

aud
jaAudienceModtager af tokenen, i form af et EntityID
https://tjeneste.domaene.dk/min-tjeneste

azp
jaAuthorized partyDem som ID tokenen er udstedt til
https://tjeneste.domaene.dk/min-tjeneste

acr
jaAuthentication Context Class ReferenceBruges til NSIS sikringsniveau
https://data.gov.dk/concept/core/nsis/loa/Low
https://data.gov.dk/concept/core/nsis/loa/Substantial

NSIS niveau "High" vil ikke kunne forekomme da Unilogin Brokeren bliver anmeldt på niveau "Substantial" https://data.gov.dk/concept/core/nsis/loa/High

typ
jaToken CategoryType af token (Sættes af keycloak. Sættes som ID ved testtjenesten)
Bearer

nonce
jaNumber onceString som bruges til at tilknytte klientsessionen med en ID token
621aa767f3d501a2d85ef9bd7632a6d5

session_state
jaSession StateBruges til Session Management
b3ff44a3-055f-40c5-a40c-26d265785976

sub
jaSubject Identifier

Tjenestespecifikt pseudonym for brugeren som logger ind.

Pr. default sættes brugerens BrokerID som sub. For at der bruges et tjenestespecifikt pseudonym for tjenester tilkoblet OIDC protokollen, kan der oprettes en protokol mapper på klienten af typen 'Pairwise subject identifier'. Den opretter et pseudonym for brugeren og sætter den på brugerens profil, når de logger ind.

dd0fa533-fe2f-45f8-a2c9-f65503df7c68

Claim

Obligatorisk

Scope 

Beskrivelse

Eksempel værdier på felter

Note

has_licenseja
UserHasLicenseClientScope
GivAdgang specifikt felt. Boolean værdi om brugeren har licens til udbyder/tjeneste
true/false
Er false når bruger mangler licens, og manglerLicensUrl ikke er udfyldt på klienten
institution_idsja
InstitutionIdsClientScope
GivAdgang specifikt felt. Institutioner som brugeren er tilknyttet OG har licens til999904, R00147

Eksempel på tjeneste implementering

For at hjælpe med at foretage integrationen til OIDC har vi udarbejdet et eksempel på en tjeneste implementering samt et eksempel kode (WIP)
Du kan finde begge her

Tilslutning til Letvægtsløsningen

Undersøg om du opfylder forudsætningerne for at blive tilsluttet

Kontakt supporten for at :

  • Blive oprettet som udbyder, hvis I ikke allerede er det
  • Bestille tilslutning af jeres tjeneste til Letvægtsløsningen, herunder udveksling af OIDC metadata

For at blive oprettet på det eksterne testmiljø skal følgende være opfyldt:

  1. Download metadata skabelonen og udfyld relevante punkter om testtjenesten
  2. Testmetadata skal sendes i JSON-format (.json)
  3. Testmetadata skal navngives på formen supportsagsnummer_test_letvaegt_metadata.json (fx infrasup-98765_test_letvaegt_metadata.json)

Bemærk at før tjenesten kan komme på produktionsmiljøet skal følgende være opfyldt:

  1. Der skal indsendes en erklæring om at login i tjenesten via Unilogin alene tjener et relevant formål i forhold til skoler og institutioner. Herunder eksempler på skoler og institutioner der anvender tjenesten.
  2. Download metadata skabelonen og udfyld relevante punkter om tjenesten
  3. Produktionsmetadata skal sendes i JSON-format (.json)
  4. Produktionsmetadata skal navngives på formen supportsagsnummer_oidc-letvaegt_metadata.json (fx infrasup-98765_oidc-letvaegt_metadata.json)
  5. Integrationen til Unilogin Broker skal overholde OIO OIDC specifikationen
  6. Slutteligt skal der anmodes om en tilslutning af tjenesten til "Unilogin Broker - OIDC (Letvægtsløsning)" på tilslutning.stil.dk

 

Administrer - herunder tilslutning til yderligere services og evt. anmodning om dataadgange - din tilslutning til Unilogin Letvægtsløsning på tilslutning.stil.dk



  • Ingen etiketter