Ronald Kerssies | Jan 7, 2023

API-rbac PHP

Voorkennis
  • programmeer-basics, functions, OOP, MVC-frameworks, API, git
  • API-toepassen, json
Doel
  • gebruik tokens en roll based access control (rbac)
PHP Logo C# Logo

Taken: Voer de code uit volgens “best practice” en eerder geleerde technieken. Deze opdrachten moet met een professioneel M*C-framework worden uitgevoerd, zoals:


Creating your own API-service with RBAC  api

Alle request worden getest met een API-testtool, zoals Postman postman, bekijk eventueeel de Postman-les


  1. Maak een API-server in een framework met de volgende werking;
  • inloggen en een token ontvangen voor gebruik in de front-end door inloggegevens te sturen naar een API-url
  • begrip SSL vereiste voor het gebruik van tokens
  • refresh token op verzoek van een API-url
  • een token verloopt na een geconfigureerde tijdsduur (config-file)
  • API-verzoeken gebaseerd op de juiste authenticatie
  • incorrecte permissies geven een 403 in json
  • foutive API-url's geven een 404-response in json

    In het framework zijn de volgende technische eigenschappen toegepast:
  • token-functionaliteit

  1. Maak een API-server in een framework met de volgende werking;
  • rollen gebruik
  • er zijn meerdere verschillende permissies/abilities per rol mogelijk
  • API-verzoeken geven json-response gebaseerd op autorisatie uitgevoerd op de geldende permissies
  • incorrecte permissies geven een 403 in json

De API-applicatie bevat is o.a. :

  • een token waarmee de rol (en de verleende permissies) worden vastgesteld
  • response-data wordt teruggestuurd afhankelijk van de rol (of permissies)
  • eenduidige foutmelding met status, een tekstmelding en gesubmitte waarden in json, als de rol (of permissies) van de gebruiker-token INCORRECT zijn
Op te leveren
  • een uitbreiding op een basis REST API-applicatie met;
    • alle request kunnen alleen worden uitgevoerd met een valide token
    • API-request kunnen alleen worden uitgevoerd met een valide token
    • foutive tokens leveren een 403 in json
    • dat API-request alleen kunnen worden uitgevoerd als het token aan een gebruiker is gekoppeld met de juiste permissies
    • tokens zijn gekoppeld met een gebruiker die (meerdere) rollen mogen hebben
    • rollen zijn dynamisch gekoppeld aan één of meerdere permissies/abilities (bijv. via relaties in een database)
    • alle request kunnen worden getest in Postman