M365Con 2027 – bezpłatna konferencja online · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Odkrywanie luk w zgodności Microsoft 365 dzięki Microsoft Graph

By ·

Witamy ponownie w podcaście i w naszym towarzyszącym blogu technicznym! Jeśli kiedykolwiek ufałeś panelowi zgodności Microsoft 365, który jest gotowy od razu po wdrożeniu, i zakładałeś, że wszystko w…

Automatically translated with AI from the original post. Read the English original

▶ BLOGUncovering M365Compliance Blindspots…M365.FM
Titelbild: Uncovering M365 Compliance Blindspots with Microsoft Graph

Witamy ponownie w podcaście i w towarzyszącym mu blogu technicznym! Jeśli kiedykolwiek ufałeś gotowemu pulpitowi zgodności Microsoft 365 i zakładałeś, że uwzględnia on absolutnie wszystko, możesz właśnie wchodzić w fałszywe poczucie bezpieczeństwa. Domyślne pulpity zgodności są zaprojektowane jako podsumowania, a nie jako absolutna prawda. Kluczowe sygnały, takie jak zdarzenia Data Loss Prevention (DLP), działania w ramach eDiscovery czy bazowe alerty bezpieczeństwa, często znajdują się za punktami końcowymi Microsoft Graph, które wymagają osobnych uprawnień, zaawansowanych parametrów zapytań i poprawnego łączenia danych. W tym szczegółowym omówieniu sprawdzimy, dlaczego natywne raporty nie pokazują istotnych informacji, wskażemy dokładne punkty końcowe Graph, które warto odpytać, i pokażemy, jak przekierować surowe dane dowodowe bezpośrednio do Microsoft Purview, aby uzyskać przejrzyste i obronne raporty. Aby posłuchać naszej pełnej dyskusji na ten temat, koniecznie obejrzyj powiązany odcinek podcastu: Find Missing Microsoft 365 Compliance Data with Graph.

Przegląd

Domyślne pulpity zgodności są podsumowaniami, a nie prawdą. Krytyczne sygnały (trafienia DLP, działania eDiscovery, alerty bezpieczeństwa) często znajdują się za punktami końcowymi Graph z osobnymi uprawnieniami. Pokazujemy dokładne interfejsy API, zakresy i wzorce skryptów, aby wydobyć pełne dowody i scentralizować je w Purview w celu przejrzystego, obronnego raportowania.

Dla kogo to przydatne

  • Właściciele obszarów zgodności, prawnych i ryzyka, którzy potrzebują dowodów gotowych do audytu

  • Administratorzy M365 i Entra, budujący raportowanie i automatyzację

  • Zespoły bezpieczeństwa korelujące telemetrię DLP, eDiscovery i alertów

Martwe punkty (dlaczego gotowe pulpity je pomijają)

  • Agregacja i opóźnienie: podsumowania w interfejsie pomijają zagnieżdżone szczegóły incydentów oraz ostatnią aktywność

  • Luki w zakresie: działania eDiscovery i trafienia DLP mogą znajdować się poza standardowymi eksportami

  • Rozdzielone uprawnienia: punkty końcowe /security i /compliance wymagają różnych zakresów

  • Brak połączeń: pulpity rzadko korelują incydenty z użytkownikami, custodianami ani krokami sprawy

Najcenniejsze punkty końcowe Graph (lista do skopiowania)

  • Alerty bezpieczeństwa (szerokie spojrzenie)

    • Punkt końcowy: /security/alerts lub /security/alerts_v2

    • Uprawnienia aplikacji (przykłady): SecurityEvents.Read.All (lub Alerts.Read.All w nowszych modelach)

    • Zastosowanie: osie czasu alertów, ważność, status, przypisania

  • Zasady DLP i aktywność (utrata danych)

    • Punkty końcowe (dostępność zależy od dzierżawy):

      • /security/dataLossPreventionPolicies (inwentarz zasad)

      • /security/dlpIncidents lub zaawansowane punkty końcowe incydentów DLP w przestrzeni nazw security (zależnie od dzierżawy)

    • Uprawnienia aplikacji: SecurityEvents.Read.All (i/lub konkretne zakresy odczytu DLP, jeśli są dostępne)

    • Zastosowanie: trafienia, lokalizacje (Exchange/SharePoint/Teams), dyspozycja

  • eDiscovery (sprawy i działania)

    • /compliance/ediscovery/cases

    • Ścieżki podrzędne: /custodians, /searches, /reviewSets, /noncustodialDataSources, /operations

    • Uprawnienia aplikacji: eDiscovery.Read.All (oraz zapis, jeśli zarządzasz sprawami)

    • Zastosowanie: status spraw, wstrzymania, custodianie, eksporty, działania recenzentów

  • Audyt i kontekst logowania (dowody uzupełniające)

    • /auditLogs/directoryAudits, /auditLogs/signIns

    • Uprawnienia aplikacji: AuditLog.Read.All, Directory.Read.All

    • Zastosowanie: kto, co i kiedy zmienił, kontekst sesji

Wskazówka: wiele ładunków danych zgodności jest głęboko zagnieżdżonych — zaplanuj użycie $expand, stronicowanie przez @odata.nextLink oraz łączenie z /users/{id}, aby uzyskać nazwy wyświetlane i działy.

Uwierzytelnianie i uprawnienia (bezproblemowa ścieżka)

  • Używaj uprawnień aplikacji (jednostka usługi) w zadaniach bez nadzoru

  • Zarejestruj osobne aplikacje dla bezpieczeństwa i podstawowego Graph, jeśli organizacja wymaga rozdziału uprawnień

  • Udzielaj zgody tylko na zakresy o najmniejszych uprawnieniach; przechowuj sekrety i certyfikaty w Key Vault

  • Zastosuj wykładniczy backoff dla kodów 429/503 i zapisuj x-ms-request-id w logach

