Rechten die ontworpen zijn, niet later toegevoegd
Een product dat je met taal bestuurt moet strenger zijn dan een product met menu’s, niet losser: als alles gevraagd kan worden, moet alles gecontroleerd worden. De client verbergt de commando’s die je niet hebt, en de server vertrouwt die kopie nooit.
Wie wat mag, tot op de kolom en het record.
De beveiligingsrollen als tabel, één ervan geopend als matrix van dieptes per tabel; een record gedeeld met precies de aangevinkte rechten; en de veldbeveiligingsprofielen die bepalen wie welke kolommen leest.
Het model in zijn geheel
Wie wat mag
- Rollen met aanmaken, lezen, schrijven, verwijderen, toewijzen en delen
- Vier diepten per recht: eigen, business unit, die unit en haar kinderen, de hele werkruimte
- Business units in een hiërarchie, en teams die er dwars doorheen lopen
- Kolomprofielen die een kolom verbergen of alleen-lezen maken voor een rol
- Eén record delen met één persoon, zonder aan hun rol te raken
- De factuurverantwoordelijke is bewust het enige gezag buiten de rollen
Wat wordt vastgelegd
- Een auditspoor van wie wat wanneer wijzigde
- Een beveiligingsaudit van rol-, deel- en configuratiewijzigingen
- Bij elke generatie hoeveel records aan het model beschreven werden
- Aanmeldgeschiedenis en actieve sessies, intrekbaar
- Uitvoeringsgeschiedenis van elke automatisering
- Facturen en creditnota’s bewaard zoals ze uitgegeven werden
Het account zelf
- Verificatie in twee stappen
- Sessies op de server, met een same-site cookie
- Wachtwoordherstel dat niets prijsgeeft over wie een account heeft
- Limieten op aanmelden en registreren
- Een content security policy zonder enige inline script
- Geheimen die een werkruimte ons geeft (een IdP-secret, een mailtoken), versleuteld opgeslagen
Wat het model te zien krijgt, beslis jij
Een prompt gaat naar een derde partij zodra er een taalmodel bij komt, en de prompts van een bedrijfsapp bevatten klantnamen. Dus de regel is: niets vertrekt dat niet moet vertrekken.
De deterministische parser gaat eerst en beantwoordt de meeste prompts zonder dat er iets het proces verlaat. Waar een model wordt gebruikt, krijgt het alleen de records te horen die de zin zelf noemde, met tien als plafond, bijna altijd zijn dat er nul.
- Zet het model volledig uit en houd de parser, het product blijft werken
- Of houd het model en verbied dat het ooit een record ziet
- De standaard is: model aan, en enkel de records die je net noemde
- Bij elke generatie wordt genoteerd hoeveel records beschreven werden
Gegevensbescherming, in het product afgehandeld
Een inzageverzoek en een verwijderverzoek zijn dingen die dit product doet, niet dingen waarvoor je ons moet mailen. De juridische pagina somt de subverwerkers op die voor jouw werkruimte gelden, afgeleid van de installatie, plus een mailboxprovider alleen als er één gekoppeld is.
Een plan verliezen kost je generatie, bewust en beperkt. Alles wat al in de werkruimte staat blijft leesbaar en exporteerbaar. Iemand buitensluiten van zijn eigen klantenbestand omwille van een kaart is geen aanmaningsstrategie, dat is gijzeling.
- Exporteer op verzoek alles wat het dossier van een persoon raakt
- Verwijdering, met uitleg over wat ze niet kan wissen in plaats van eromheen te praten
- Een prullenbak die verwijderingen dertig dagen bewaart
- Back-ups die je zelf neemt, downloadt en terugzet
- Voorwaarden met versie: “ze gingen akkoord” legt vast met welke, en wanneer
Lees de juridische pagina vóór je iets toevertrouwt
Ze staat in de app en noemt de subverwerkers van deze installatie, geen sjabloon. Start een proefperiode en lees ze op dag één.