Kako Microsoft 365 ulazi u svoje tinejdžerske godine, počinje se javljati određena zrelost (potpuna namjera igre riječi). Danas se puno manje govori o migraciji, usvajanju ili čak novim značajkama, a više se fokusira na upravljanje, sigurnost, automatizaciju. Nije da su scenariji poput pridržavanja najboljih praksi ili usklađivanja s određenim regulatornim zahtjevima novi, ali sada su dosta prisutniji. Kako ih sve više i više kupaca počinje promatrati, vidjeli smo kako se pojavljuju neki proizvodi koji ciljaju na te specifične potrebe.
Sada, unatoč onome što će vam ljudi iz marketinga/prodaje reći, cijela “konfiguracija kao kod” nije tako nova, čak ni za Microsoft 365. Zapravo, Microsoft 365 DSCprojekt otvorenog koda koji koristi PowerShell konfiguracija željenog stanja za upravljanje M365 resursima, postoji od 2019. Komercijalni alati, kao što je CoreView Upravitelj konfiguracijetakođer su dobili na snazi. Kao takvo, nije iznenađujuće da Microsoft sada traži službeno podržan (i kao što možete očekivati, plaćeni) alat za isto.
Upoznajte Unified Tenant Configuration Management aka UTCM! Prije nego što zaronimo u nekoliko stvari treba biti potpuno jasno, počevši od činjenice da je ovo izdanje doista pregled. Dalje, UTCM predstavlja ne samo sastavni dio novog proizvoda koji Microsoft namjerava izdati kasnije ove godine, već je i platforma na kojoj korisnici i ISV-ovi mogu izgraditi vlastita rješenja. Kao takvo, ne iznenađuje vidjeti da je pristup API-ju korišten u ovom pregledu, stoga budite upozoreni da ćemo gledati hrpu koda, a ne neko blistavo korisničko sučelje.
Sadržaj objave
Uvod i preduvjeti
Ukratko, UTCM je službeno podržana verzija Microsoft 365 DSC. Drugim riječima, to je alat koji vam omogućuje da dobijete konfiguraciju svojih zakupaca Microsoft 365 u određenom trenutku, otkrijete sva odstupanja od unaprijed definirane osnovne vrijednosti ili bilo kojeg prethodnog stanja i na kraju pokrenete ispravak kako biste stanje vratili u red. Sve se to može napraviti programski na strukturiran i predvidljiv način, ili drugim riječima, može biti potpuno automatizirano. Ipak, trenutačni pregled uključuje samo bitove snimke, nadzora i konfiguracije (sve je navedeno u nastavku) i ne dopušta automatizirano ispravljanje.
Gornji opis već bi vas trebao upozoriti na potencijalni utjecaj koji alat poput UTCM može imati na vašeg stanara, stoga ne čudi da dolazi s nekim preduvjetima i puno upozorenja. Microsoft je odabrao pristup koji od nas zahtijeva da ručno dodijelimo skup potrebnih dopuštenja, koji će ovisiti o skupu resursa koje planirate nadzirati, umjesto prethodnog odobrenja onoga što bi inače bio previsok skup opsega na odgovarajućem principalu usluge.
Kad smo već kod toga, prije nego što možete isprobati UTCM pregled, morate ručno osigurati principala usluge koji koristi. Ovo će se automatizirati kada alat dođe u GA, a samo upravljanje dozvolama odvijat će se putem korisničkog sučelja. Za pregled možete upotrijebiti sljedeći Graph SDK za PowerShell cmdlet za pružanje potrebnog glavnog objekta usluge:
Connect-MgGraph -Scopes 'Application.ReadWrite.All' New-MgServicePrincipal -AppId '03b07b79-c5bc-4b5e-9bfa-13acf4a99998'
gdje 03b07b79-c5bc-4b5e-9bfa-13acf4a99998 je AppID od Unified Tenant Configuration Management aplikacija prve strane koju alat koristi. Možete naravno i vi koristiti Graph API za ovaj korak ako želite.
Ovaj korak će osigurati SP objekt, ali mu ne daje nikakva dopuštenja za pristup resursima unutar vaše organizacije. Za taj će dio biti potreban dodatni rad. Kako biste se pridržavali načela najmanjih privilegija, preporučuje se da navedete skup resursa koje planirate nadzirati i dodijelite samo minimalni skup dozvola potrebnih za njihovo pokrivanje. Na primjer, ako planirate nadzirati Entrina pravila uvjetnog pristupa, Politika.Pročitaj.Sve opseg bi trebao učiniti.
Jedna važna stvar koju ovdje treba napomenuti je da kad god se govori o principalu usluge UTCM, svaka referenca dopuštenja odnosi se na dopuštenja aplikacije. Svi “pozadinski” procesi oslanjat će se na navedenog principala usluge i dopuštenja koja smo mu dodijelili, bez uključenog korisničkog elementa. U gornjem primjeru Politika.Pročitaj.Sve opseg mora biti odobren kao AppRole putem odgovarajućeg cmdleta/krajnje točke. Možete se obratiti na službena dokumentacija za primjere kako to učiniti.
Osim dopuštenja otisnutih na principalu usluge UTCM, koja su, kako je gore objašnjeno, odgovorna za “pozadinske” operacije, dva opsega mogu se koristiti za određivanje korisnika (ili aplikacija) koji će moći administrirati značajku. Imamo samo za čitanje ConfigurationMonitoring.Read.All opseg i čitanje-pisanje ConfigurationMonitoring.ReadWrite.All jedan. One su dostupne iu verziji dopuštenja za delegate i aplikacije. Za prvo, korisnik će također trebati ulogu administratora kako bi mogao raditi s UTCM-om. Trenutačno, bilo koja uloga Entra ID označena s privilegiran oznake su podržane.
Zapravo, imamo jasnu razliku između administrativnih zadataka, koji se mogu obavljati ili kao administratorski korisnik ili kao aplikacija, na pozadinskim zadacima, koji se uvijek izvode u kontekstu principala usluge UTCM. Osim ako nije drugačije navedeno, svi dolje navedeni primjeri izvode se putem alata Graph explorer, stoga koriste model dopuštenja delegata.
Funkcionalnost praćenja
Sada kada imamo neku ideju što alat radi i kako ga pokrenuti, proučimo neke osnovne scenarije. Podrazumijeva se da alat pokriva mnogo više od onoga što možemo navesti u ovom kratkom članku, stoga provjerite i primjere u službena dokumentacija.
Osnovni građevni blok za UTCM je “monitor”. Monitor (ili konfiguracijaMonitor objekt) je neka vrsta planiranog zadatka koji se povremeno pokreće u vašem zakupcu i prikuplja podatke za navedene resurse. Skup od sredstva navedene kao dio konfiguracije nadzora predstavljaju svoje osnovna linijapakiran kao a konfiguracijaBaseline objekt, ili drugim riječima, JSON blob. Osnovna linija i displayName jedina su potrebna svojstva pri stvaranju novog monitora, ali vrlo je dobra ideja dodati i detaljne opis.
Imajte na umu da trenutno nisu podržani svi Microsoft 365 resursi. Kako bi UTCM mogao nadzirati određeni resurs, API-ji ili PowerShell cmdleti već moraju postojati. Iako je tim vršio pritisak na različite timove unutar Microsofta kako bi osigurali dostupnost programskih sučelja, još smo daleko od potpune pokrivenosti. Stoga je važno da pregledate popis podržana radna opterećenja i resursi prije nego odlučite što bi vaš monitor(i) trebao pokrivati.
Imajući gore navedeno na umu, ovdje je primjer stvaranja novog monitora konfiguracije, izdavanjem POST zahtjeva protiv /admin/configurationManagement/configurationMonitors krajnja točka. Resurs koji smo odabrali pokriti je Entrina politika autorizacije koju predstavlja microsoft.entra.authorizationpolicy resourceType vrijednost. Moramo također uključiti svojstva koje želimo nadzirati, čiji popis može biti uzak ili širok koliko vam odgovara. Osim toga osigurati posebna imovina navedena je u vrijednosti od Predstavitisignalizirajući da se radi o resursu koji mora postojati u svakom trenutku. Na kraju, morat ćete također navesti IsSingleInstance svojstvo, koje je obavezno za Entra resurse (nije potrebno za ExO).
POST https://graph.microsoft.com/beta/admin/configurationManagement/configurationMonitors/
{
"displayName": "Basic Entra monitor",
"description": "This is a basic Entra ID monitor created via the Graph API. Only covers the Entra ID authorization policy resource",
"baseline":
{
"displayName": "Entra Authorization Policy",
"description": "Entra Authorization Policy",
"resources": [
{
"displayName": "AADAuthorizationPolicy",
"resourceType": "microsoft.entra.authorizationpolicy",
"properties": {
"DefaultUserRoleAllowedToCreateSecurityGroups": true,
"DefaultUserRoleAllowedToCreateApps": true,
"DefaultUserRoleAllowedToCreateTenants": true,
"DefaultUserRoleAllowedToReadOtherUsers": true,
"Ensure":"Present",
"IsSingleInstance":"True"
}
}
]
}
}
The DOBITI/POPIS, AŽURIRATI i IZBRISATI metode za konfiguracijaMonitor resursa raditi kao što bi se očekivalo, stoga ćemo vas samo uputiti na primjere u službenoj dokumentaciji radi kratkoće. Ipak, nekoliko važnih svojstava zaslužuje poseban spomen. Post kreiranja, svaki objekt monitora to dobiva Idpo kojem se možete pozvati na njega. Također će dobiti žig s tenantIdbudući da su scenariji s više stanara kruh i maslac UTCM-a. The monitorRunFrequencyInHours svojstvo vam daje interval u kojem dolazi do prikupljanja podataka. Trenutno ne možete promijeniti zadane postavke 6 sati vrijednost, iako se Microsoft obvezao dopustiti određenu prilagodljivost u budućim izdanjima.
The runAsUTCMServicePrincipal svojstvo će uvijek biti postavljeno na pravibudući da monitori danas rade samo u kontekstu principala usluge UTCM. Kao rezultat toga, trčanjeOnBehalfOf vrijednost treba navesti principala usluge UTCM (onog koji smo osigurali kao dio preduvjeta). Na kraju, osnovna linija svojstvo detaljno prikazuje resurse/svojstva koje trenutni monitor pokriva. Kao osnovna linija predstavlja odnos, morate koristiti ili $proširi operatora da ga uključi u izlaz ili izda samostalan zahtjev putem Nabavite osnovnu liniju metoda.
Budući da smo spomenuli $proširi imajte na umu da su podržani i drugi standardni Graph operatori. Koristite $filter operater za dohvaćanje monitora koji odgovaraju određenim kriterijima, $top ograničiti veličinu rezultata i $odaberi da biste dohvatili samo svojstva koja vas zanimaju. Evo primjera kako dohvatiti monitore po imenu i vratiti metapodatke kreatora:
GET https://graph.microsoft.com/beta/admin/configurationManagement/configurationMonitors?$filter=displayName eq 'Basic Entra monitor'&$select=id,createdBy
Kako se monitori izvršavaju, pojedinosti o svakom pokretanju mogu se dohvatiti putem konfiguracijaMonitoringResult resurs. Iskoristite metodu LIST za dohvaćanje podataka za sva izvođenja ili metodu GET za određene instance. Krajnja točka podržava standardne Graph operatore, tako da možete jednostavno filtrirati prema monitorId vrijednost. Koristite $top operator za kontrolu veličine stranice ili praćenje @odata.sljedeća veza aspekt za dobivanje cijelog skupa rezultata (vraća se na stranicama od 10 prema zadanim postavkama).
GET https://graph.microsoft.com/beta/admin/configurationManagement/configurationMonitoringResults?$filter=monitorId eq '67c61424-2e82-4fcb-895d-22096b918f5a'
Unutar izlaza, dobit ćete generičke podatke o monitoru i stanarima, vrijeme početka i završetka za dani rad, njegov status i što je najvažnije, broj “driftova” na koje ste naišli. Drift se odnosi na odstupanje od željenog stanja danog objekta, kao što je njegova odsutnost ili nepoklapanje vrijednosti svojstava. Ali više o tome u kasnijim odjeljcima.
The drugi članak u ovom početnom pregledu UTCM će se pokriti rad sa snimkama i otkrivanje pomaka konfiguracije, kao i popis nekih ograničenja u trenutnom pregledu.
