Posljednji korišteni podaci za metode provjere autentičnosti sada su dostupni na Graph-u

04/04/2026

Gledajući kroz Graph API dnevnik promjena za mjesec, primijetio sam zanimljiv dodatak resurs. Naime, na lastUsedDateTime nekretnina je sada dostupna za “roditelja” /autentifikacija/metode krajnja tačka i bilo koji od njenih potomaka, dajući nam informacije o tome kada je određena metoda posljednji put korištena. Možda je to mali dodatak, ali svakako koristan, jer daje stanarima uvid u informacije koje su inače dostupne samo putem evidencije prijave.

Prvo, prvo lastUsedDateTime imovina je trenutno izložena samo pod /betatako da ga možda još ne želite dodati svojim rješenjima i skriptama. S druge strane, poznato je da Microsoft čeka mjesecima, ili čak godinama, prije nego što premjesti bilo koju novu funkcionalnost na službeno podržanu. /v1.0 krajnja tačka. kao primjer, createdDateTime vlasništvo nad istim resursom postoji skoro godinu dana. Dakle, ako mislite da je važno znati kada je određena metoda provjere autentičnosti posljednji put korištena, iskoristite priliku i prijeđite na korištenje /beta konačna tačka 🙂

Što se tiče dozvola, ništa se nije promijenilo. Kao i prije, trebat će vam UserAuthenticationMethod.Read.All prostor za pitanje /autentifikacija/metode krajnja tačka, u obliku delegatskih ili aplikacijskih dozvola. Za prvo će vam također trebati odgovarajuća administrativna uloga Entra, pri čemu je Global Reader najmanje privilegiran.

Evo primjera kako lastUsedDateTime nekretnina izgleda ovako za jednog od korisnika u mom zakupcu:

GET https://graph.microsoft.com/beta/users/user@domain.com/authentication/methods

Kao što nas upozorava zvanična dokumentacija, ne ispunjava svaka metoda autentifikacije vremensku oznaku posljednje upotrebe. Zanimljivo je da je lozinka jedna od pogođenih metoda, jer nijedan korisnik unutar mog stanara ne prijavljuje podatke o korištenju za nju. Za metode koje prijavljuju posljednju vremensku oznaku korištenja, čini se da su podaci ponovo popunjeni za najmanje posljednjih 12 mjeseci, vaša kilometraža može varirati.

Gore pitamo “roditelj” /autentifikacija/metode konačna tačka ali lastUsedDateTime Svojstvo se također popunjava na pojedinačnim krajnjim točkama specifičnim za metodu. Na primjer, na slici ispod, posebno tražimo podatke iz /authentication/microsoftAuthenticatorMethods krajnja tačka:

GET https://graph.microsoft.com/beta/users/user@domain.com/authentication/microsoftAuthenticatorMethods?$select=id,lastUsedDateTime

AuthMethodsLastUsed1

Zanimljivo, dok je tako $odaberi operator radi sasvim dobro s gornjim upitom, čini se da ne radi s većinom drugih srodnih kao što je FIDO (/fido2Methods). Također možete koristiti $filter operator da dobije skup metoda korištenih nakon (ili prije) određenog datuma. Nažalost, čini se da samo neke metode rade i za taj scenario. Pa, čuda Grafa… Evo primjera za svaki slučaj:

GET https://graph.microsoft.com/beta/users/user@domain.com/authentication/methods?$filter=lastUsedDateTime ge 2019-12-08T12:24:20Z

Još jedno zanimljivo zapažanje iz podataka unutar mog stanara je da je Microsoft izgleda promijenio format koji se koristi za lastUsedDateTime svojstva u nekom trenutku, jer izgleda da primjeri iz 2024. uključuju 7-cifreni decimalni razlomak, dok ga noviji izostavljaju. Nije bitna promjena, ali malo iskrivljuje rezultat 🙂

Govoreći o izlazu, ako odaberete upit lastUsedDateTime preko Graph SDK za PowerShell, potrebno je da se pozabavite omiljenim dodatnim svojstvima blob-a. Evo primjera:

Get-MgBetaUserAuthenticationMicrosoftAuthenticatorMethod -UserId user@domain.com -Property id,lastUsedDateTime | select id,@n="lastUsedDateTime";e=$_.AdditionalProperties.lastUsedDateTime

Id                                   lastUsedDateTime
--                                   ----------------
8e51d283-acf4-4bf1-a94a-002712e1a55b 2025-10-17T07:23:56Z
f7567984-c177-46bd-b8aa-933161652903 2024-03-23T16:43:22.1139067Z

Kao sporedna napomena, ako odlučite da dobijete najnovije podatke o upotrebi putem cmdlet-a (ili krajnjih tačaka) specifičnih za metodu, trebali biste razmotriti princip najmanje privilegija i koristiti smanjeni opseg, tj. UserAuthMethod – MicrosoftAuthApp.Read.All umjesto šire UserAuthenticationMethod.Read.All jedan.

Naravno, podatke možete dobiti i od svojih roditelja Get-MgBetaUserAuthenticationMethod cmdlet. Međutim, ne zaboravite da naš dragi SDK još uvijek NE podržava rad sa ništavnim vrijednosti, pa se nemojte iznenaditi ako lastUsedDateTime svojstvo “nedostaje” u izlazu.

Primjer u nastavku trebao bi vam dati raščlambu zadnjih korištenih podataka prema metodi za bilo kojeg datog korisnika:

Get-MgBetaUserAuthenticationMethod -UserId user@domain.com | ? $_.AdditionalProperties.lastUsedDateTime | select Id,@n="Type";e=$_.AdditionalProperties.'@odata.type',@n="lastUsedDateTime";e=$_.AdditionalProperties.lastUsedDateTime

A ako želite skupiti ove podatke za skup korisnika, možete učiniti nešto poput ovoga:

Get-MgUser | %  select @n="UserPrincipalName";e=$user.UserPrincipalName,Id,@n="Type";e=$_.AdditionalProperties.'@odata.type',@n="lastUsedDateTime";e=$_.AdditionalProperties.lastUsedDateTime

www.oblakznanja.com