Dit artikel is gebaseerd op onderzoek van de broncode (de branch
1.x). Officiële documentatie bestaat nog niet en de package is nog niet officieel uitgebracht (per april 2026).Wat is Sentinel
Laravel Sentinel is een security-middleware-package die de toegang tot routes drivergebaseerd regelt. De package is ontwikkeld door Taylor Otwell en Mior Muhammad Zaki en ondersteunt PHP ^8.0 / Laravel 8 t/m 13. De belangrijkste toepassing is het beschermen van routes voor beheertools zoals Telescope, Horizon en Pulse. Door simpelweg deSentinelMiddleware op een route toe te passen, wordt de toegang gecontroleerd met de autorisatielogica die de driver definieert.
Vergelijking met de traditionele aanpak
Telescope en Horizon hadden elk een eigen autorisatiemechanisme op basis van eengate.
Installatie
SentinelServiceProvider is geregistreerd in extra.laravel.providers van composer.json, wordt de serviceprovider automatisch gedetecteerd. Het publiceren van extra configuratiebestanden is niet nodig.
De architectuur van de package
Gedrag van de standaarddriver (de Laravel-driver)
De standaardLaravel-driver voert alleen in de lokale omgeving (APP_ENV=local) controles uit.
Privé-IP’s herkennen
De methodeisPrivateIp() van de basisklasse Driver gebruikt Symfony’s IpUtils en beschouwt de volgende IP-reeksen als privé-IP’s.
Een lokale Docker-omgeving detecteren
REMOTE_ADDR gelijk is aan 127.0.0.1 én er een .dockerenv-bestand in de projectroot bestaat, wordt dit als een lokale Docker-omgeving beschouwd.
Gebruiken als middleware
Basisgebruik
Een driver opgeven
Je kunt een drivernaam meegeven als middleware-argument. Geef je een niet-bestaande drivernaam op, dan valt de package terug op de standaarddriver (het gedrag vandriverOrFallback()).
De implementatie van de middleware
authorize() false terug, dan wordt de request afgebroken met HTTP 401. Met Driver::authorizeOrFail() kun je ook een AuthorizationException laten gooien (de middleware zelf gebruikt die niet).
Een custom driver maken
Je maakt een custom driver door de abstracte klasseDriver te extenden en de methode authorize() te implementeren.
extend() bijvoorbeeld in AppServiceProvider::boot().
De utilitymethodes van de basisklasse benutten
De klasseDriver biedt handige methodes zoals IP-controles, die je vrij kunt gebruiken vanuit je custom driver.
Hoe SentinelManager werkt
SentinelManager extendt Illuminate\Support\Manager. Manager is de basisklasse van Laravel voor het implementeren van het driverpatroon; via driver() worden driverinstanties opgelost en gecachet.
driverOrFallback() stilletjes terugvalt op de standaarddriver wanneer de opgegeven driver niet wordt gevonden, levert een niet-bestaande drivernaam als middleware-argument geen fout op.
SentinelManager wordt door de SentinelServiceProvider geregistreerd als scoped singleton (scoped), zodat de driverinstantie binnen één request wordt hergebruikt.
Samenvatting
laravel/sentinel is een kleine package, maar dankzij het driverpatroon op basis van Illuminate\Support\Manager is hij zeer goed uitbreidbaar.
De standaard
Laravel-driver is gespecialiseerd in het blokkeren van toegang via tunnelingdiensten tijdens lokale ontwikkeling; voor bescherming in productie moet je een eigen custom driver maken. Zodra de officiële documentatie er is, zullen concretere gebruikspatronen duidelijk worden.
laravel/sentinel repository
De broncode en de nieuwste wijzigingen vind je in de branch
1.x op GitHub.