• Uto. srp 28th, 2026

Oblak Znanja

informatička edukacija i vijesti

Rad s Group Insights (analytics) Graph API

ByTomšić Damjan

srp 28, 2026

Microsoft je početkom godine predstavio (Entra ID) Group insights. Još uvijek u javnom pregledu, značajka pruža nadzornu ploču “na prvi pogled” za isticanje nekih uobičajenih scenarija, kao i detaljnije prikaze u svakoj podržanoj kategoriji. Iako u njemu nema ničeg revolucionarnog i ne odgovara na neka od najčešće postavljanih pitanja (“gdje se ova grupa koristi” ili “kada je ova grupa zadnji put korištena”), svaka nova funkcionalnost izvješćivanja/uvida/analitike dobra je stvar, posebno one koje dolaze s odgovarajućom API podrškom.

Govoreći o tome, značajka Group Insights je jedan od rijetkih slučajeva u kojima Microsoft zapravo slijedi svoje obećanje o Graph-first pristupu novim proizvodima. Iako je samo izdanje prošlo ispod radara, bez ikakve dokumentacije o API-ju, brzo praćenje preglednika bilo je dovoljno da se otkriju temeljni pozivi Graph API-ju koji ga pokreće (pogledajte na primjer ovaj članak od Tonyja, ili ovaj Jan Bakker). Odgovarajuća dokumentacija konačno je objavljena krajem lipnja, tako da je sada vrijeme da se detaljnije pokriju odgovarajuće krajnje točke.

Budući da je ovo još uvijek funkcija pregleda, odgovarajuću metodu možete pronaći pod /beta ogranak Graph API-ja. Trenutno su podržane dvije metode: LIST (/reports/identityAnalytics/groups) je primarni koji biste koristili, dajući vam skup (podržanih) grupa i analitiku za svaki unos; dok GET metoda (/reports/identityAnalytics/groups/{id}) može se koristiti za dohvaćanje analitike za određenu grupu. Rad s bilo kojim od njih zahtijeva Izvješća.Čitajte.Sve dopuštenje, bilo u aplikaciji ili delegatskom okusu.

Evo jednostavnog primjera korištenja /reports/identityAnalytics/groups krajnja točka. Upit u nastavku će dohvatiti cijeli skup grupa (podržanih Entra ID-om), zajedno sa svojstvima izloženim značajkom Grupne analitike. U velikim zakupcima morat će se obraditi više stranica izlaza, putem standardnog mehanizma paginacije.

#Fetch the Group insights
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups

#Include the count
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$count=true

Izlaz gornjeg upita sadržavat će unos za svaki (podržani) Entra ID grupni objekt, uključujući meko izbrisane. Za svaki unos vraća se skup unaprijed definiranih svojstava. Popis uključuje neke “izračunate” vrijednosti, koje bi inače zahtijevale dodatne pozive Graph API-ju, po objektu. S druge strane, mogli biste otkriti da neka “uobičajena” svojstva nedostaju u usporedbi sa “standardnim” Graph API objektom grupe, na primjer bilo koja od onih vezanih uz poštu. Potpuni popis podržanih svojstava možete pronaći u službena dokumentacija.

Najveća prednost posjedovanja odgovarajuće dokumentacije nije samo pregled cijelog skupa svojstava trenutno podržanih za značajku Uvid u grupu, već i saznanje koji od njih podržavaju filtriranje. Zapravo, ovo je jedan od rijetkih slučajeva gdje je tim dobro obavio posao i gdje ga podržava svako imanje $filter operater. Čini se da je jedini izuzetak groupType jedan, koji daje informaciju je li dotični grupni objekt stvoren u oblaku, sinkroniziran iz lokalnog AD-a ili meko izbrisan.

Dakle, proučimo neke primjere filtera. Preskočit ćemo one koje možete lako dobiti putem korisničkog sučelja i usredotočiti se na nekoliko manje očitih. Na primjer, jedna od preporuka za osiguravanje pravilnog životnog ciklusa Microsoft 365 grupa je imati najmanje dva dodijeljena vlasnika i u većini slučajeva želite da to budu korisnici “članovi”. Iako možete iskoristiti postojeće Graph metode da biste dobili popis takvih grupa, morat ćete napisati prilično kompliciran upit. Krajnja točka uvida čini to vrlo jednostavnim:

#Filter Microsoft 365 Groups with two or more member users as owner
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=isCloudM365Group eq true and memberOwnerCount ge 2&$count=true

#Filter Microsoft 365 Groups with less than two member users as owner
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=isCloudM365Group eq true and memberOwnerCount lt 2&$count=true

Posebnu pozornost treba posvetiti grupama koje se mogu dodjeljivati ​​ulogama, odnosno grupama koje podržavaju dodjelu administrativnih uloga. Krajnja točka uvida omogućuje vam brzo filtriranje takvih grupa, kao i primjenu dodatnih filtara na temelju njihovog članstva. Na primjer, možda ne želite imati gosta kao člana ili ugniježđene grupe.

#Filter role-assignable groups
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=assignedRoleCount ge 1&$count=true

