OAuth2-proxy for enkle, men sikre prosjekter

Jeg elsker å fikle, sette opp små eksperimenter og se hva jeg kan lære. Et lite prosjekt som jeg har tenkt på er at jeg stadig vekk kommer over interessante artikler på internett, og har lyst til å lese de på nytt senere. Litt som del.icio.us var, bare at jeg ikke trenger den sosiale delen (nå).

Sånt er jo morsomt å leke med, det er ikke så mange deler å sette sammen for å få noe til å fungere. Og det gjør det jo til et utgangspunkt for å eksperimentere med nye teknologier, siden en forstår problemet godt.

Så jeg har prøvd meg på det i et par forskjellige runder. Den ene gangen testet jeg med .NET rammeverket ABP (ASP.NET Boiler Plate), og opplevde at jeg over natt fikk brukt opp hele database-kvoten min i Azure (free tier) på automatiserte scanninger. Det kostet meg heldigvis ingenting, men ble en solid oppvekker om at internett er fylt av folk som kan ødelegge dagen din.

Så når jeg lagde en mini nett-butikk for guttungen sitt sommerjobb-prosjekt var autentisering et must. Det gikk veldig greit, siden jeg da testet ut Blazor som er Microsofts nyeste web-rammeverk, og det kommer med batterier inkludert for å si det sånn.

Men tilbake til bokmerke-prosjektet mitt, så ville jeg nå teste ut det funksjonelle programmeringsspråket Gleam. Gleam er statisk typet som utelukker en hel rekke problemer som en ellers kan få, og er bygd for å kunne kjøre på den virtuelle maskinen til Erlang. Erlang ble utviklet av Ericsson for å drifte telefon-svitsjer, og som en kan anta så er stabilitet et sentralt mål. Gleam er fortsatt ganske nytt, så det er ikke alt som er like lett å finne, og dette med autentisering stresset meg litt.

Så fant jeg OAuth2-proxy. OAuth2-proxy er en reverse-proxy som tar hånd om autentisering. Om en navigerer til nettsiden til bokmerke-tjenesten min (som bare har 1 bruker, meg), så møtes man av påloggingssiden til OAuth2-proxy der en kan autentisere seg mot f.eks. Entra Id (Microsoft Azure) eller Google. Min tjeneste må ikke forholde seg til validering av tokens eller sertifikater, men kan gå ut ifra at alle forespørsler allerede er autentisert og har tilgang. Det er herlig det!