Aplikacije (aka registracije aplikacija) kamen su temeljac Entrinog modela proširivosti, koji pokreće proizvode i automatizaciju za kupce i ISV-ove. Dok će većina kupaca vjerojatno trebati samo aplikacije ograničene na određenog stanara (aplikacija za jednog stanara), veća poduzeća, konglomerati i ISV-ovi imaju mnoštvo slučajeva upotrebe u kojima aplikacija stvorena u određenom zakupcu mora biti dostupna za više drugih zakupaca. Iako za ovo trebate promijeniti samo jednu vrijednost, prema zadanim postavkama aplikaciju čini dostupnom svim zakupcima, iako i dalje moraju znati barem njen identifikator. Može se izraziti određena zabrinutost u vezi s takvim pristupom, ali sve donedavno, jedini način da se ograniči dodavanje aplikacija nasumičnom zakupcu bilo je dodavanje koda za provjeru i kontrolu pristupa na temelju pristupnog tokena.
Kako bi riješio ovaj problem, Microsoft je nedavno dodao signInAudienceRestrictions resurs, koji vam omogućuje da navedete skup stanara kojima je dopušteno da iskoriste vašu aplikaciju. Izloženo kao vlasništvo za primjena resurs, ovaj novi resurs ima dvije vrijednosti koje možete izabrati: neograničena publika, koji je zadani i odgovara iskustvu koje smo imali do sada (kao što nema ograničenja o tome koji stanar može dodati aplikaciju), kao i dozvoljenoTenantsAudiencekoji vam omogućuje popis skupa stanara kojima se aplikacija može dodati, uključujući stanara doma.
Prilikom konfiguriranja dozvoljenoTenantsAudience morate dati popis (zbirku nizova) od dozvoljeniTenantIdskoji bi trebao uključivati barem jedan GUID. Po izboru možete uključiti kućnog stanara, kao kod stanara u kojem se nalazi objekt registracije aplikacije. Da biste to učinili, možete ga navesti kao dio dozvoljeniTenantIds vrijednost ili postavite isHomeTenantAllowed vlasništvo na pravi. Zapravo, ovo je trenutno jedina podržana vrijednost, iako njezina prisutnost sugerira buduća poboljšanja.
Da ažuriramo skup dopuštenih zakupaca za aplikaciju, moramo zakrpiti njezinu vrijednost signInAudienceRestrictions svojstvo (imajte na umu da navedeno svojstvo nije vraćeno prema zadanim postavkama, pa ako želite provjeriti njegovu vrijednost, morate koristiti $odaberi operater). Potrebna dopuštenja za ovu operaciju su Application.ReadWrite.All ili ekvivalent plus odgovarajuća povlaštena uloga kada se koristi model dopuštenja delegata, kao što je navedeno u službena dokumentacija. Evo primjera:
PATCH https://graph.microsoft.com/beta/applications/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
{
"signInAudience": "AzureADMultipleOrgs",
"signInAudienceRestrictions": {
"@odata.type": "#microsoft.graph.allowedTenantsAudience",
"isHomeTenantAllowed": true,
"allowedTenantIds": [
"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
]
}
}
Uspješno izvršenje označeno je a 204 – Nema sadržaja odgovor i prazan izlaz. Kao što je gore navedeno, ako želite potvrditi da je nova vrijednost uspješno spremljena, morate izdati GET zahtjev s $odaberi operater:
GET https://graph.microsoft.com/beta/applications/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx?$select=signInAudienceRestrictions
Da biste ažurirali svojstvo putem Graph SDK-a za PowerShell, možete iskoristiti Ažuriranje-MgBetaApplication cmdlet. Imajte na umu da vam je za to potreban beta modul/krajnja točka, budući da je svojstvo trenutno izloženo samo u njemu, kao dio pregleda. Kao još jedna posljedica statusa pregleda, trenutno ne možete vidjeti ili izložiti navedeno svojstvo putem Entra ID centra za administraciju, čak ni kao dio manifesta aplikacije.
Također, zapamtite da ovo svojstvo ima učinak samo na aplikacije s više stanara. Ako imate jednog stanara, prvo morate postaviti vrijednost signInAudience vlasništvo na AzureADMultipleOrgs.
Kako značajka sprječava druge stanare da pristupe aplikaciji, pogledajte snimak zaslona u nastavku. Svaki pokušaj pružanja principala usluge za aplikaciju u zakupcu koji nije dodan skupu dozvoljeniTenantIds rezultirat će generiranjem pogreške, odnosno an AADSTS7000119 jedan. Poruka o pogrešci bit će u sljedećem redu:
Klijentsku aplikaciju ‘ExOPS app’ s identifikatorom ‘xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx’ nije dopušteno koristiti stanar ‘Blabla’ s identifikatorom ‘yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyy’
ili
Postavke aplikacije xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ne dopuštaju stvaranje ServicePrincipala u zakupcu yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy zbog konfiguracije SignInAudienceRestrictions.
Pogreška se generira prije nego što se pokrene postupak pristanka, tako da je ne možete zaobići postavljanjem principala usluge koji odgovara dotičnoj aplikaciji, čak ni kao rezervirano mjesto.
Ako trebate dopustiti da se aplikacija pokreće u dodatnim zakupcima, dodajte njihove GUID-ove u dozvoljeniTenantIds popis putem drugog PATCH zahtjeva. Da biste poništili promjene i uklonili sva ograničenja za aplikaciju, morat ćete ažurirati vrstu vrsta vlasništvo (kao u, @odata.type) vrijednost na neograničeno. Evo primjera kako to učiniti:
PATCH https://graph.microsoft.com/beta/applications/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
{
"signInAudienceRestrictions": {
"@odata.type": "#microsoft.graph.unrestrictedAudience"
}
}
Upamtite da je dozvoljenoTenantsAudience vrijednost zahtijeva da barem jedan zakupac bude naveden, tako da je ne možete jednostavno “poništiti” kao pokušaj vraćanja ograničenja. Umjesto toga morate postaviti vrijednost “vrsta” na neograničena publika. U ovom trenutku neki od vas bi se mogli malo uznemiriti što je ovo dovraga vrsta imovina koju sam gore spomenuo je. Izdavanje GET zahtjeva sa $select=signInAudienceRestrictions daje vam odgovor:
Siguran sam da se to moglo bolje riješiti, ali nemojte kriviti glasnika 🙂
/// AŽURIRANJE: Microsoft je upravo ažurirao dokumentaciju u kojoj spominje da je dozvoljeniTenantIds svojstvo ima ograničenje od 20 vrijednosti. Što mi sve zvuči nekako ograničavajuće…


