Alle koppelingen

Inloggen & identiteit Beschikbaar

Sms-gateway

De tweede stap heeft geen leverancier nodig. Wil je daarnaast codes per sms kunnen sturen, dan wijs je de API naar een gateway die een simpel JSON-bericht aanneemt.

Wat je nodig hebt

  • Toegang tot de omgevingsvariabelen van de API-container: dit is configuratie van de installatie, geen instelling per organisatie.
  • Een gateway die een POST met JSON accepteert, bijvoorbeeld Twilio, MessageBird, Spryng of iets zelfgebouwds.
  • Per persoon een bevestigde authenticator-app; sms komt daar bovenop.
  • Telefoonnummers in internationaal formaat, bijvoorbeeld +31612345678.

Zo koppel je het

  1. 1 Zet SCHAKL_SMS_GATEWAY_URL op het verzendadres van je gateway, bijvoorbeeld https://jouw-gateway.example/send, en herstart de API-container.
  2. 2 Heeft je gateway een token nodig, zet dan SCHAKL_SMS_GATEWAY_TOKEN; de API stuurt hem mee als Authorization: Bearer. Met SCHAKL_SMS_GATEWAY_SENDER kies je een afzender; laat je die leeg, dan gebruikt de gateway zijn eigen standaard.
  3. 3 Controleer of je gateway de vorm aankan die de API stuurt: een POST met {"to": "+31612345678", "message": "...", "sender": "..."}. Past dat niet, zet er dan een klein doorgeefluik voor.
  4. 4 Elk teamlid stelt eerst zelf de authenticator in: Instellingen → Mijn account, blok Tweestapsverificatie, knop Tweestapsverificatie instellen, code invullen en Verifiëren en inschakelen. Bewaar daarna de tien back-upcodes; ze worden maar één keer getoond.
  5. 5 Op datzelfde scherm verschijnt nu het blok Sms-codes. Vul een nummer in bij Telefoonnummer, druk op Verificatiecode versturen, typ de ontvangen code en druk op Nummer verifiëren.
  6. 6 Bij het aanmelden staat er vanaf dan een extra knop: Sms een code naar mijn telefoon. Verwijderen kan later met Nummer verwijderen; de authenticator blijft gewoon staan.

Wat zonder gateway al werkt

De basis staat er zodra je de app draait: een authenticator-app als vaste factor, met tien eenmalige back-upcodes ernaast. Er is geen recht voor nodig, want het gaat over je eigen account. In de app van je collega staat de merknaam van jouw bureau als uitgever, want die komt uit Instellingen → Huisstijl; een white-label installatie noemt daar dus nooit een productnaam die de klant niet kent. Nieuwe back-upcodes aanvragen kost een actuele code uit de app, zodat een gestolen sessie in zijn eentje geen herstelcodes kan maken.

  • Na acht mislukte pogingen gaat de factor vijftien minuten op slot.
  • Een aanmeldpoging die op de codestap blijft hangen, verloopt na vijf minuten en stuurt je terug naar het wachtwoord.
  • Een al geaccepteerde code werkt geen tweede keer, ook niet binnen dezelfde 30 seconden.
  • Uitzetten kan alleen met je accountwachtwoord; een half afgemaakte instelling annuleren kost niets.

De sms-leg hoort bij de installatie, niet bij de organisatie

SCHAKL_SMS_GATEWAY_URL is configuratie van de instantie. Een bureau dat op de server van iemand anders draait, kan sms dus niet zelf aanzetten. Staat de variabele niet, dan is er geen blok Sms-codes, geen extra knop op de inlogpagina en antwoordt de API met 'Sms-codes zijn niet beschikbaar op deze installatie.' De tekst van het bericht komt uit de vertaalcatalogus, in de taal van de ontvanger zelf.

  • Een sms-code is zes cijfers, tien minuten geldig, vijf pogingen, en werkt één keer.
  • Opnieuw sturen kan pas na dertig seconden.
  • Sms is nooit een losse factor: het nummer verwijderen laat een account nooit zonder tweede stap achter.
  • Zonder afzender-id laat de API het veld leeg, zodat de gateway zijn eigen standaard gebruikt; een vaste productnaam zou de merknaam van je klant doorkruisen.

Telefoon kwijt

Dat lost een beheerder zelf op vanuit de ploeg: Instellingen → Team & gebruikers, het menu ⋯ op de rij van de collega, 'Tweestapsverificatie resetten'. Het account gaat terug naar aanmelden met alleen een wachtwoord, totdat het opnieuw wordt ingesteld. Het menu-item verschijnt alleen bij mensen die tweestapsverificatie aan hebben staan, en nooit op je eigen rij.

  • De reset wist de inschrijving helemaal: het geheim, de back-upcodes en het telefoonnummer. Er wordt nooit een geheim uitgelezen.
  • Elke reset wordt vastgelegd in het auditlogboek van de organisatie.
  • De tweede factor hoort bij de persoon en niet bij de organisatie, dus een reset geldt overal waar dat account lid is. Op een gewone installatie met één organisatie is dat hetzelfde.

Met SSO verplicht regelt je provider de MFA

Verplicht je organisatie single sign-on, dan schakelt dat de hele tweestapsverificatie hier uit, inclusief het instellen ervan. Dat is de bedoeling: bij een federatieve sessie hoort de tweede stap bij je identiteitsprovider, en twee plekken die allebei een code vragen, leveren alleen verwarring op. Dit scherm is er dus voor bureaus die met een wachtwoord inloggen.

Rechten

Geef deze rechten aan de rol die deze koppeling beheert (Instellingen → Rollen). Standaard alleen voor beheerders, en nooit voor de rol client.

  • members.member.write Gebruikers uitnodigen, wijzigen en verwijderen, en 'Tweestapsverificatie resetten' gebruiken in Instellingen → Team & gebruikers. Standaard alleen beheerder. Je eigen tweestapsverificatie instellen, nieuwe back-upcodes maken, een nummer toevoegen of alles uitzetten vraagt geen enkel recht.

Wat het bewust niet doet

  • Er is geen organisatiebrede verplichting: elk teamlid zet tweestapsverificatie zelf aan, en niemand kan het opleggen.
  • Geen 'vertrouw dit apparaat': elke aanmelding met een wachtwoord vraagt opnieuw om een code.
  • Geen tweestapsverificatie bovenop SSO; verplicht je single sign-on, dan verdwijnt het hele onderdeel voor die organisatie.
  • Sms staat nooit op zichzelf: zonder bevestigde authenticator-app verschijnt er geen sms-optie.
  • De gateway is configuratie van de installatie en niet iets wat een organisatie in de app kan aanzetten.
  • API-sleutels en MCP gaan buiten tweestapsverificatie om; die authenticeren met hun eigen sleutel en scopes.

Waar je het vindt Instellingen → Mijn account, blok Tweestapsverificatie; de gateway zelf staat in de omgeving van de API-container.

Lees de handleiding

Meer in deze categorie

Andere koppelingen