En multi-tenant Flask-tjeneste, der abonnerer på Microsoft 365-ændringshændelser, scanner nye e-mails, Teams-chats, OneDrive- og SharePoint-indhold for personoplysninger og derefter blokerer, karantænesætter eller adviserer om det, før det spredes. Det samme revisionsforløb, der udløser blokeringen, giver dataejeren et enkelt-klik til at fortryde.
Overvåg hver ændring, klassificér på millisekunder, og handl, før siden er opdateret.
DLP-tjenesten befinder sig mellem Microsoft 365 og Data & More-platformens klassificeringsstak. Den abonnerer på Graph-ændringsbeskeder for de lejere, den betjener, deduplikerer dem, henter det berørte indhold, kører det igennem et hurtigt regex-prefilter og platformens profilere, og tilknytter derefter afgørelsen til en lejer-specifik politik og handler på den inden for kildesystemet. Hver handling skrives til et Elasticsearch-revisionsindeks, og hver blokering er koblet til et fortryd-link, som dataejeren kan anvende uden at forlade e-mailen.
Graph-abonnementer holdes aktive af en baggrundsskemalægger, der fornyer tokens, afstemmer afvigelser og genanvender massekildekonfigurationer, når lejerens valg ændres.
Hvert element gennemgår et lejer-tilpasset regex-prefilter (med ReDoS-beskyttede timeouts). Kun elementer, der passerer prefilteret, sendes videre til java_profiler for den mere omfattende PII-afgørelse.
Politikken tilknytter et (kilde, afgørelse)-par til én af fem handlinger, som alle udføres inden for Microsoft 365: slet beskeden, flyt den til karantæne, redigér en fil, eller send blot en orienterende e-mail eller et Teams-kort.
Én ændring i Microsoft 365 resulterer i én besked, én klassificeringsrunde, én politikbeslutning og én revisionspost. Pipelinen nedenfor er det forløb, som enhver Teams-besked, OneDrive-upload og SharePoint-redigering gennemgår.
Hver kilde har sit eget Graph-abonnement, sit eget ressourcestiformat, sin egen indhentning af indhold og sin egen forståelse af, hvad blokering indebærer. Processoren ruter på den fortolkede ressource og videresender til den rette indhenter og den rette håndhævelse.
graph-management inden tokens udløber.reauthorizationRequired (forny), missed (log; administrator kan genanvende) og subscriptionRemoved (log).Exchange er forbundet via en EXO-transportregel, der sætter mistænkelig post i karantæne, inden brugeren ser den. DLP-tjenesten henter derefter meddelelsen ud af karantænen, klassificerer den og enten leverer eller blokerer den. Exchange-notifikationer uden for karantæne afvises straks – de er enten forældede eller udtryk for fejlkonfiguration.
Klassificeringen forløber i to trin, så det billige trin filtrerer hovedparten, og det dyre trin kun ser det, der overlever.
En lejerspecifik liste over regex-mønstre, der kompileres ved første brug og rekompileres, når mønsterlisten ændres. Hvert match afvikles med en ReDoS-beskyttet timeout på 1 sekund (via tredjepartsmodulet regex), så ét patologisk mønster ikke kan blokere arbejderen.
Hvis forfilteret ikke afkorter behandlingen, sendes teksten til java_profiler'ens /dlp/classify endpoint. Klienten omslutter kaldet med et kredsløbsafbryder (5 fejl, 60 sekunders nulstilling) og et tenacity-genforsøg (3 forsøg, eksponentiel backoff ved forbindelses-/timeoutfejl). Ved total fejl slår den åbent fejl som "ingen PII" frem for at blokere uskyldig indhold.
/dlp/classify endpoint, som er optimeret til binære bloker/tillad-afgørelser.(Kilde, afgørelse)-parret mappes til én af fem handlinger af den lejerspecifikke politik, der er gemt idlp_config. Allow lader systemet forblive stille; de øvrige fire resulterer alle i en revisionspost.
Enten blev der ikke registreret personhenførbare oplysninger, eller filen er på lejerens udelukkelsesliste for OneDrive / SharePoint. Intet skrives, intet sendes.
Indholdet forbliver på sin plads. Afsenderen (eller filejeren) modtager en e-mail eller et Teams-kort, der angiver, at indholdet udløste politikken. Nyttigt for kategorier med lav alvorlighed.
Håndhævelseslag et handler i kilden: Teams-besked skjult bag et kort, OneDrive / SharePoint-fil låst, Exchange-mail fjernet fra karantæne. Revisionsposten indeholder et tilbageførselstoken, så handlingen kan fortrydes.
Filen efterlades urørt, og ejeren modtager en e-mail med tre muligheder: håndhæv nu, annuller (med valgfri midlertidig eller permanent udelukkelse), eller gør intet. Efter respitperioden henter planlæggeren posten og håndhæver automatisk.
Indgående mail, der er fanget af transportreglen, befinder sig i karantæne. DLP-tjenesten klassificerer den og vælger mellem frigivelse (lever), tilbageholdelse (bloker) og underretning (under gennemgang). En separat sti til scan-og-frigiv-notifikationer holder afsenderen orienteret.
Enhver blokeringshandling indlejrer en signeret revert-URL i notifikationen. Modtageren klikker på den, ogrevert_servicelæserreversal_datafra revisionsposten for at fortryde handlingen og skrive en tilhørende revisionspost for tilbageførslen.
Engrace_blocker den blødere mulighed for OneDrive og SharePoint: der sker inget i kilden, indtil ejeren enten træffer en beslutning, eller respitperioden udløber.
Notifikationer adresseres til den identitet, der er relevant for kilden (afsender i Teams, filens ejer i OneDrive, webstedets ejere i SharePoint). Transporten vælges pr. lejer.
Ved Teams-notifikationer sender botten et proaktivt svar i den oprindelige tråd (eller en DM, hvis kanalsvaret mislykkes). Kortet viser handlingen, et begrundelsesudsnit, et deep link til beskeden samt revert-URL'en.
E-mailtransporten vælges pr. lejer:graph-managementsender som lejerens egen postkasse, når Graph mail-indstillingerne er konfigureret, ellers senderdm-notifyfra platformen. Skabeloner er pr. handling med lejerspecifikke tilsidesættelser for overskrift / brødtekst / sidefod.
Nedenstående mockups gengiver tre faktiske notifikationer, som tjenesten sender: ét Teams-adaptivt kort, én e-mail af block-klassen og én e-mail af alert-klassen. De er indrammet i Field Manual-udstillingskort, men bærer deres egen produktfarveidentitet, så læseren ser, hvad deres brugere faktisk ser.
Dit indhold blev markeret, fordi det muligvis indeholder følsomme data. Gennemgå venligst inden deling.
Analyse: Disse data indeholder personoplysninger i henhold til GDPR-reglerne. Strengen "mit cpr er 010101…" repræsenterer sandsynligvis et dansk CPR-nummer (Det Centrale Personregister), en unik identifikator for en person, og falder dermed ind under definitionen af personoplysninger.
Dette er en informationsadvarsel. Der er ikke foretaget nogen handling på dit indhold.
Dit indhold blev blokeret af organisationens databeskyttelsespolitik. Tjek dlp-karantænen for at finde den originale mail.
| Foretaget handling | blokering |
| Kilde | exchange |
| Emne | David Junge shared "Red hat" with you |
| Placering | Vis markeret indhold |
Hvis De mener, at dette var en fejl, bedes De kontakte Deres IT-administrator.
Dit indhold blev markeret, fordi det muligvis indeholder følsomme data. Gennemgå venligst inden deling.
Analyse: Disse data indeholder personoplysninger i henhold til GDPR-reglerne. De omfatter navne ("Peter"), nationale identifikatorer ("NIN", "DNI", "número de identidad") samt identifikationsnumre tilknyttet enkeltpersoner, tillige med oplysninger om familiemedlemmers identifikationsdokumenter, hvilket klart fastslår tilstedeværelsen af personoplysninger.
Dette er en informationsadvarsel. Der er ikke foretaget nogen handling på dit indhold.
Fire daemon-tråde starter ved app-opstart og stopper aldrig. De holder tjenesten sund uden nogen cron eller ekstern orkestrator.
Pinger java_profiler og AI-profilerne. Registrerer op/ned-overgange og fremviser afhjælpningshandlinger.
Hvert 15. minut. Markerer lejere, hvis Graph-abonnementer har været inaktive for længe.
Hver time. Genanvender masseabonnementer for ALL- og GROUPS-tilstandene, så nye brugere og gruppeændringer registreres automatisk.
Gennemgår revisionsindekset for grace_block poster, hvis vindue er udløbet, og afsender den udsatte håndhævelse.
Fra en Graph-notifikation til en frigivelse fra Exchange-karantæne følger enhver Microsoft 365-ændring én stramt defineret sløjfe, afgrænset til én lejer, på kortere tid end det tager brugeren at skifte fane. Hver handling logges, hver blokering kan fortrydes, og hver klassifikator er fail-open by design, så systemet aldrig tilbageholder indhold af den forkerte årsag.