Skip to content

Commit

Permalink
Release: OAuth-Inleiding
Browse files Browse the repository at this point in the history
  • Loading branch information
logius-standaardenbeheer committed Nov 21, 2024
1 parent f6c45c6 commit bd14702
Show file tree
Hide file tree
Showing 8 changed files with 2,700 additions and 8 deletions.
Binary file modified api/oauth-inleiding/0.1.0/OAuth-Inleiding.pdf
Binary file not shown.
6 changes: 3 additions & 3 deletions api/oauth-inleiding/0.1.0/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -746,14 +746,14 @@
}</script>
<link rel="stylesheet" href="https://gitdocumentatie.logius.nl/publicatie/respec/style/base.css"></head>

<body class="h-entry informative"><div class="head">
<body class="h-entry informative toc-inline"><div class="head">
<a class="logo" href="https://www.logius.nl/standaarden"><img alt="Logius" height="77" id="Logius" src="https://gitdocumentatie.logius.nl/publicatie/respec/style/logos/figure-logius.svg" width="44">
</a> <h1 id="title" class="title">Algemene Inleiding Open Authenticatie (OAuth)</h1>

<h2>
Logius Praktijkrichtlijn<br>
Werkversie
<time class="dt-published" datetime="2024-11-16">20 november 2024</time>
<time class="dt-published" datetime="2024-11-16">21 november 2024</time>
</h2>
<dl>
<dt>Deze versie:</dt><dd class="status">
Expand Down Expand Up @@ -834,7 +834,7 @@ <h2>
<div class="header-wrapper"><h2 id="voorbeeld">Voorbeeld</h2><a class="self-link" href="#oauth-de-basis" aria-label="Permalink for this Section"></a></div>
<p>Zoals al aangegeven in de context werkt een voorbeeld het beste. In onderstaand schema is het voorbeeld opgenomen van Spotify waarbij een user, in dit geval <a href="mailto:[email protected]">[email protected]</a>, inlogt op de Spotify webclient. Het voorbeeld gebruikt de authorization server van Spotify zelf om een token te verkrijgen en daarna kan de user z'n persoonlijke gegevens, afspeellijsten en muziek opvragen bij de Spotify API.</p>
<p><img src="./media/OAuth-Authorization_Code_Flow_Example.svg" alt="Spotify_login"></p>
<p>Zowel de webclient van Spotify als de client applicatie of app gebruiken dezelfde API om resources op te vragen. De "Coursera basis training met Postman" die in de <a href="#Referenties">referenties</a> wordt genoemd legt uit hoe je deze flow kan naspelen met als client de testtooling van Postman. De Coursera training is met name interessant om verdere kennis op te doen. De training is gebaseerd op Postman als client en gebruikt Spotify als server om tegen aan te praten. Hiervoor log je in op <a href="https://developer.spotify.com/">https://developer.spotify.com/</a> en maak je een App aan in het dashboard. In het voorbeeld is Spotify zowel de Authorization Server als de Resource server. Spotify beschrijft in het voorbeeld en de documentatie helder hoe de Authorization Code Flow precies werkt (zie <a href="https://developer.spotify.com/documentation/general/guides/authorization/code-flow/">https://developer.spotify.com/documentation/general/guides/authorization/code-flow/</a>) en dit is ook precies de flow die in het NL Profiel wordt gebruikt. Het gedetailleerde schema wat Spotify gebruikt om de flow toe te lichten is als volgt:</p>
<p>Zowel de webclient van Spotify als de client applicatie of app gebruiken dezelfde API om resources op te vragen. De "Coursera basis training met Postman" die in de <a href="#Referenties">Referenties</a> wordt genoemd legt uit hoe je deze flow kan naspelen met als client de testtooling van Postman. De Coursera training is met name interessant om verdere kennis op te doen. De training is gebaseerd op Postman als client en gebruikt Spotify als server om tegen aan te praten. Hiervoor log je in op <a href="https://developer.spotify.com/">https://developer.spotify.com/</a> en maak je een App aan in het dashboard. In het voorbeeld is Spotify zowel de Authorization Server als de Resource server. Spotify beschrijft in het voorbeeld en de documentatie helder hoe de Authorization Code Flow precies werkt (zie <a href="https://developer.spotify.com/documentation/general/guides/authorization/code-flow/">https://developer.spotify.com/documentation/general/guides/authorization/code-flow/</a>) en dit is ook precies de flow die in het NL Profiel wordt gebruikt. Het gedetailleerde schema wat Spotify gebruikt om de flow toe te lichten is als volgt:</p>
<p><img src="./media/spotify.png" alt="Spotify_Authorization_code_flow"></p>
<div class="header-wrapper"><h2 id="architectuur">Architectuur</h2><a class="self-link" href="#oauth-de-basis" aria-label="Permalink for this Section"></a></div>
<p>De kern van OAuth is uiteraard het scheiden van de Authorization Server van de Resource Server en deze onafhankelijk te maken van de gebruikte client. Dit blijkt mooi uit bovenstaande flow en voorbeeld. Belangrijkste implicatie voor de architectuur is daarmee dan ook dat voor een dergelijke oplossing waarbij OAuth wordt toegepast de user niet alleen een client en een resource server wordt aangeboden, maar ook een authorization server (drie autonome architectural building blocks). Dit kan een authorization server zijn van de organisatie zelf, zoals in het voorbeeld, maar ook een authorization server van een derde partij zoals in de context al wordt gesuggereerd en zoals je kan zien in het inlogscherm van Spotify waarbij je ook kan registreren met Facebook, Apple of Google. In de context van de Nederlandse overheidsarchitectuur is het dus van belang bij een solution architectuur voor een voorziening goed na te gaan en documenteren welke partijen worden voorzien in de genoemde building blocks. Zie ook het theme IAM en API van de Nora en uiteraard de genoemde standaarden zoals gepubliceerd door Logius en het Forum Standaardisatie.</p>
Expand Down
Loading

0 comments on commit bd14702

Please sign in to comment.