dJeez
Legacy Member
Ik denk dat volgende video eens moet bekijken : Secure RESTful API Automation with JavaScript - YouTubeDieterg zei:Ik probeer een REST API te beveiligen, na veel opzoekwerk blijkt dat deze manier de beste approach is?
Ik snap alleen stap 2 niet zo goed, hoe geraak ik aan mijn private key als die niet over het netwerk gestuurd mag worden
TL;DW OAuth2 Implicit grant flow (user-agent flow in de video) is wellicht het antwoord. Je krijgt een (tijdelijke) access token terug bij authenticatie (de authenticatie server kan dan een standaard login/pw validatie doen alvorens die teruggaat naar de redirect url), en geeft die door bij volgende requests (die token kan je dan serverside aan een sessie koppelen en daar ook steeds controleren). Bij uitbreiding kan je dan nog refresh tokens gebruiken (waarmee de client een nieuwe access token kan aanvragen om de sessieduur te verlengen). Client side hashing zou niet echt veel toevoegen (buiten extra overhead), je doet uiteraard wel best alle communicatie over https - zoals de OAuth2 spec het overigens voorschrijft...
Schematisch is het dus dit : https://developers.google.com/accounts/docs/OAuth2#clientside
Een relevante vraag met antwoord op SO : api - How do I implement secure OAuth2 consumption in Javascript? - Stack Overflow.
Nu ja, al het voorgaande is in principe enkel relevant voor publieke APIs, waarbij elke client zijn eigen client_id gebruikt (maw als je de REST API dus als dienst gaat aanbieden aan derden, en elke gebruiker/client een eigen API key krijgt die die dan als client_id gebruikt). Als het geen publieke REST API is kan je hetzelfde principe hanteren maar de access_token ophalen via een standaard user/pw login. Je hebt dan imho wel geen OAuth2 flow nodig.


! Net een website mee gemaakt in combinatie met prerender.io. Website staat nog wel niet online, ik hoop dat het toch iets of wat crawlable gaat zijn door google.