Skip to content
This repository was archived by the owner on Nov 18, 2024. It is now read-only.

Commit 5488268

Browse files
committed
fixed links
1 parent 9e4ab10 commit 5488268

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

content/posts/oauth-del3-pkce.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ tags: ["oauth", "oidc", "sikkerhet"]
1313

1414
Dette er del 3 i serien om OAuth og OIDC. Den mest brukte OAuth-flyten, "Authorization Code flow", innebærer at `client` og `id provider` utveksler hemmeligheter. Klienten må derfor være i stand til å holde på hemmelig informasjon på en trygg måte, i standarden omtales dette som `confidential clients`. For mobil-apps og "single page" webapplikasjoner har dette ikke vært gjennomførbart da hemmelighetene må distribueres helt ut til sluttbrukeren som en del av appen.
1515

16-
I [del 1](/posts/oauth1) ble standarden og terminologien gjennomgått, ta en titt på den hvis du trenger en innføring eller oppfriskning.
16+
I [del 1](/blog/posts/oauth1) ble standarden og terminologien gjennomgått, ta en titt på den hvis du trenger en innføring eller oppfriskning.
1717

1818
Authorization Code flow har også en svakhet som kalles "authorization code injection". Et slikt angrep er komplisert å gjennomføre og krever at mange ting skal klaffe samtidig, men er ingen umulighet. Dersom noen som har stjålet din `client_id` og `client_secret` klarer å fange opp en authorization code kan de gjøre et token-kall på dine vegne, og dermed utgi seg for den aktuelle sluttbrukeren. Hvordan klarer man så å fange opp en authorization code? Callbacks gjøres jo kun til (forhåpentligvis) forhåndsgodkjente URLer over HTTPS? Vel, ikke alltid. En måte er å utnytte custom "URL schemes" på telefoner. En telefon-app vil typisk registrere callback URLs av type `myapp://something`, dette gjør at kallene rutes til denne appen. Hvis en angriper får deg til å installere en app som registrerer seg som lytter på myapp-URLs vil denne appen også få tilsendt callbackene som inneholder koden.
1919

2020
## PKCE
2121

2222
For å bøte på disse svakhetene har det blitt laget et tillegg til OAuth-standarden. Tillegget beskriver teknikken "Proof Key for Code Exchange" som forkortes "PKCE" og uttales "pixie".
2323

24-
Authorization Code flow ser ut som vist i figuren (se [del 1][del 1](/posts/oauth1) for detaljer).
24+
Authorization Code flow ser ut som vist i figuren (se [del 1][del 1](/blog/posts/oauth1) for detaljer).
2525

2626
![authorization code flow](/blog/images/auth_code.png)
2727

content/posts/oauth1.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ tags: ["oauth", "oidc", "sikkerhet"]
1111

1212
## Innledning
1313

14-
Dette er del 1 av 3 om OAuth og OIDC, hva det er, hvilke problemer det løser og hvordan vi bruker det i NAV. Denne første delen forsøker å forklare og avmystifisere standardene litt. [Del 2](/blog/posts/2020/09/oauth-del-2-token-exchange.html) tar for seg den nylig standardiserte `Token Exchange`-flyten og hvordan vi har løst den med [TokenX](https://doc.nais.io/security/auth/tokenx/). [Del 3](/blog/posts/2021/03/oauth-del-3-pkce.html) handler om "Proof Key for Code Exchange", a.k.a. PKCE.
14+
Dette er del 1 av 3 om OAuth og OIDC, hva det er, hvilke problemer det løser og hvordan vi bruker det i NAV. Denne første delen forsøker å forklare og avmystifisere standardene litt. [Del 2](/blog/posts/oauth2) tar for seg den nylig standardiserte `Token Exchange`-flyten og hvordan vi har løst den med [TokenX](https://doc.nais.io/security/auth/tokenx/). [Del 3](/blog/posts/oauth-del3-pkce) handler om "Proof Key for Code Exchange", a.k.a. PKCE.
1515

1616
## Bakgrunn
1717

content/posts/oauth2.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ tags: ["oauth", "oidc", "sikkerhet"]
1010
![OAuth2](/blog/images/oauth2.png)
1111

1212
## Bakgrunn
13-
I NAV er [OAuth og OIDC](/blog/posts/2020/09/oauth-del-1.html) de facto standard for å løse autentisering og autorisering i appene våre. I en løst koblet verden med mikrotjenester og [zero trust](https://doc.nais.io/appendix/zero-trust) er det imidlertid flere brikker som må på plass. Hvordan kan man på en trygg måte kalle andre tjenester videre bakover i kjeden og samtidig bevare sluttbrukerkonteksten? Tidligere har man benyttet såkalte "systembrukere", dvs brukere som identifiserer systemet/tjenesten som det kalles fra. Man har hatt en eller flere [Security Token Services](https://en.wikipedia.org/wiki/Security_token_service) som har vekslet systembrukerens brukernavn og passord inn i et access token som benyttes for videre kall. Dette har flere ulemper. Systembrukerene må ha ganske romslige rettigheter (som gjør det ekstra viktig at de ikke blir kompromittert), og informasjon om sluttbrukeren som initierte kallet blir borte med mindre man legger på hjemmesnekra hacks.
13+
I NAV er [OAuth og OIDC](/blog/posts/oauth1) de facto standard for å løse autentisering og autorisering i appene våre. I en løst koblet verden med mikrotjenester og [zero trust](https://doc.nais.io/appendix/zero-trust) er det imidlertid flere brikker som må på plass. Hvordan kan man på en trygg måte kalle andre tjenester videre bakover i kjeden og samtidig bevare sluttbrukerkonteksten? Tidligere har man benyttet såkalte "systembrukere", dvs brukere som identifiserer systemet/tjenesten som det kalles fra. Man har hatt en eller flere [Security Token Services](https://en.wikipedia.org/wiki/Security_token_service) som har vekslet systembrukerens brukernavn og passord inn i et access token som benyttes for videre kall. Dette har flere ulemper. Systembrukerene må ha ganske romslige rettigheter (som gjør det ekstra viktig at de ikke blir kompromittert), og informasjon om sluttbrukeren som initierte kallet blir borte med mindre man legger på hjemmesnekra hacks.
1414

1515
## Token Exchange standarden
1616
[RFC 8693 - OAuth 2.0 Token Exchange](https://www.rfc-editor.org/rfc/rfc8693.html) adresserer akkurat dette problemet, og har nå endelig blitt en "proposed standard". Azure AD (som vi bruker som ID-provider for egne ansatte) har lenge tilbydd en [on-behalf-of flyt](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow) som er veldig lik den nye standarden, men for borgerne som logger på med ID-porten har vi ikke hatt noe tilsvarende.

0 commit comments

Comments
 (0)