Instructie

Dit artikel is de praktische implementatiegids voor de Outlook-koppeling, met een checklist voor zowel een testomgeving als productie. Dezelfde app-registratie en permissies gelden in beide; in test wil je een wegwerp-tenant waarin je vrij agenda-items kunt aanmaken, wijzigen en verwijderen op gebruikers- en zaal-mailboxen. De genummerde stappen hieronder beschrijven de volgorde; gebruik daarna de checklists per omgeving.

Checklist — testomgeving

  • ☐ Single-tenant Entra ID app-registratie aangemaakt in de test-tenant.
  • ☐ Client secret gegenereerd (geen certificaat).
  • ☐ Redirect URI ingesteld op {base_url}/integrations/redirect/{int_id}.
  • ☐ Tenant ID, Client ID en Client secret genoteerd.
  • Delegated Calendars.ReadWrite toegevoegd (voor modus A).
  • Application Calendars.ReadWrite toegevoegd + admin consent (voor modus B).
  • ☐ ApplicationAccessPolicy beperkt de app tot een security-group met zaal-mailboxen.
  • ☐ Dedicated M365-serviceaccount voor gedelegeerde auth (geen persoonlijk account).
  • ☐ Gebruikersmailbox beschikbaar (modus A) / zaal-mailboxen + UPN's beschikbaar (modus B).
  • ☐ Auth-scherm gevuld + Stap 1 consent + Stap 2 verbinden uitgevoerd.
  • ☐ Config-scherm gevuld, modus gekozen, object/zalen gekoppeld, koppeling actief.
  • ☐ End-to-end getest: item in Outlook aangemaakt → boeking in i-Reserve; en (gedelegeerd) boeking-statuswijziging → item in Outlook.

Checklist — productieomgeving

  • ☐ Aparte (of dezelfde, bewust gekozen) app-registratie in de productie-tenant van de klant; productie-secret apart beheerd.
  • ☐ Permissies en (voor app-only) admin consent in de productie-tenant verleend.
  • ☐ ApplicationAccessPolicy ook in productie ingesteld (geen tenant-brede toegang).
  • ☐ Productie-redirect-URI geregistreerd op het productie-base-url.
  • ☐ Echte zaal-mailboxen ↔ juiste i-Reserve-objecten gekoppeld (geen testobjecten).
  • ☐ “E-mail bij problemen” ingesteld op een bewaakt adres.
  • ☐ Eerste live sync geverifieerd + webhook-status gecontroleerd op het diagnosescherm.
  • ☐ Rollback/uit-knop bekend: koppeling op inactief zetten stopt sync zonder data te verliezen.
Maak in de juiste tenant een single-tenant app-registratie, genereer een client secret en noteer Tenant ID, Client ID en secret. Stel de redirect-URI in.
Voeg de Graph-permissie Calendars.ReadWrite toe voor de gekozen modus (delegated en/of application). Verleen voor application-modus admin consent en beperk de app met een ApplicationAccessPolicy.
Gedelegeerd: zorg voor een dedicated gelicentieerde serviceaccount. Applicatie: maak de zaal-mailboxen aan, noteer de UPNs en plaats ze in de security-group.
Vul in i-Reserve het authenticatie-scherm (tenant/client/secret/return url), doorloop consent + verbinden, kies de modus en koppel object(en)/zalen. Stel de inbound-gedragsvelden in.
Zet de koppeling actief, activeer de webhook(s) en verifieer op het diagnosescherm dat de subscription(s) zijn aangemaakt. Test end-to-end inbound (en bij gedelegeerd ook outbound) en loop de checklist per omgeving af.