Python scripts voor Google Workspace Admin SDK

Praktische Python scripts voor de Google Workspace Admin SDK: gebruikers exporteren, bulk aanmaken, aanmeldingsrapporten ophalen en service account authenticatie instellen.

Total Workspace 20 April 2026 1 min leestijd
Delen:

De Google Admin SDK geeft programmatische toegang tot vrijwel alle Admin Console functies. Met Python kun je bulk-bewerkingen uitvoeren, rapportages automatiseren en integraties bouwen die in de Admin Console niet mogelijk zijn.

Setup en installatie

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client

Service Account aanmaken:

  1. console.cloud.google.com > Credentials > Service Account aanmaken
  2. Download de JSON-sleutel
  3. Activeer Domain-Wide Delegation
  4. Autoriseer in Admin Console:
Admin Console > Beveiliging > API-besturing > Domain-wide Delegation
Client ID: [Service Account Client ID]
Scopes: admin.directory.user, admin.directory.group, admin.reports.audit.readonly

Authenticatie instellen

from google.oauth2 import service_account
from googleapiclient.discovery import build

SCOPES = ["https://www.googleapis.com/auth/admin.directory.user"]
credentials = service_account.Credentials.from_service_account_file(
    "service-account.json", scopes=SCOPES
).with_subject("admin@jouwdomein.nl")

service = build("admin", "directory_v1", credentials=credentials)

Script 1: Alle gebruikers exporteren naar CSV

def exporteer_gebruikers():
    resultaten, page_token = [], None
    while True:
        resp = service.users().list(
            customer="my_customer", maxResults=500,
            orderBy="email", pageToken=page_token
        ).execute()
        resultaten.extend(resp.get("users", []))
        page_token = resp.get("nextPageToken")
        if not page_token:
            break

    with open("gebruikers.csv", "w") as f:
        f.write("Email,Naam,OE,Aangemaakt\n")
        for u in resultaten:
            f.write(
                f"{u['primaryEmail']},{u['name']['fullName']},"
                f"{u.get('orgUnitPath','/')},"
                f"{u.get('creationTime','onbekend')}\n"
            )
    print(f"{len(resultaten)} gebruikers geexporteerd")

Script 2: Bulk gebruikers aanmaken vanuit CSV

import csv, random, string

def genereer_wachtwoord(n=16):
    return "".join(random.choice(string.ascii_letters + string.digits + "!@#$") for _ in range(n))

def maak_gebruiker(email, voornaam, achternaam, oe="/"):
    pw = genereer_wachtwoord()
    body = {
        "primaryEmail": email,
        "name": {"givenName": voornaam, "familyName": achternaam},
        "password": pw, "changePasswordAtNextLogin": True,
        "orgUnitPath": oe,
    }
    try:
        service.users().insert(body=body).execute()
        print(f"OK: {email} | Wachtwoord: {pw}")
    except Exception as e:
        print(f"Fout {email}: {e}")

with open("nieuwe-gebruikers.csv") as f:
    for r in csv.DictReader(f):
        maak_gebruiker(r["email"], r["voornaam"], r["achternaam"], r.get("oe", "/"))

CSV-formaat:

email,voornaam,achternaam,oe
jan@bedrijf.nl,Jan,Janssen,/Verkoop

Script 3: Aanmeldingsrapporten ophalen

from googleapiclient.discovery import build
from datetime import datetime, timedelta

reports = build("admin", "reports_v1", credentials=credentials)
start = (datetime.now() - timedelta(days=30)).strftime("%Y-%m-%dT%H:%M:%SZ")

resp = reports.activities().list(
    userKey="all", applicationName="login",
    startTime=start, maxResults=1000
).execute()

with open("aanmeldingen.csv", "w") as f:
    f.write("Tijdstip,Gebruiker,IP,Type\n")
    for a in resp.get("items", []):
        for e in a.get("events", []):
            f.write(f"{a['id']['time']},{a['actor']['email']},{a['ipAddress']},{e['name']}\n")

Conclusie

De Google Admin SDK geeft volledige programmatische controle over Workspace. Total Workspace helpt Nederlandse bedrijven bij het automatiseren van Workspace-beheer via de Admin SDK.

Veelgestelde vragen

Andere artikelen

Vraag over dit onderwerp?

Wij reageren binnen 1 werkdag met een eerlijk en concreet antwoord.

1
Onderwerp
2
Uw gegevens

Waarmee kunnen wij u helpen?

U wilt eerst weten wat er kan. Kies waar uw vraag over gaat, dan krijgt u binnen 1 werkdag een eerlijk en concreet antwoord.

Uw gegevens