""" Handleidingen die PIVOT meelevert. Bij het opstarten komt elke handleiding waarvan de slug nog niet bestaat in de tabel Handleidingen. Daarna pas je ze aan in PIVOT zelf (📘 Handleidingen › Bewerken); wijzigingen hier overschrijven niets. Een verwijderde handleiding blijft verborgen (Zichtbaar = 'weg') en komt dus niet terug. """ TWEESTAPS_UITZONDERING = """

Met deze handleiding stel je in Google Admin alles in zodat PIVOT iemand tijdelijk zonder 2FA (tot 23:59 dezelfde dag) kan laten inloggen (uitzondering) en 2FA kan resetten bij een nieuwe telefoon. Je doet dit één keer per domein; daarna enkel opnieuw als er een organisatie-eenheid (OU) bijkomt.

Hoe werkt het? PIVOT zet een gebruiker in de groep 2fa-uitzondering. Voor die groep staat "Afdwingen" op Uit. Zolang de gebruiker in de groep zit, mag hij zonder 2FA inloggen. Om 23:59 dezelfde dag haalt PIVOT hem er automatisch weer uit.

Stap 1 – De groep aanmaken

  1. Ga naar admin.google.com › Directory › Groepen › Groep maken.
  2. Naam: 2fa-uitzondering, e-mailadres: 2fa-uitzondering@jouwdomein.be.
  3. Bij de instellingen van de groep:
  4. Voeg zelf geen vaste leden toe. PIVOT voegt mensen toe en haalt ze er weer uit.

Stap 2 – 2FA uitzetten voor de groep, in élke OU waar 2FA verplicht is

Let op: een 2FA-instelling op een onderliggende OU gaat altijd vóór een groepsinstelling hoger in de boom. Stel de groep daarom in bij elke OU waar 2FA afgedwongen wordt, ook bij sub-OU's.
  1. Ga naar Beveiliging › Authenticatie › Verificatie in 2 stappen (2-Step Verification).
  2. Kies links onder Organisatie-eenheden de OU, bv. GO-Antwerpen. Klap met het pijltje open om sub-OU's te zien.
  3. Klik links onderaan bij Groepen op de groep 2fa-uitzondering (of voeg ze toe via "Groepen zoeken"). Bovenaan moet nu staan: "Instellingen tonen voor gebruikers in [jouw OU] (organisatie-eenheid) die zich ook in 2fa-uitzondering (groep) bevinden".
  4. Laat Gebruikers toestaan tweestapsverificatie aan te zetten aangevinkt.
  5. Zet Afdwingen op Uit.
  6. Klik op Overschrijven (of Opslaan). Onder "Verificatie" moet nu Overschreven staan, niet "Overgenomen".
  7. Herhaal stap 2 tot 6 voor elke OU en sub-OU waar 2FA op Aan staat.
Tip: per OU kan je maar één groep instellen. Gebruik daarom overal dezelfde groep 2fa-uitzondering.

Stap 3 – Rechten voor PIVOT (domeinbrede delegatie)

  1. Ga naar Beveiliging › Toegangs- en gegevensbeheer › API-beheer › Domeinbrede delegatie beheren.
  2. Klik bij het service-account van PIVOT op Bewerken.
  3. Controleer dat minstens deze scopes erbij staan (in het veld gescheiden door komma's):
  4. Klik op Autoriseren. Het kan enkele minuten duren voor Google dit toepast.

Stap 4 – De groep invullen in PIVOT

  1. Open in PIVOT 🔌 Koppelingen van deze school › 🛡️ 2FA-hulp.
  2. Vul bij Uitzonderingsgroep het e-mailadres van de groep in: 2fa-uitzondering@jouwdomein.be.
  3. Opslaan en Testen.

Stap 5 – Testen met een testaccount

  1. Geef in PIVOT (🛡️ 2FA-hulp) een testgebruiker een tijdelijke uitzondering (loopt tot 23:59).
  2. Kijk in Google Admin bij Gebruikers › [testgebruiker] › Groepen: 2fa-uitzondering moet in de lijst staan.
  3. Kijk bij Gebruikers › [testgebruiker] › Beveiliging › Tweestapsverificatie. Zolang daar "Afgedwongen in uw hele organisatie" staat, heeft Google de uitzondering nog niet toegepast.
Geduld: Google past een nieuwe groepsinstelling meestal binnen enkele minuten toe, maar het kan tot 24 uur duren, zeker bij een nieuwe groep of een nieuw account. PIVOT blijft een 2FA-reset elke minuut opnieuw proberen zolang de uitzondering loopt.

Iemand heeft een nieuwe telefoon

Gebruik eerst een back-upcode: die werkt meteen, ook als 2FA afgedwongen wordt.

  1. PIVOT: 🛡️ 2FA-hulp › zoek de gebruiker › Back-upcodes tonen / aanmaken (of in Google Admin: Gebruikers › gebruiker › Beveiliging › Tweestapsverificatie › Back-upverificatiecodes ophalen).
  2. Geef de gebruiker één code. Hij logt in met zijn wachtwoord en die code.
  3. Daarna koppelt hij zijn nieuwe telefoon via myaccount.google.com › Beveiliging › Verificatie in 2 stappen.

Lukt dat niet, gebruik dan in PIVOT 📵 2FA resetten. PIVOT zet de gebruiker dan in de uitzonderingsgroep en zet 2FA uit zodra Google de uitzondering toepast.

Problemen oplossen

Wat zie je?OorzaakOplossing
Gebruiker zit in de groep, maar 2FA blijft "Afgedwongen" De gebruiker staat in een (sub-)OU waar de groep niet ingesteld is, of Google past de instelling nog toe. Controleer de OU van de gebruiker (Gebruikers › gebruiker, links onder "Organisatie-eenheid") en voer stap 2 uit voor precies die OU. Wacht anders tot 24 uur.
"2-Step Verification cannot be turned off: … enforced" Google dwingt 2FA nog af voor deze gebruiker. Zie hierboven. PIVOT probeert automatisch opnieuw.
"Google weigert de toegang" / unauthorized_client Een scope ontbreekt.Stap 3.
"Gebruiker of groep niet gevonden" Het e-mailadres van de groep in PIVOT klopt niet.Stap 4.
""" MAIL_DELEGATIE = """

Met deze handleiding stel je Google Admin zo in dat PIVOT (✉️ Mailbox-delegatie) iemand toegang kan geven tot de mailbox van iemand anders, bv. het secretariaat tot de mailbox van de directie. De gedelegeerde kan dan lezen, versturen en verwijderen namens de eigenaar, maar kent het wachtwoord niet en kan de instellingen niet wijzigen.

Stap 1 – Maildelegatie toelaten

  1. Ga naar admin.google.com › Apps › Google Workspace › Gmail › Gebruikersinstellingen.
  2. Kies links de organisatie-eenheid van de mailboxen die gedeeld moeten worden (bv. GO-Antwerpen). Kies de hoogste OU als het voor iedereen mag; sub-OU's nemen de instelling over, tenzij ze ze zelf overschrijven.
  3. Open het onderdeel Maildelegatie (Mail delegation).
  4. Vink aan: Gebruikers toestaan toegang tot hun mailbox te delegeren aan andere gebruikers in het domein.
  5. Kies hoe verzonden mails getoond worden:
  6. Klik op Opslaan.
Let op: staat maildelegatie in een sub-OU op "Overschreven" en uit, dan werkt delegatie daar niet, ook al staat ze hoger in de boom aan. Controleer de OU van de mailbox-eigenaar.

Stap 2 – Gmail API aanzetten (eenmalig)

  1. Ga naar console.cloud.google.com › API's › Gmail API.
  2. Kies bovenaan het project van het PIVOT-service-account.
  3. Klik op Inschakelen (staat er "Beheren", dan is het al aan).

Stap 3 – Rechten voor PIVOT (domeinbrede delegatie)

  1. Ga in Google Admin naar Beveiliging › Toegangs- en gegevensbeheer › API-beheer › Domeinbrede delegatie beheren.
  2. Klik bij het service-account van PIVOT op Bewerken.
  3. Voeg deze twee scopes toe aan de bestaande lijst (gescheiden door komma's; verwijder de andere niet):
  4. Klik op Autoriseren.
Tip: ontbreekt gmail.settings.basic, dan kan PIVOT wel delegaties toevoegen maar de lijst niet tonen ("insufficient authentication scopes").

Stap 4 – Rechten in PIVOT

  1. Geef wie delegaties mag beheren het recht Mailbox-delegatie in de juiste school (⚙️ Beheer › 🔐 Gebruikers & rechten › 🔐 Rechten).
  2. Test in ✉️ Mailbox-delegatie met twee testaccounts: geef account B toegang tot de mailbox van account A.

Goed om te weten

Problemen oplossen

Wat zie je?OorzaakOplossing
"insufficient authentication scopes" bij het tonengmail.settings.basic ontbreekt.Stap 3.
"unauthorized_client" / Google weigert de toeganggmail.settings.sharing ontbreekt of is nog niet toegepast. Stap 3, en enkele minuten wachten.
Gmail API has not been used / is disabledGmail API staat uit in het Cloud-project.Stap 2.
Toevoegen mislukt voor één persoon, voor anderen lukt het Maildelegatie staat uit in de OU van die mailbox-eigenaar, of er zijn al 25 gedelegeerden.Stap 1 voor die OU.
Gedelegeerde ziet de mailbox nietNog niet toegepast, of hij kijkt niet via zijn profielfoto. Even wachten, opnieuw inloggen in Gmail.
""" GOOGLE_KOPPELING = """

PIVOT praat met Google via een serviceaccount: een technisch account in Google Cloud dat namens een beheerder (bv. ict@school.be) handelt. Daarvoor zijn er drie plaatsen: Google Cloud Console (project, API's, serviceaccount, sleutel), Google Admin (domeinbrede delegatie) en PIVOT (sleutel uploaden). Optioneel stel je ook Inloggen met Google in.

Wie? Je hebt een account nodig dat in Google Cloud projecten mag aanmaken en in Google Admin superbeheerder is. Je doet dit één keer; meerdere scholen in hetzelfde Google-domein mogen dezelfde sleutel gebruiken.

Stap 1 – Project aanmaken

  1. Ga naar console.cloud.google.com en log in met je beheerdersaccount.
  2. Klik bovenaan op de projectkiezer › Nieuw project.
  3. Naam: bv. PIVOT. Organisatie: jullie domein. Klik op Maken.
  4. Controleer bovenaan dat het nieuwe project gekozen is voor je verder gaat.

Stap 2 – API's inschakelen

Ga naar API's en services › Bibliotheek, zoek elke API en klik op Inschakelen:

APINodig voor
Admin SDK APIGebruikers, wachtwoorden, OU's, Chromebooks, groepen, 2FA
Gmail APIMailbox-delegatie
Enterprise License Manager APIGoogle-licenties
Groups Settings APIVerzendlijsten: wie mag mailen naar de lijst

Stap 3 – Serviceaccount aanmaken

  1. Ga naar IAM en beheer › Serviceaccounts › Serviceaccount maken.
  2. Naam: bv. pivot. Klik op Maken en doorgaan.
  3. De stappen "Rollen" en "Gebruikerstoegang" laat je leeg (PIVOT werkt via domeinbrede delegatie, niet via Cloud-rollen). Klik op Klaar.
  4. Open het serviceaccount en noteer de Unieke ID (een lang getal, ook "OAuth 2-client-ID" genoemd). Die heb je nodig in stap 5.

Stap 4 – JSON-sleutel maken

  1. Open het serviceaccount › tabblad Sleutels › Sleutel toevoegen › Nieuwe sleutel maken.
  2. Kies JSON › Maken. Het bestand wordt gedownload.
  3. Bewaar het veilig: wie dit bestand heeft, kan alles wat PIVOT kan. Verwijder het van je pc na stap 6.
"Het maken van serviceaccountsleutels is uitgeschakeld"? Nieuwe Google Cloud-organisaties blokkeren sleutels standaard met de organisatiebeleidsregel iam.disableServiceAccountKeyCreation (of iam.managed.disableServiceAccountKeyCreation). Zet ze uit voor enkel dit project:
  1. Geef jezelf op organisatieniveau de rol Beheerder van organisatiebeleid (Organization Policy Administrator) via IAM en beheer › IAM (kies bovenaan de organisatie, niet het project).
  2. Kies bovenaan opnieuw het project PIVOT › IAM en beheer › Organisatiebeleid.
  3. Zoek disableServiceAccountKeyCreation › Beleid beheren › Beleid van bovenliggend item overschrijven › regel toevoegen › Afdwingen: Uit › Beleid instellen.
  4. Wacht enkele minuten (soms tot een uur) en probeer stap 4 opnieuw.

Stap 5 – Domeinbrede delegatie in Google Admin

  1. Ga naar admin.google.com › Beveiliging › Toegangs- en gegevensbeheer › API-beheer › Domeinbrede delegatie beheren.
  2. Klik op Nieuwe toevoegen.
  3. Client-ID: de Unieke ID uit stap 3 (PIVOT toont ze ook na het uploaden van de sleutel).
  4. OAuth-bereiken: plak deze regel in zijn geheel:
    https://www.googleapis.com/auth/admin.directory.user,https://www.googleapis.com/auth/admin.directory.user.security,https://www.googleapis.com/auth/admin.directory.group.member,https://www.googleapis.com/auth/admin.directory.orgunit,https://www.googleapis.com/auth/admin.directory.device.chromeos,https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly,https://www.googleapis.com/auth/admin.directory.device.mobile,https://www.googleapis.com/auth/admin.directory.device.mobile.readonly,https://www.googleapis.com/auth/apps.licensing,https://www.googleapis.com/auth/gmail.settings.sharing,https://www.googleapis.com/auth/gmail.settings.basic,https://www.googleapis.com/auth/admin.directory.group,https://www.googleapis.com/auth/apps.groups.settings,https://www.googleapis.com/auth/gmail.modify,https://www.googleapis.com/auth/contacts,https://www.googleapis.com/auth/drive
  5. Klik op Autoriseren. Het kan enkele minuten duren voor Google dit toepast.
Scope (zonder https://www.googleapis.com/auth/)Waarvoor in PIVOT
admin.directory.userAccounts aanmaken, wachtwoord resetten, leerlingen
admin.directory.user.security2FA: back-upcodes, 2FA resetten
admin.directory.group.member2FA-uitzonderingsgroep
admin.directory.orgunitOrganisatie-eenheden
admin.directory.device.chromeos (+ .readonly)Chromebooks blokkeren/deblokkeren, opzoeken
admin.directory.device.mobile (+ .readonly)Mobiele toestellen
apps.licensingGoogle-licenties
gmail.settings.sharingMailbox-delegatie toevoegen/verwijderen
gmail.settings.basicMailbox-delegaties tonen, Gmail-handtekeningen instellen
gmail.modifyE-mails met een label kopiëren/verplaatsen naar een andere mailbox
driveGedeelde drives: overzicht, leden en rechten (Google Drive API moet aanstaan)
contactsContactlijsten in de mailboxen van gebruikers (People API moet aanstaan)
Tip: Bestaat er al een regel voor deze client-ID, klik dan op Bewerken en vervang de lijst; anders heb je er twee.

Stap 6 – Sleutel en beheerder instellen in PIVOT

  1. Open in PIVOT 🏫 Alle scholen beheren › de school › Bewerken (of 🔌 Koppelingen van deze school).
  2. Bij Algemeen › Beheerder (Google-admin): het account waarnamens PIVOT werkt, bv. ict@school.be. Dit moet een superbeheerder zijn (of een beheerder met de nodige rechten) in Google Admin.
  3. Bij 🔑 Google Workspace › Serviceaccount (JSON-sleutel): upload het JSON-bestand uit stap 4. PIVOT bewaart het versleuteld en toont daarna het e-mailadres en de client-ID van het serviceaccount.
  4. Opslaan, en daarna op 🩺 Testen klikken. Alles in orde? Verwijder het JSON-bestand van je pc.

Stap 7 (optioneel) – Inloggen met Google

Hiermee loggen leerkrachten en PIVOT-gebruikers in met hun Google-account in plaats van een wachtwoord.

  1. In de Cloud Console (zelfde project): API's en services › OAuth-toestemmingsscherm (in de nieuwe versie: Google Auth Platform › Branding). Kies als doelgroep Intern, app-naam PIVOT, ondersteunings-e-mail en je ontwikkelaarsadres. Opslaan.
  2. Inloggegevens (of Google Auth Platform › Clients) › Inloggegevens maken › OAuth-client-ID.
  3. Type: Webapplicatie, naam PIVOT login.
  4. Bij Geautoriseerde omleidings-URI's: het adres van PIVOT + /callback, bv. https://pivot.school.be/callback. Gebruik je meerdere adressen (per school een eigen hostnaam), voeg ze allemaal toe.
  5. Klik op Maken en kopieer de client-ID en het clientgeheim.
  6. In PIVOT: vul ze in bij de school onder 🔑 Google Workspace › Google-login client-ID / client-secret, of één keer voor alle scholen in config.ini onder [google_sso].

Problemen oplossen

Wat zie je?OorzaakOplossing
unauthorized_client / "Client is unauthorized to retrieve access tokens" Client-ID of scope ontbreekt in de domeinbrede delegatie, of nog niet toegepast. Stap 5 nakijken (juiste Unieke ID, alle scopes), enkele minuten wachten.
"Invalid Input" / "Not Authorized to access this resource" Het beheerdersaccount klopt niet of is geen beheerder.Stap 6, Beheerder (Google-admin).
"<API> has not been used in project … or it is disabled" De API staat niet aan.Stap 2, in het juiste project.
"insufficient authentication scopes"Eén scope ontbreekt (vaak een Gmail-scope).Stap 5.
"redirect_uri_mismatch" bij inloggen met Google Het adres van PIVOT staat niet bij de omleidings-URI's. Stap 7.4: exact hetzelfde adres (https, hostnaam, /callback).
Sleutel maken lukt nietOrganisatiebeleid blokkeert sleutels.Kader bij stap 4.
""" STANDAARD = [ { 'slug': 'google-koppeling-cloud-console', 'titel': 'Google-koppeling instellen (Google Cloud Console)', 'categorie': 'Google Workspace', 'samenvatting': 'Project, API\'s, serviceaccount en JSON-sleutel, domeinbrede delegatie met alle scopes, ' 'sleutel in PIVOT en inloggen met Google.', 'inhoud': GOOGLE_KOPPELING, }, { 'slug': '2fa-uitzondering-google-admin', 'titel': '2FA-uitzondering instellen in Google Admin', 'categorie': 'Google Workspace', 'samenvatting': 'Groep 2fa-uitzondering aanmaken, 2FA uitzetten per OU, rechten voor PIVOT en testen.', 'inhoud': TWEESTAPS_UITZONDERING, }, { 'slug': 'mailbox-delegatie-google-admin', 'titel': 'Mailbox-delegatie instellen in Google Admin', 'categorie': 'Google Workspace', 'samenvatting': 'Maildelegatie toelaten per OU, Gmail API, scopes voor PIVOT en testen.', 'inhoud': MAIL_DELEGATIE, }, ]