Web-usluga za izvješćivanje Office 365 jedan je od rijetkih fosila koji postoje od pokretanja usluge, s gotovo ikakvim ažuriranjima od njezina izdavanja. Mi trajemo pokrio ga još 2022., kada je Microsoft dodao podršku za OAuth za njega. S vremenom je većina krajnjih točaka “izvještavanja” koje je izložio zamijenjena, a sada je vrijeme da se isto učini s MessageTrace jedan. Upoznajte Graph messageTraces krajnja točka!
Sadržaj objave
Preduvjeti
Najprije, da biste isprobali novoobjavljenu krajnju točku, morat ćete ručno osigurati njen principal usluge. Ovo je vjerojatno nešto što će Microsoft riješiti, ali za sada morate pokrenuti sljedeći cmdlet da biste instancirali kopiju Transport Data Platform principal usluge (s AppId od 8bd644d1-64a1-4d4b-ae52-2e0cbf64e373) u vašem najmoprimcu:
#Connect to the Graph with required permissions Connect-MgGraph -Scopes Application.ReadWrite.All #Provision the service principal New-MgServicePrincipal -AppId 8bd644d1-64a1-4d4b-ae52-2e0cbf64e373 DisplayName Id AppId SignInAudience ServicePrincipalType ----------- -- ----- -------------- -------------------- Transport Data Platform 170ba822-7b9d-4998-8acc-31e08b1414ec 8bd644d1-64a1-4d4b-ae52-2e0cbf64e373 AzureADMultipleOrgs Application
Može potrajati dok se proces ne završi, kao što je navedeno u službena objava za značajku, pa dajte joj nekoliko sati.
Zatim, važno je razumjeti što je ta nova krajnja točka, a što nije. NIJE zamjena za funkciju praćenja poruka izloženu putem Exchange Admin Centera ili PowerShell (Get-MessageTraceV2, Get-MessageTraceDetailV2 i *-Povijesno pretraživanje). Drugim riječima, većini administratora neće biti od koristi. Umjesto toga, to je zamjena za REST-ful MessageTrace izvješćekoji je prethodno bio izložen pod:
https://reports.office365.com/ecp/reportingwebservice/reporting.svc/MessageTrace
Ako niste čuli za gore navedeno, možete slobodno zanemariti ovo izdanje i nastaviti koristiti metode EAC/PowerShell.
Idemo dalje, kao i sa svime što se tiče Grapha, trebat će vam dopuštenja. Novouvedeni ExchangeMessageTrace.Read.All opseg će biti dovoljan. Dostupan je u verzijama dopuštenja delegata i aplikacija, tako da se računaju automatizirani scenariji. Budući da ova krajnja točka izlaže funkcionalnost na razini administratora, pozivatelj će morati imati dovoljna dopuštenja za pokretanje praćenja poruka, a najmanje privilegirana uloga za koju je ExO Primatelji samo za pregled jedna.
Pokretanje uzorka zahtjeva
Upotreba same krajnje točke prilično je jednostavna, sve što trebate učiniti je izdati GET zahtjev prema njoj:
GET https://graph.microsoft.com/beta/admin/exchange/tracing/messageTraces
Prema zadanim postavkama dohvaćaju se podaci iz posljednja dva dana, koji odgovaraju ponašanju Get-MessageTraceV2 cmdlet. Razina izloženih detalja također je ista:
Ako želite proširiti rezultate nakon zadanog razdoblja od 2 dana, možete iskoristiti $filter parametar.
#Filter based on receivedDateTime GET https://graph.microsoft.com/beta/admin/exchange/tracing/messageTraces?$filter=receivedDateTime ge 2026-01-01T12:41:40.711Z and receivedDateTime le 2026-01-02T12:41:40.711Z
Potpuno ista ograničenja kao i kod Get-MessageTraceV2 cmdlet primijeniti ovdje: možete pokriti samo poruke iz zadnjih 90 dana, a jedan upit ne može obuhvaćati više od 10 dana.
Prema zadanim postavkama krajnja će točka vratiti do 5000 rezultata, na stranicama od po 1000. Koristite $top operateru za podešavanje maksimalne veličine stranice, pri čemu je ograničenje od 5000. Ako se vrati više od jedne stranice rezultata, možete iskoristiti @odata.nextLink aspekt za dohvaćanje sljedeće stranice.
The $odaberi operator nije podržan i ne možete ga iskoristiti za smanjenje razine vraćenih detalja.
Više primjera filtera
Osim filtra protiv primljeniDatumVrijeme svojstvo, također možete filtrirati prema adresi pošiljatelja ili primatelja, statusu, predmetu i tako dalje. Bilo koji od parametara filtra koje podržava Get-MessageTraceV2 može se koristiti:
#Filter by specific sender GET https://graph.microsoft.com/beta/admin/exchange/tracing/messageTraces?$filter=senderAddress eq 'dmarcreport@microsoft.com' #Filter by subject (default behavior is "contains") GET https://graph.microsoft.com/beta/admin/exchange/tracing/messageTraces?$filter=subject eq 'Report' #Filter by subject and startsWith GET https://graph.microsoft.com/beta/admin/exchange/tracing/messageTraces?$filter=startsWith(subject,'Report') #Filter by sender domain GET https://graph.microsoft.com/beta/admin/exchange/tracing/messageTraces?$filter=senderAddress eq '*@microsoft.com'
Evo zabavne stvari – ako pokušate filtrirati na nepodržanom svojstvu, recimo veličinadobivate intiman uvid u implementaciju nove krajnje točke, za koju se ispostavilo da je samo omotač za Get-MessageTraceV2… iznenađenje iznenađenje!
S obzirom na gore navedeno, nije ni čudo da nemamo podršku za druge standardne operatore upita Graph.
Dohvaćanje detalja praćenja poruke
Do sada smo pokrili samo messageTraces endpoint, odnosno analog od Get-MessageTraceV2 cmdlet. Postoji još jedna krajnja točka uključena u ovo izdanje, naime getDetailsByRecipient jedna. Ili drugim riječima, analog od Get-MessageTraceDetailV2 cmdlet. Da bismo ga koristili, trebamo id postojećeg messageTrace rezultat, koji možemo dobiti iz gore navedenog, kao i adresu primatelja. Evo kako koristiti krajnju točku:
GET https://graph.microsoft.com/beta/admin/exchange/tracing/messageTraces/42578eec-57ad-48c4-5db4-08de5b45ec37/getDetailsByRecipient(recipientAddress='dmarc-reports@michev.info')
s odsječenim izlazom radi kratkoće. Kao što se i očekivalo, to su potpuno isti podaci kao oni koje je vratio Get-MessageTraceDetailV2. Potpuno isti zahtjevi za dopuštenje primjenjuju se na ovu krajnju točku. Nema podrške za $odaberi ili $topali još uvijek možete iskoristiti $filter operator:
#Filter message trace details on specific Event value GET https://graph.microsoft.com/beta/admin/exchange/tracing/messageTraces/42578eec-57ad-48c4-5db4-08de5b45ec37/getDetailsByRecipient(recipientAddress='dmarc-reports@michev.info')?$filter=event eq 'Defer'
Završne riječi i sažetak
Prije zatvaranja članka, može se spomenuti još jedno zanimljivo opažanje: nove krajnje točke koriste javno izloženu uslugu aplikacije, kao u https://tdp-webapp-nam00.azurewebsites.net/admin/messageTraces. Drugim riječima, ne morate čak ni koristiti standard https://graph.microsoft.com URI… zabavno, zar ne? Ne baš, ali nadamo se da će dobri ljudi u Microsoftu jednoga dana dovesti u red svoju kuću.
Ukratko, sada imamo način za dobivanje rezultata praćenja poruka Exchange Online putem Graph API-ja. Naše ispitivanje pokazuje da je ovo omot (preko omota) za Get-MessageTraceV2 i Get-MessageTraceDetailV2 cmdleti, sa svim prednostima i manama. S jedne strane, možete koristiti potpuno istu sintaksu i raditi s poznatim izlazom. Osim toga, dopuštenja za aplikacije podržana su odmah. Ali mnoge prednosti koje se mogu očekivati od “moderne” krajnje točke temeljene na Graphu nisu prisutne. Ograničene mogućnosti filtriranja, nema podrške za $odaberi operator, nema načina za kreiranje pretplate za dohvaćanje rezultata, i tako dalje. I što je vjerojatno još važnije, isto ograničenje prigušenja kao i postojeći cmdleti, kao što je navedeno u službena objava.



