2018-10-04
Vem bjöd in vem?
Vem bjöd in vem | Med den externa delningsfunktionen i O365 har Microsoft gett företag ett kraftfullt och enkelt sätt att samarbeta med externa partners. Då nya gästanvändare läggs till varje dag frågade en av mina kunder om det är möjligt att spåra vem som bjudit in vem eftersom de ville spåra detta och få dessa data tillgängliga när en användare lämnar företaget. De vill då kunna göra en sökning för att se vilka gäster som bjudits in av den användare som slutat.
I audit loggen i Azure AD kan detta enkelt uppnås genom att leta efter aktiviteten ”Invite external users”. Det längsta datumintervallet du kan välja är en månad.
Detta måste dock göras manuellt och för att ta reda på vem som inbjöd vem du behöver varje post öppnas vilket tar tid om det är många poster att gå igenom. Vi vill så klart göra det med hjälp av powershell istället för att kunna automatisera processen.
Med graph api’t har Microsoft exponerat informationen så den är lätt att komma åt. När vi läst ut önskat data kan vi lagra det offline i en csv-fil, databas etc och sedan fatta beslut om vad du ska göra med informationen. För min kund är detta en viktig del eftersom du bara har data för den senaste månaden så vi måste lagra den här informationen så den kan användas för att söka efter gäster inbjudna av personer som slutat på företaget.
I det här blogginlägget kommer jag bara exportera det till en csv-fil men principen är den samma.
Vi kommer att använda graph API för att hämta datat. För att kunna göra det måste vi först skapa en applikation i Azure AD som vi kommer att ge de nödvändiga behörigheter som behövs för att läsa audit log data. Hur en applikation läggs till kan du läsa om genom att spana in min kollega Daniels post:
Eftersom skriptet ska kunna köras schemalagt behöver vi använda applikationsrättigheter.
När applikationen är skapad i Azure och har fått de nödvändiga rättigheterna måste den godkännas av en administratör. Modifiera url:en nedan i en text editor och ersätt applications id och redirect url med de från den applikationen som skapats:
https://login.microsoftonline.com/common/adminconsent?client_id=<Application ID>&state=12345&redirect_uri=<redirect url>
Använd sedan länken för att godkänna applikationen. När applikationen har godkänts kan följande skript användas för att komma åt data. Observera att beta-endpoints används för att komma åt audit data.
Ladda ner skript här!
Den första funktionen används för att logga in och ge en token till applikationen så vi tillåts att läsa datat. Den andra funktionen används för att se när en gäst senast loggade in.
Vi har också GuestTracker-klassen som används för att bygga ett objekt för att lagra resultatet.
Nästa del i skriptet är där vi får vår token och läser data. Ange applicationsID, Secret och TenantID.
Det sista steget är att loopa igenom resultatet för att slutligen exportera datat till en csv fil.
Ett exempel på slutresultatet:
Det va allt för denna gång!
/Henrik
Relaterade inlägg
Vill du vara säker på att inte missa något
Som du märker brinner vi för att dela med oss av våra erfarenheter, nyttiga lärdomar och spaningar ut i exosfären. Se till att följa vårt nyhetsbrev eller vårt flöde på Linkedin så du inte missar något.