3. Toegangscontrole

Beveiligingsmethodes

De toegang tot Drupal webpagina’s kan je op verschillende manieren instellen:

  1. Door gebruik te maken van de voorzieningen in Apache. Hiervoor verwijzen we naar de documentatie over .htaccess bestanden die bij Apache hoort.

  2. Door gebruik te maken van de ingebouwde Drupal „gebruikers” module, waar je per gebruikerscategorie rollen kan aanmaken, waarin bepaald wordt wie welke acties mag uitvoeren op de site.

  3. Door gebruik te maken van de ingebouwde Drupal „toegang tot de inhoud” module, waarmee je op basis van gebruikersnaam, E-mail adres of hostnaam kan instellen wie al dan niet toegang heeft tot de site.

  4. Door gebruik te maken van de ingebouwde Drupal „categorieën” module (in het Engels: „taxonomy”), waarmee je pagina’s kan categorizeren en op basis van bepaalde trefwoorden de toegang ertoe kan regelen.

Gebruikers en rollen

Geauthenticeerde gebruikers vs. anoniempje

Sowieso kan je zelfs zonder speciale configuraties instellen waar de rechten van geauthenticeerde gebruikers verschillen van die van anonieme gebruikers. Om instellingen te maken, neem je:

  • Drupal 5.x: BeherenGebruikersbeheerToegang tot de inhoud.

  • Oudere versies: Administreertoegang tot inhoudtoegangsrechten

Je krijgt voor elke versie een gelijkaardig overzicht:

Figuur 3.1. Toegangsrechten per gebruikerscategorie

3 kolommen: modulefunctionaliteit, anonieme gebruiker, geauthenticeerde gebruiker; laatste twee kolommen bevatten vakjes om aan te vinken.

Hiermee kan je dus per module de functionaliteit(en) toegankelijk maken of blokkeren voor anonieme en/of geauthenticeerde gebruikers. Wil je bijvoorbeeld dat een anonieme gebruiker commentaren kan posten nadat die door een moderator zijn goedgekeurd, vink dan het vakje „post comments” aan in de kolom „anonymous”.

[Tip] Nieuwe modules

Kijk deze sectie na, telkens je een nieuwe module hebt toegevoegd. Het kan namelijk goed zijn dat er standaard andere regels gelden voor de module, dan wat je in gedachten had, of dat de toegang tot de module geactiveerd moet worden.

Rollen

Een rol toevoegen

Door middel van rollen kan je de gebruikers van je site indelen in groepen. Elke rol (groep van gebruikers) komt als extra kolom in het toegansrechtenoverzicht te staan (in ons voorbeeld hierboven: de kolom „testrol”). Op die manier kan je een fijnere granulatie van de toegangsrechten bekomen. Een voorbeeld: stel dat je een webmaster bent die sites maakt voor derden. Dan wil je natuurlijk taken gaan delegeren. Je kan dan bijvoorbeeld een groep van moderators aanmaken, die als taak hebben het goedkeuren of verwerpen van commentaren bij pagina’s op de site, het algemeen beheer van commentaren en misschien zelfs ook het uitsluiten van vervelende gebruikers. Hiervoor maak je een rol aan:

  • Drupal 5.0: BeherenGebruikersbeheerRollen: vul de naam van de rol in en klik op de knop Rol toevoegen. Je kan nu ofwel „toegangsrechten bewerken” klikken, ofwel teruggaan naar BeherenGebruikersbeheerToegang tot de inhoud om de nodige toegangsrechten te verlenen.

  • Oudere versies: Administreertoegang tot de inhoudrollen: vul de naam van de nieuwe rol in en druk op de knop Rol toevoegen. Klik nu „bewerken” naast de nieuwe rol of ga terug naar Administreertoegang tot inhoudtoegangsrechten om de gewenste rechten toe te kennen aan deze groep van gebruikers.

Een rol aan een gebruiker koppelen

Er rest nu nog de groepen te bevolken met gebruikers. Dit gaat als volgt:

  • Drupal 5.0: BeherenGebruikersbeheerGebruikers: Zoek de gebruiker aan wie je een bepaalde rol wilt toekennen, hetzij door te zoeken op bepaalde criteria, hetzij door de gebruiker in de lijst onderaan te localizeren. Klik „bewerken” om de eigenschappen van deze gebruiker te bewerken. In het eerste vak onder de hoofding „Account-informatie” vind je in de sectie „Rollen” een overzicht van de bestaande rollen. Vink het vakje aan naast elke rol die je aan deze gebruiker wilt toekennen.

  • Oudere versies: Administreergebruikers en klik „bewerken” naast de naam van de gebruiker aan wie je een rol wilt toekennen. Vink de vakjes aan van de rollen die je wilt toekennen in de sectie „Rollen” van de hoofding „Account-infomatie”.

