Nederlands
  • authz
  • authn
  • concept

Wat is AuthZ (Autorisatie)?

Ontdek de definitie van AuthZ, AuthN vs AuthZ, hoe AuthZ werkt en autorisatie best practices.

Guamian
Guamian
Product & Design

Wat is AuthZ en hoe verschilt het van AuthN?

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.

Hoe werkt AuthZ?

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:

  1. Start authenticatie: De gebruiker logt in door een identifier en methode te selecteren, zoals het gebruik van een e-mail en wachtwoord.
  2. Autorisatieverzoek: Na het inloggen vraagt de gebruiker toegang tot een bron aan, inclusief details zoals hun gebruikers-ID en rollen.
  3. Toegangscontrolevalidatie: Het systeem controleert het verzoek aan de hand van vooraf gedefinieerde autorisatiebeleidsregels, zoals rol-gebaseerde of attribuut-gebaseerde regels.
  4. Autorisatiebeslissing: Het systeem beslist of toegang wordt verleend of geweigerd op basis van de beleidsregels en permissies.

Om de OAuth 2.0 autorisatieverzoekstroom in detail te begrijpen, bekijk de autorisatieverzoek

Wat zijn de autorisatietypen?

Rol-gebaseerde toegangscontrole en hoe het werkt

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:

  1. Subjecten: Dit kunnen gebruikers zijn of niet-menselijke entiteiten, zoals een gebruiker of machine-to-machine applicatie.
  2. Rollen: Vertegenwoordigen werkfuncties of verantwoordelijkheden, bv. beheerder lid
  3. Permissies: Specificeer welke acties zijn toegestaan op specifieke bronnen, bv. lezen: bestelling.

RBAC-diagram.png

Attribuut-gebaseerde toegangscontrole en hoe het werkt

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:

  1. Gebruikersattributen: Rol (bv. “Manager,” “Engineer”), locatie (bv. “VS,” “Europa”).
  2. Bronattributen: Documenttype (bv. “Financieel rapport,” “Ontwerpbestand”), classificatieniveau (bv. “Vertrouwelijk”).
  3. Omgevingsattributen: Toegangstijd (bv. “Tijdens werkuren”), apparaattype (bv. “Bedrijfscomputer”).

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.

AuthZ gebruiksscenario's en voorbeelden

B2C-software

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 multi-tenant app

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 autorisatie

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.

Wat zijn de best practices voor AuthZ?

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.

Wat zijn de verschillen tussen AuthZ (Autorisatie) vs Auth (Authenticatie)?

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.

Bouw AuthZ (Autorisatie) met Logto

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.