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.

5001-auditlogs-1672833334

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.

5001-graphpermissions-1672833335

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!

 

5001-scriptpart1-1672833336

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.

5001-scriptpart2-1672833338

Det sista steget är att loopa igenom resultatet för att slutligen exportera datat till en csv fil.

5001-scriptpart5-1672833339

Ett exempel på slutresultatet:

5001-scriptpart4-1672833341

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.

Detta fält är dolt när formuläret visas

This website uses cookies

Cookies ("cookies") consist of small text files. The text files contain data which is stored on your device. To be able to place some type of cookies we need your consent. We at Exobe AB, corporate identity number 556769-5605 use these types of cookies. To read more about which cookies we use and storage duration, click here to get to our cookiepolicy.

Manage your cookie-settings

Necessary cookies

Necessary cookies are cookies that need to be placed for fundamental functions on the website to work. Fundamental functions are for instance cookies that are needed for you to use menus and navigate the website.

Functional cookies

Functional cookies need to be placed for the website to perform in the way that you expect. For instance to remember which language you prefer, to know if you are logged in, to keep the website secure, remember login credentials or to enable sorting of products on the website in the way that you prefer.

Statistical cookies

To know how you interact with the website we place cookies to collect statistics. These cookies anonymize personal data.

Personalization cookies

In order to provide a better experiance we place cookies for your preferances

Ad measurement cookies

To be able to provide a better service and experience we place cookies to tailor marketing for you. Another purpose for this placement is to market products or services to you, give tailored offers or market and give recommendations on new concepts based on what you have bought from us previously.

Ad measurement user cookies

In order to show relevant ads we place cookies to tailor ads for you

Personalized ads cookies

To show relevant and personal ads we place cookies to provide unique offers that are tailored to your user data