[Let op] Combinatie van rollen

De gebruikers krijgen de som van alle rechten die aan individuele rollen zijn toegekend, en dus niet enkel deze rechten die de rollen gemeen hebben.

[Tip] Indelen in groepen

In grotere organizaties kan het nuttig zijn om voor de indeling van je gebruikers een voorbeeld te nemen aan reeds bestaande groepen, bijvoorbeeld zoals je die kan vinden in een directory management systeem als LDAP of Active Directory.

Toegangsregels

Een standaard Drupal installatie laat je toe om toegangsregels op te stellen op basis van volgende criteria:

  • Gebruikersnaam: gebruikers aan wie je de toegang weigert, kunnen niet meer aanmelden. Ze kunnen natuurlijk nog wel alles wat anonieme gebruikers kunnen.

  • E-mail adres: idem maar dan op basis van het E-mail adres.

  • Hostnaam, dit laatste is handig als je last hebt van anonieme gebruikers.

[Waarschuwing] Bestaande sessies

Lopende sessies worden niet afgebroken wanneer je toegangsregels verandert in de administratieve interface. Er is een functie sess_destroy_uid, maar het gebruik daarvan laten we over aan PHP experts.

Om een nieuwe toegangsregel aan te maken, ga je als volgt tewerk:

  • Drupal 5.0: BeherenGebruikersbeheerToegangsregels en klik „Regel toevoegen”.

  • Oudere versies: Administreertoegang tot de inhoudtoegangsregels en klik „regel toevoegen”.

Vervolgens duid je aan:

  • Of het gaat om een toelating of een weigering;

  • Of het gaat om een gebruikersnaam, E-mail adres of hostnaam;

  • Een masker: (deel van) de gebruikersnaam, het E-mail adres, de machinenaam of het IP adres dat je wilt toelaten of blokkeren.

Klik vervolgens op Regel toevoegen.

Categorieën

Wat zijn categorieën?

De ingebouwde „categorieën” module (Engels: „taxonomy”) zorgt ervoor dat je de pagina’s van je website kan classificeren volgens inhoud. Je kan verschillende inhoudscategorieën aanmaken en zelfs per categorie verdere indelingen maken. Dit maakt het makkelijk om pagina’s te zoeken op basis van zoektermen, zelfs voor externe zoekmachines zoals Google. Elke pagina kan ook aan meerdere zoektermen gekoppeld worden.

De specifieke termen die in dit verband gebruikt worden zijn:

  • woordenschat of vocabulary: hoogste indelingsniveau, bijvoorbeeld: „klanten” en „medewerkers”.

  • termen: verdere onderverdeling van een woordenschat, bijvoorbeeld in de groep „medewerkers” zijn er „interne medewerkers” en „externe medewerkers”. Je kan naar wens verschillende niveaus van termen aanmaken en zo een hele hiërarchische indeling van je web pagina’s bekomen.

[Tip] Eerst de indeling, dan de inhoud

Als het enigszins kan, denk dan van tevoren na over hoe je de inhoud van je website zal indelen. Het is makkelijker om een pagina meteen bij het aanmaken in een of meerdere „categorieën” in te delen, dan ze achteraf allemaal te moeten bewerken.

Om een woordenschat met bijhorende termen aan te maken, volg je de raadgevingen als volgt:

  • Drupal 5.0: ga naar BeherenInhoudelijk beheerCategorieën en klik het tabblad „Woordenschat toevoegen”.

  • Oudere versies: ga naar Administreercategorieënwoordenschat toevoegen.

toegangscontrole op basis van inhoud

Eens je een woordenschathiërarchie hebt uitgewerkt en elke categorie met termen bevolkt hebt, kan je een extra module inschakelen om op basis van de classificatie van je web pagina’s gebruikers toegang te geven. Er zijn twee modules die in aanmerking komen:

Hoe je de modules precies gebruikt, wordt uitgelegd in de meegeleverde README bestanden.

[Opmerking] Nog fijnere toegangscontrole

Wil je echt per pagina bepalen wie toegang heeft, dan kan je een beroep doen op de nodeaccess module.

[Let op] Meerdere systemen

Wil je meerdere toegangscontrolesystemen combineren, test dan altijd eerst uitgebreid of ze wel compatibel zijn. Dit wordt namelijk niet altijd gegarandeerd.

randomness