Aplikacije (aka registracija aplikacije) su kamen temeljac Entrinog modela proširivosti, koji pokreće proizvode i automatizaciju za kupce i ISV-ove. Dok će većini kupaca vjerovatno biti potrebne samo aplikacije ograničene na određenog zakupca (aplikacija za jednog zakupca), veća preduzeća, konglomerati i ISV-ovi imaju mnogo slučajeva upotrebe u kojima aplikacija kreirana u određenom zakupcu mora biti dostupna većem broju drugih zakupaca. Iako trebate promijeniti samo jednu vrijednost za ovo, ona po defaultu čini aplikaciju dostupnom svim zakupcima, iako oni i dalje moraju znati barem njen identifikator. Može se iznijeti određena zabrinutost zbog takvog pristupa, ali donedavno, jedini način da se ograniči dodavanje aplikacija slučajnom zakupcu bio je dodavanje koda za provjeru i kontrolu pristupa na osnovu tokena za pristup.
Da bi riješio ovaj problem, Microsoft je nedavno dodao signInAudienceRestrictions resurs, koji vam omogućava da navedete skup stanara kojima je dozvoljeno da koriste vašu aplikaciju. Izložen kao svojstvo aplikacije resursa, ovaj novi resurs ima dvije vrijednosti koje možete izabrati: neograničena publika, što je zadana postavka i odgovara iskustvu koje smo do sada imali (kao što je bez ograničenja o tome koji zakupac može dodati aplikaciju), kao i dozvoljenoTenantsAudiencekoji vam omogućava da navedete skup stanara kojima se aplikacija može dodati, uključujući i stanara kuće.
Prilikom konfigurisanja dozvoljeneTenantsAudience morate navesti listu (kolekciju nizova) od dozvoljeniTenantIdskoji bi trebao uključivati barem jedan GUID. Opciono, možete uključiti zakupca kuće, kao kod stanara u kojem se nalazi objekat registracije aplikacije. Da biste to učinili, možete ga navesti kao dio dozvoljeniTenantIds vrijednost ili skup isHomeTenantAllowed vlasništvo nad pravi. Zapravo, ovo je trenutno jedina podržana vrijednost, iako njeno prisustvo sugerira buduća poboljšanja.
Da ažuriramo skup dozvoljenih stanara za aplikaciju, moramo zakrpiti njenu vrijednost signInAudienceRestrictions svojstvo (imajte na umu da navedeno svojstvo nije vraćeno po defaultu, pa ako želite provjeriti njegovu vrijednost, morate koristiti $odaberi operater). Dozvole potrebne za ovu operaciju su Application.ReadWrite.All ili ekvivalent plus odgovarajuća privilegovana uloga kada se koristi model dozvole delegata, kao što je navedeno u službenoj dokumentaciji. 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 je označeno a 204 – Nema sadržaja odgovor i prazan izlaz. Kao što je gore spomenuto, ako želite potvrditi da je nova vrijednost uspješno sačuvana, morate izdati GET zahtjev sa $odaberi operater:
GET https://graph.microsoft.com/beta/applications/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx?$select=signInAudienceRestrictions
Da biste ažurirali svojstvo putem Graph SDK za PowerShell, možete koristiti Update-MgBetaApplication cmdlet. Imajte na umu da vam je za ovo potreban beta modul/krajnja tačka, jer 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 kroz Entra ID Administrativni centar, čak ni kao dio manifesta aplikacije.
Također, zapamtite da ovo svojstvo ima utjecaj samo na aplikacije s više korisnika. Ako imate jednog stanara, prvo morate postaviti vrijednost signInAudience vlasništvo nad AzureADMultipleOrgs.
Pogledajte snimak ekrana u nastavku kako ova funkcija sprječava druge stanare da pristupe aplikaciji. Svaki pokušaj pružanja principala usluge za aplikaciju u zakupcu koji nije dodan u spremište dozvoljeniTenantIds će rezultirati generiranjem greške ili an AADSTS7000119 jedan. Poruka o grešci će biti u sljedećem redu:
Klijentsku aplikaciju ‘ExOPS app’ s identifikatorom ‘xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx’ zakupac ‘Blabla’ ne smije koristiti s identifikatorom ‘yyyyyyyy-yyyy-yyyyy-yyyyyyyy
ili
Postavke aplikacije xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ne dozvoljavaju kreiranje ServicePrincipal u zakupcu yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy zbog SignInAudienceRestrictions konfiguracije

Greška se generira prije početka procesa pristanka, tako da je ne možete zaobići postavljanjem principala usluge koji odgovara dotičnoj aplikaciji, čak i kao čuvar mjesta.
Ako trebate dozvoliti da se aplikacija izvodi u dodatnim stanarima, dodajte njihove GUID-ove u dozvoljeniTenantIds lista putem drugog PATCH zahtjeva. Da biste poništili promjene i uklonili sva ograničenja u aplikaciji, morat ćete ažurirati tip tip 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"
}
}
Zapamtite da jeste dozvoljenoTenantsAudience vrijednost zahtijeva da se navede barem jedan zakupac, tako da je ne možete jednostavno “poništiti” kao pokušaj vraćanja ograničenja. Umjesto toga, trebate postaviti vrijednost “type” na neograničenu publiku. U ovom trenutku neki od vas bi mogli biti malo uznemireni zbog toga šta je ovo dođavola tip imovina koju sam pomenuo jesu. 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 kako bi to spomenuo dozvoljeniTenantIds svojstvo ima ograničenje od 20 vrijednosti. Što mi sve zvuči pomalo ograničavajuće…