Wat is AuthZ (Autorisatie)?
Ontdek de definitie van AuthZ, AuthN vs AuthZ, hoe AuthZ werkt en autorisatie best practices.
Ontdek de definitie van AuthZ, AuthN vs AuthZ, hoe AuthZ werkt en autorisatie best practices.
AuthZ is de afkorting van autorisatie. Autorisatie is een afzonderlijk mechanisme van authenticatie. Terwijl authenticatie identificeert wie je bent, bepaalt autorisatie of je toegang hebt tot specifieke bronnen en welke acties je daarop kunt uitvoeren.
In voorbeelden uit de echte wereld kunnen bronnen software, systemen, documenten, bestellingen en activa omvatten. Autorisatie voegt een extra laag van controle toe, die bepaalt wie toegang heeft tot deze bronnen en onder welke voorwaarden.
Autorisatie is gescheiden van authenticatie maar is er vaak mee verbonden. Standaardprotocollen zoals OAuth 2.0, OIDC en SAML bevatten bijvoorbeeld token-gebaseerde autorisatiemechanismen.
In een token-gebaseerd autorisatiesysteem verleent een autorisatieserver een toegangstoken aan gebruikers. Dit token, dat permissies bevat, bepaalt of de gebruiker toegang heeft tot bepaalde bronnen.
Permissies direct aan gebruikers toekennen kan inefficiënt zijn, vooral wanneer meer gedetailleerde voorwaarden vereist zijn. Toegang kan bijvoorbeeld afhankelijk zijn van specifieke omstandigheden, zoals de locatie van de gebruiker, waardoor toegangscontrolebeleid nodig is voor beter permissiebeheer.
Dit is een stapsgewijze hoog-niveauweergave van hoe autorisatie werkt:
Om de OAuth 2.0 autorisatieverzoekstroom in detail te begrijpen, bekijk de autorisatieverzoek
Rol-gebaseerde toegangscontrole (RBAC) gebruikt rollen om toegang te beheren. Elke gebruiker krijgt een of meer vooraf gedefinieerde rollen toegewezen, en elke rol omvat een reeks permissies. Het sleutelbegrip van RBAC is het begrijpen van de relatie tussen subjecten (of gebruikers), rollen en permissies.
Om te begrijpen hoe rol-gebaseerde toegangscontrole (RBAC) werkt, moet je weten over:
gebruiker of machine-to-machine applicatie.beheerder lidlezen: bestelling.
Attribuut-gebaseerde toegangscontrole (ABAC) wordt veel gebruikt in autorisatie en ondersteunt complexere scenario's door gebruik te maken van specifieke attributen van een entiteit, buiten alleen rollen.
Bijvoorbeeld, een bedrijf beheert een wereldwijd documentdeelplatvorm waar werknemers gecontroleerde toegang nodig hebben tot gevoelige bestanden op basis van hun functierol, locatie en het classificatieniveau van het document.
De attributen kunnen als volgt worden ontworpen:
Er zijn ook andere toegangscontrolemodellen zoals beleid-gebaseerde toegangscontrole (PBAC). Elk model heeft zijn sterke en zwakke punten en de keuze van het model hangt af van uw use case en vereisten.
B2C-software vereist vaak specifieke rollen op basis van de bedrijfsbehoeften. Bijvoorbeeld, een boekwinkelbeheerapp kan rollen omvatten met verschillende verantwoordelijkheden, zoals het beheren van bronnen en diensten.
B2B-apps gebruiken vaak een multi-tenant architectuur, waarbij elke tenant een organisatie vertegenwoordigt. Binnen de organisatie zijn rollen zoals beheerder en lid nodig. Hier speelt Autorisatie (AuthZ) een sleutelrol in het beheren van gebruikers op organisatieniveau, vaak met gebruik van Rol-gebaseerde Toegangscontrole (RBAC).
Machine-to-machine communicatie vindt direct plaats tussen diensten zonder menselijke interactie. Bijvoorbeeld, API-diensten aanroepen. Het omvat vaak tokens (bv. OAuth 2.0 toegangstokens) om veilige, dynamische en gedetailleerde toegang te waarborgen.
Hier zijn enkele best practices voor autorisatie (authZ) om veilige en effectieve toegangscontrole te waarborgen:
Principe van minste privilege
Dit zorgt ervoor dat het risico van ongeautoriseerde toegang of schade door gecompromitteerde accounts wordt geminimaliseerd. Gebruikers en systemen moeten alleen toegang hebben tot de bronnen en acties die nodig zijn voor hun rol.
Gebruik token-gebaseerde autorisatie
Token-gebaseerde toegangscontrole biedt meer flexibiliteit en gedetailleerde controle, terwijl wordt voldaan aan open standaarden. Gebruik veilige tokens (bv. OAuth 2.0, JWT's) om tijdgevoelige en beperkte toegang te verlenen.
Regelmatig controleren en monitoren
Regelmatig toegangslogboeken en autorisatiebeleidsregels bekijken is noodzakelijk om anomalieën of verouderde permissies te detecteren.
Toepassen scheiding van taken
Begin met het implementeren van gedetailleerde permissies, zoals het definiëren van specifieke acties en bronnen (bv. lezen, schrijven, verwijderen). Bij het creëren van rollen, gebruik duidelijke rolnamen en handhaaf scheiding van taken om het risico van fraude of fouten door een enkele gebruiker te minimaliseren.
Ondersteun multi-tenancy (indien van toepassing)
Voor multi-tenant systemen is tenant-isolatie belangrijk. Door dit te combineren met rol-gebaseerde toegangscontrole, kun je scheiding van data bronnen bereiken, waardoor de juiste rollen alleen toegang hebben tot bronnen binnen hun tenant. Dit voorkomt onbedoelde of kwaadwillige toegang tot bronnen van andere tenants.
Dynamisch toegang intrekken
Zorg ervoor dat bij het ontwerpen van je AuthZ-systeem, permissies onmiddellijk kunnen worden bijgewerkt of ingetrokken als de omstandigheden veranderen (bv. rolupdates of beëindiging van werk). Dit kan worden bereikt door dynamische API-controles, webhooks of andere methoden. Het doel is ongeautoriseerde toegang in real-time te voorkomen.
Het verschil tussen authenticatie en autorisatie ligt in hun doel en proces binnen identiteits- en toegangsbeheer.
AuthN (Authenticatie) beantwoordt de vraag: “Wie ben je en welke identiteit bezit je?” Het is het proces van het verifiëren van de identiteit van een gebruiker, dienst of apparaat. Authenticatie zorgt ervoor dat de entiteit die toegang probeert te krijgen tot een systeem of bron echt is. Algemene methoden omvatten wachtwoorden, biometrie en tweefactorauthenticatie (2FA). Bijvoorbeeld, wanneer je inlogt op een account met je e-mail en wachtwoord, bevestigt het systeem je identiteit via authenticatie.
AuthZ (Autorisatie) beantwoordt de vraag: “Wat mag je doen?” Het is het proces van het verlenen of weigeren van toegang tot bronnen op basis van de permissies of rollen van de gebruiker. Autorisatie vindt plaats na authenticatie en bepaalt welke acties de geauthenticeerde gebruiker kan uitvoeren. Bijvoorbeeld, na het inloggen kan een beheerder gebruiker toegang hebben om instellingen te wijzigen, terwijl een reguliere gebruiker ze alleen kan bekijken.
Samengevat, AuthN (authenticatie) bevestigt de identiteit, terwijl AuthZ (autorisatie) toegang definieert. Authenticatie gebeurt eerst, gevolgd door autorisatie om veilig en passend gebruik van bronnen te waarborgen.
Logto Cloud biedt belangrijke autorisatiediensten op basis van open-standaardprotocollen zoals OIDC, OAuth 2.0 en SAML. Functies omvatten Rol-gebaseerde Toegangscontrole, Organisaties (Multi-Tenancy), en Aangepaste Token Claims om te voldoen aan je autorisatiebehoeften vanuit verschillende perspectieven.