Wzorce skryptowe (PowerShell lub Python)

  • Wybór i rozwinięcie: żądaj tylko potrzebnych pól, $select=…, $expand=… dla zagnieżdżonych encji

  • Filtrowanie i ograniczenie czasu: $filter=createdDateTime ge {ISO8601} dla danych delta

  • Stronicowanie: pętla po @odata.nextLink; nigdy nie zakładaj, że wyniki mieszczą się na jednej stronie

  • Normalizacja: na początku zamień identyfikatory użytkowników i obiektów na nazwy oraz działy, aby wyniki były czytelne

  • Łączenie dla kontekstu: wzbogać incydenty o metadane użytkownika, witryny, zespołu lub sprawy przed eksportem

Włączanie danych do Purview (zamiana danych na decyzje)

  1. Standaryzacja wyników: pliki CSV/JSON ze spójnymi nazwami pól (tenant, incidentId, workload, userId, userUPN, severity, status, created, lastAction, caseId)

  2. Import: umieść pliki w zabezpieczonej lokalizacji magazynu, z której Purview może je odczytać (np. ADLS Gen2)

  3. Oznaczanie i etykietowanie: zastosuj etykiety poufności lub niestandardowe tagi (np. „DLP-PII-High”) na potrzeby kierowania

  4. Pulpity: Purview (lub Power BI oparte na danych Purview) do analizy trendów, właścicieli i wieku naruszeń SLA

  5. Automatyzacje: reguły powiadamiające właścicieli spraw o powtórzeniach i eskalacjach; cotygodniowe zestawienia PDF

30-minutowy pilotaż (krok po kroku)

  • 0–10 min: rejestracja aplikacji + SecurityEvents.Read.All / eDiscovery.Read.All; utwórz sekret lub certyfikat

  • 10–20 min: napisz skrypt dla jednego punktu końcowego (alerty lub sprawy) z stronicowaniem i $filter dla ostatnich 7 dni

  • 20–30 min: wzbogać dane o /users, wyeksportuj CSV, przenieś do ścieżki ADLS i zwizualizuj prosty wykres

Wskaźniki KPI potwierdzające wartość

  • % incydentów z uzupełnionym właścicielem i decyzją (disposition)

  • Średni czas od incydentu do sprawy (lub recenzenta)

  • Konta lub lokalizacje powtarzających się naruszających w ciągu 30 dni

  • Różnica w liczbie względem gotowego pulpitu OOTB (zamknięcie luk)

  • Czas cyklu audytu (zaoszczędzone godziny przygotowania dowodów)

Typowe pułapki (i rozwiązania)

  • Puste wyniki → błędne zakresy lub użycie uprawnień delegowanych tam, gdzie wymagane są uprawnienia aplikacji

  • Brakujące szczegóły → pominięty $expand lub nieprzetworzone kolekcje zagnieżdżone

  • Niepełne dane → brak stronicowania; pobrano tylko pierwszą stronę

  • Niezgodne nazwy → brak wzbogacenia danych przez połączenie z /users lub danymi HR

  • Nieaktualne pulpity → brak zaplanowanych uruchomień; dodaj zadanie i alerty o błędach

Szybkie wygrane w tym tygodniu

  • Pobierz ostatnie 7 dni z /security/alerts i porównaj liczby z portalem

  • Wyeksportuj otwarte sprawy eDiscovery wraz z osobami objętymi zabezpieczeniem (custodians) i przekaż je do weryfikacji dziale prawnemu

  • Uruchom przegląd incydentów DLP, oznacz powtórzenia i otwórz zadania następcze w Purview

  • Zaplanuj cotygodniowy pakiet dowodów (CSV + PDF) wysyłany na skrzynkę zespołu ds. zgodności

Często zadawane pytania

  • Czy muszę być programistą? Nie – wystarczą skrypty PowerShell lub krótkie skrypty w Pythonie.

  • Dlaczego uprawnienia aplikacji? Większość punktów końcowych /security i /compliance wymaga bezobsługowego dostępu o wysokim poziomie zaufania.

  • Czy mogę pozostać przy PowerShell? Tak – użyj zestawu SDK Microsoft Graph PowerShell i obsłuż $top, $filter, $expand oraz stronicowanie.

  • Czy usługa Purview jest wymagana? Nie ściśle – ale zamienia surowy JSON w audytowalne procesy i pulpity.

Podsumowanie

Pulpity podsumowują, a Graph pokazuje cały obraz. Wskaż właściwe punkty końcowe, napraw uwierzytelnianie, obsłuż stronicowanie i rozwiń dane, a następnie scentralizuj je w Purview. Przejdziesz od zgodności na pokaz do sprawdzalnej, bieżącej widoczności – bez topienia się w ręcznych eksportach. Aby poznać szczegóły i eksperckie wskazówki dotyczące tych martwych punktów, koniecznie posłuchaj naszego odcinka podcastu Find Missing Microsoft 365 Compliance Data with Graph. Ulepszaj swoje skrypty, zabezpieczaj uprawnienia aplikacji i zacznij ujawniać dane, które dotąd ukrywały Twoje pulpity!

Entities in this article

eDiscovery Compliance Dashboards Microsoft Graph Microsoft Purview Data loss prevention (DLP) PowerShell Microsoft 365 Exchange Online JSON

Related articles

RSS