#Filter role-assignable groups with guest members
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=guestTransitiveUserCount gt 0 and assignedRoleCount ge 1&$count=true

#Filter
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=guestTransitiveUserCount gt 0 and directGroupMemberCount eq 0 and assignedRoleCount ge 1&$count=true

Imajte na umu da će gornji upit vratiti samo grupe s barem jednom dodijeljenom ulogom imenika i s najmanje jednim članom na popisu članova. Grupe bez trenutnih članova ili trenutnih dodjela uloga su izostavljene.

Drugi scenarij u kojem uvidi mogu pomoći je cjelokupni životni ciklus grupe. Iako nam nažalost ne mogu dati odgovor na pitanja kao što su “je li grupa aktivna”, “gdje je grupa zadnji put korištena” ili “gdje se u uslugama Microsoft 365 ili Azure koristi grupa”, oni i dalje mogu biti korisni za procjenu trenutnog stanja grupe kao dio tijeka rada obnove ili deprovizije. Na primjer:

#Expired groups with no owners
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=groupExpirationDateTime le 2026-07-01T00:00:00Z and memberOwnerCount eq 0&$count=true


#Groups that will expire soon and have no members
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=groupExpirationDateTime ge 2026-08-01T00:00:00Z and directGroupMemberCount eq 0&$count=true

Gore smo spomenuli “trenutno stanje” grupe. Važno je razumjeti da se grupni uvidi ne generiraju u stvarnom vremenu i mogu kasniti nekoliko dana iza stvarnih podataka u imeniku. To zauzvrat može rezultirati nepodudaranjima između brojeva ili samih svojstava. Obavezno uvijek provjeravajte vrijednost izračunatiDatumVrijeme svojstvo u izlazu. I da ponovimo, izlaz prema zadanim postavkama uključuje meko izbrisane grupe, ako želite filtrirati takve unose, možete upotrijebiti isValidGroup vlasništvo.

#Filter out soft-deleted groups
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=isValidGroup eq true$count=true

#List soft-deleted groups with more than one member
GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups?$filter=isValidGroup eq false and memberOwnerCount ge 1&$count=true

Iako je nismo uključili ni u jedan od gornjih primjera, metoda LIST također podržava $odaberi operator, koji se može koristiti za dohvaćanje samo svojstava koja vas zanimaju, čime se malo poboljšava izvedba krajnje točke.

Osim metode LIST, insights API podržava metodu GET po grupi. To može biti korisno u većim organizacijama, gdje dohvaćanje cjelovitog popisa uvida može potrajati znatno više vremena od postavljanja upita pojedinačnim unosima. Robusna podrška za filtriranje koju smo ispitali gore pomaže na tom planu, ali to nije Hail Mery. Štoviše, GET metoda koristi potpuno isti identifikator kao i Graphov GET /groups, iako id nekretnina se navodi kao groupAnalyticsId unutar primjera u službenoj dokumentaciji. Evo primjera:

GET https://graph.microsoft.com/beta/reports/identityAnalytics/groups/528a4052-fa6c-4495-b39f-2820f8e1e8db

Kao usputna napomena, čini se da metoda GET ne podržava $odaberi operator, ali s obzirom na broj svojstava koje dobivamo u izlazu, to i nije tako velika stvar. The $count operator je također podržan i preporučujemo da ga dodate svojim upitima jer je to jednostavan način da dobijete broj rezultata putem @odata.count aspekt.

A to je ukratko kako raditi s krajnjim točkama grupnih uvida na Graph API-ju. Dvije podržane metode su vrlo jednostavne za rad. Sam izlaz otkriva nekoliko svojstava koja bi inače mogla zahtijevati dodatne ili komplicirane upite, au kombinaciji s podrškom za robusno filtriranje mogu biti korisni za različite scenarije.

Ipak, postoje neka ograničenja kojih morate biti svjesni, počevši od činjenice da nije podržana svaka vrsta grupe. Sigurno iznenađenje za one koji nisu navikli raditi s Entra ID-om, ali vrijedi spomenuti da ExO-ove dinamičke distribucijske grupe neće biti prisutne u izlazu. Sami podaci mogu kasniti dan ili više, pa to svakako uzmite u obzir. A budući da koristimo zasebnu krajnju točku, nepovezanu s onom /v1.0/groups, ne možemo iskoristiti odnose i navigacijska svojstva za “obogaćivanje” izlaza, bez postavljanja dodatnih upita.

Uz to, imati više krajnjih točaka za izvješćivanje/analitiku/uvid uvijek je dobra stvar, a Microsoft je s ovim napravio dobar posao na fronti API-ja. Možda će u budućnosti proširiti izlaz s dodatnim svojstvima i još boljom podrškom za filtriranje (ne možemo koristiti ne operater trenutno). Vrijeme će pokazati.

Web izvor

By Tomšić Damjan

Pozdrav, ja sam Damjan Tomšić, osnivatelj i urednik informatičko edukativnog bloga Oblak Znanja. Za Vas ću se potruditi da dobijete edukativne članke, savjete i recenzije vezane uz osnovno i napredno korištenje računala i interneta. Kontak: Google+, Gmail.