Aktualizace požadovaných oprávnění aplikace v MICROSOFT Entra ID
Při nastavování aplikace pomocí Microsoft Entra ID můžou vývojáři požádat o přístup k datům z jiných aplikací a služeb pomocí oprávnění. Můžou požádat o oprávnění přidáním statických oprávnění do manifestu aplikace nebo dynamickým vyžádáním oprávnění za běhu. Uživatelé nebo správci se pak můžou rozhodnout udělit oprávnění během souhlasu, což aplikaci umožní přístup k datům, která potřebuje.
S vývojem funkcí aplikace se prostředky, které vyžaduje přístup, také mění. Tyto změny můžou zahrnovat povolení nových funkcí, odstranění zbytečného přístupu nebo nahrazení vysoce privilegovaných oprávnění méně privilegovanými oprávněními. Tento článek vysvětluje, jak aktualizovat oprávnění, která vaše aplikace požaduje, pomocí Centra pro správu Microsoft Entra a volání rozhraní Microsoft Graph API.
Aktualizace oprávnění pro vaši aplikaci není jen osvědčeným postupem zabezpečení, ale také způsobem, jak vylepšit uživatelské prostředí a přijetí aplikace. Následující část popisuje některé výhody aktualizace oprávnění pro vaši aplikaci:
- Pokud má vaše aplikace novou funkci, můžete požádat o další oprávnění, která aplikaci umožní přístup k dalším prostředkům, které potřebuje.
- Zákazníci budou pravděpodobně vaši aplikaci přijímat, pokud požaduje pouze nejméně privilegovaná oprávnění potřebná k fungování. Ukazuje, že vaše aplikace respektuje ochranu osobních údajů a ochranu dat zákazníka a nemá přístup k více prostředkům, než potřebuje.
- Pokud je navíc ohrožená vaše aplikace, je menší poloměr výbuchu, pokud má méně nebo méně privilegovaných oprávnění. To znamená, že útočník má menší přístup k datům a prostředkům zákazníka, a proto je možné škody snížit.
- Díky aktualizaci oprávnění pro vaši aplikaci můžete zlepšit zabezpečení, použitelnost a dodržování předpisů vaší aplikace a vybudovat důvěru se zákazníky.
Požadavky
Pokud chcete aktualizovat požadovaná oprávnění aplikace, potřebujete:
- Uživatelský účet Microsoft Entra. Pokud ho ještě nemáte, vytvořte si účet zdarma.
- Jedna z následujících rolí: Správce aplikací, Správce cloudových aplikací. Vlastník aplikace, který není správcem, může aktualizovat požadovaná oprávnění aplikace.
Scénáře pro aktualizaci oprávnění
Následující část obsahuje tři hlavní scénáře, ve kterých potřebujete aktualizovat oprávnění, která vaše aplikace požaduje:
- Přidání oprávnění do aplikace
- Odebrání nepoužívaných oprávnění z aplikace
- Nahrazení oprávnění
Poznámka:
Aktualizace požadovaných oprávnění pro vaši aplikaci automaticky neuděluje nebo neodvolá přístup k chráněným prostředkům vaší aplikace. Vaši zákazníci nebo správci ve vaší organizaci musí udělit souhlas s novými přidanými oprávněními nebo ručně odvolat oprávnění.
Přidání oprávnění do aplikace
Oprávnění můžete přidat, pokud má vaše aplikace novou funkci, která potřebuje oprávnění, která předtím nepotřebovala.
Osvědčeným postupem je požádat pouze o přístup k minimálním oprávněním, která vaše aplikace potřebuje k fungování. Pokud potřebujete přidat nové oprávnění pro podporu nových funkcí ve vaší aplikaci, požádejte o oprávnění pouze s nejnižšími oprávněními pro tuto funkci.
Pokud například chcete do aplikace přidat funkci e-mailových oznámení, musí mít přístup k e-mailům uživatele. K tomu budete muset požádat o přístup k Mail.ReadWrite
oprávnění.
Přidání oprávnění do statického souhlasu
Statický souhlas je způsob, jak požadovat oprávnění od uživatelů nebo správců v době registrace aplikace, a ne za běhu. Statický souhlas vyžaduje, aby aplikace deklaruje všechna oprávnění, která potřebuje, v podokně Registrace aplikací v Centru pro správu Microsoft Entra. Pomocí Centra pro správu Microsoft Entra můžete aktualizovat oprávnění pouze pro statický souhlas. Další informace o různých typech souhlasu najdete v tématu Typy souhlasu. Informace o tom, jak aktualizovat oprávnění pro dynamický souhlas, najdete na kartě Microsoft Graph tohoto článku.
V této části se dozvíte, jak přidat oprávnění do statického souhlasu.
Oprávnění ke statickému souhlasu můžete přidat dvěma různými způsoby v Centru pro správu Microsoft Entra:
Možnost 1: Přidání oprávnění v podokně oprávnění rozhraní API
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací nebo vlastník aplikace.
- Přejděte k aplikacím> identit>Registrace aplikací> Všechny aplikace.
- Vyhledejte registraci aplikace, ke které chcete přidat oprávnění, a vyberte ji. Oprávnění můžete přidat dvěma různými způsoby:
- Přidání oprávnění v podokně oprávnění rozhraní API
Možnost 2: Přidání oprávnění k manifestu aplikace
- V levém navigačním podokně v části Spravovat skupinu nabídek vyberte Manifest. Výběr otevře editor, který umožňuje přímo upravit atributy objektu registrace aplikace.
- Pečlivě upravte
requiredResourceAccess
vlastnost v souboru manifestu aplikace. resourceAppId
Přidejte vlastnost aresourceAccess
vlastnost a přiřaďte požadovaná oprávnění.- Uložte provedené změny.
K dokončení následujících kroků přidávání oprávnění potřebujete následující prostředky a oprávnění:
- Spusťte požadavky HTTP v nástroji podle vašeho výběru, například v aplikaci nebo prostřednictvím Graph Exploreru.
- Spusťte rozhraní API jako uživatel s alespoň správcem cloudových aplikací nebo jako vlastník registrace cílové aplikace.
- Aplikace použitá k provedení těchto změn musí být udělena
Application.ReadWrite.All
oprávnění.
Identifikujte oprávnění, která vaše aplikace vyžaduje, JEJICH ID oprávnění a jestli se jedná o role aplikací (oprávnění aplikace) nebo delegovaná oprávnění. Pokud například chcete požádat o oprávnění Microsoft Graphu, podívejte se na oprávnění Microsoft Graphu pro seznam oprávnění a jejich ID.
Přidejte do své aplikace požadovaná oprávnění Microsoft Graphu. Následující příklad volá rozhraní API pro aktualizaci aplikace , aby přidala požadovaná oprávnění Microsoft Graphu k registraci aplikace identifikované PODLE ID
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
objektu . Tento příklad používáAnalytics.Read
aApplication.Read.All
deleguje oprávnění a oprávnění aplikace. Microsoft Graph je identifikován jako ServicePrincipal objekt s00000003-0000-0000-c000-000000000000
jeho globálně jedinečnýmAppId
.PATCH https://graph.microsoft.com/v1.0/applications/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Content-Type: application/json { "requiredResourceAccess": [ { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e03cf23f-8056-446a-8994-7d93dfc8b50e", "type": "Scope" }, { "id": "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30", "type": "Role" } ] } ] }
Přidání oprávnění k dynamickému souhlasu
Dynamický souhlas je způsob, jak požadovat oprávnění od uživatelů nebo správců za běhu, a ne staticky je deklarovat v podokně Registrace aplikací. Dynamický souhlas umožňuje aplikaci požádat pouze o oprávnění, která potřebuje pro konkrétní funkci, a v případě potřeby získat souhlas uživatele nebo správce. Dynamický souhlas je možné použít s delegovanými oprávněními a v kombinaci s oborem /.default
požádat o souhlas správce pro všechna oprávnění.
Přidání oprávnění k dynamickému souhlasu:
Použijte Microsoft Graph: Přidejte požadovaná oprávnění Microsoft Graphu k registraci aplikace. Tento příklad používá
Analytics.Read
aApplication.Read.All
deleguje oprávnění a oprávnění aplikace. Nahraďte hodnoty v oborech hodnotami všech delegovaných oprávnění Microsoft Graphu, která chcete pro aplikaci nakonfigurovat.Požadavek by měl vypadat jako v následujícím příkladu:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=Analytics.Read+Application.Read
Použijte MSAL.js: Nahraďte hodnoty v oborech hodnotami všech delegovaných oprávnění Microsoft Graphu, která chcete pro aplikaci nakonfigurovat.
const Request = { scopes: ["openid", "profile"], loginHint: "example@domain.net" }; myMSALObj.ssoSilent(Request) .then((response) => { // your logic }).catch(error => { console.error("Silent Error: " + error); if (error instanceof msal.InteractionRequiredAuthError) { myMSALObj.loginRedirect(loginRequest); } });
Udělení souhlasu pro přidaná oprávnění pro podnikovou aplikaci
Po přidání oprávnění do aplikace musí uživatelé nebo správci udělit souhlas s novými oprávněními. Uživatelům, kteří nejsou správci, se zobrazí výzva k vyjádření souhlasu, když se přihlásí k vaší aplikaci. Uživatelé správců na druhé straně můžou udělit souhlas s novými oprávněními jménem všech uživatelů ve své organizaci při prvním přihlášení k aplikaci nebo v Centru pro správu Microsoft Entra.
Když přidaná oprávnění vyžadují souhlas správce, požadované akce se liší v závislosti na typu aplikace:
- Jedna aplikace tenanta a víceklientová aplikace v domovském tenantovi: Uživatel se musí přihlásit jako alespoň roli správce privilegovaných rolí a udělit souhlas celého tenanta.
- Víceklientské aplikace v tenantech zákazníka: Uživateli se při příštím pokusu o přihlášení zobrazí nové výzvy k vyjádření souhlasu. Pokud oprávnění vyžadují pouze souhlas uživatele, může uživatel udělit souhlas. Pokud oprávnění vyžadují souhlas správce, musí se uživatel obrátit na správce, aby udělil souhlas.
Ukončení vyžádání nepoužívaných oprávnění
Odebráním oprávnění můžete snížit riziko vystavení citlivých dat nebo narušení zabezpečení a zjednodušit proces souhlasu pro uživatele nebo správce. Pokud už vaše aplikace nepotřebuje oprávnění, měli byste aplikaci zabránit v jejím vyžádání odebráním oprávnění z požadovaného přístupu a kódu registrace aplikace. Například aplikace, která už neodesílá e-mailová oznámení, může oprávnění odebrat Mail.ReadWrite
.
Důležité
Odebrání oprávnění z registrace aplikace automaticky neodvolá oprávnění, která už aplikace udělila. Oprávnění musíte odvolat ručně. Další informace najdete v části Odvolání souhlasu pro odebraná oprávnění pro podnikovou aplikaci tohoto článku.
Ukončení vyžádání oprávnění pro statický souhlas
Pokud chcete ukončit vyžádání oprávnění, která vyžadují statický souhlas, musíte oprávnění odebrat z podokna Registrace aplikací. Správce tenanta musí také odvolat oprávnění v podokně Podnikové aplikace . Další informace o odvolání oprávnění udělených podnikové aplikaci najdete v tématu Odvolání oprávnění pro podnikovou aplikaci.
V této části se dozvíte, jak zastavit vyžádání oprávnění pro statický souhlas.
Oprávnění ze statického souhlasu můžete odebrat dvěma různými způsoby v Centru pro správu Microsoft Entra:
Možnost 1: V podokně oprávnění rozhraní API
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací nebo vlastník aplikace.
- Přejděte k aplikacím> identit>Registrace aplikací> Všechny aplikace.
- Vyhledejte registraci aplikace, ze které chcete odebrat oprávnění, a vyberte ji.
- Odeberte oprávnění z podokna oprávnění rozhraní API:
Možnost 2: Z manifestu aplikace
- V levém navigačním podokně v části Spravovat skupinu nabídek vyberte Manifest. Otevře se editor, který umožňuje přímo upravit atributy objektu registrace aplikace.
- Pečlivě upravte
requiredResourceAccess
vlastnost v souboru manifestu aplikace. - Odeberte nepotřebná oprávnění z
resourceAppId
vlastnosti aresourceAccess
vlastnosti. - Uložte provedené změny.
K provedení následujících kroků při odebírání oprávnění potřebujete následující prostředky a oprávnění:
- Spusťte požadavky HTTP v nástroji podle vašeho výběru, například v aplikaci nebo prostřednictvím Graph Exploreru.
- Volejte rozhraní API jako alespoň správce cloudových aplikací nebo jako vlastník registrace cílové aplikace.
- Aplikace použitá k provedení těchto změn musí být udělena
Application.ReadWrite.All
oprávnění.
Identifikujte oprávnění pro vaši aplikaci.
Pokud například chcete aplikaci zastavit v vyžádání oprávnění Microsoft Graphu, identifikujte oprávnění Microsoft Graphu pro vaši aplikaci, ID oprávnění a to, jestli se jedná o role aplikací (oprávnění aplikace) nebo delegovaná oprávnění.
Odeberte z aplikace nežádoucí oprávnění Microsoft Graphu. Následující příklad volá rozhraní API aplikace update, aby odebral nežádoucí oprávnění Microsoft Graphu z registrace aplikace identifikované ukázkovým ID
00001111-aaaa-2222-bbbb-3333cccc4444
klienta . V tomto příkladu máAnalytics.Read
aplikace ,User.Read
aApplication.Read.All
. Potřebujeme odebratAnalytics.Read
aApplication.Read.All
delegovat oprávnění a oprávnění aplikace. Microsoft Graph je identifikován jako servicePrincipal objekt s00000003-0000-0000-c000-000000000000
jeho globálně jedinečnýmAppId
a Microsoft Graph jako jehoDisplayName
aAppDisplayName
.PATCH https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444 Content-Type: application/json { "requiredResourceAccess": [ { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6 ", "type": "Scope" } ] } ] }
Ukončení žádosti o oprávnění s dynamickým souhlasem
Pokud potřebujete odebrat delegovaná oprávnění z žádosti o dynamický souhlas, zadejte parametr oboru a přitom vynechejte oprávnění, která chcete odebrat. Odebráním oprávnění zajistíte, že aplikace nevolá odpovídající rozhraní API.
Tato metoda funguje pouze pro delegovaná oprávnění. Oprávnění aplikace jsou požadována a udělena správcem prostřednictvím statického souhlasu a nejsou zahrnuta do parametru oboru během žádosti o autorizaci OAuth 2.0.
Ukončení žádosti o oprávnění s dynamickým souhlasem:
- Použití Microsoft Graphu: Odeberte nežádoucí delegovaná oprávnění Microsoft Graphu z parametru scopes. V tomto příkladu vaše aplikace požaduje tři delegovaná oprávnění –
Analytics.Read
User.Read
aApplication.Read
. Delegovaná oprávněníAnalytics.Read
aApplication.Read
pro tuto aplikaci se už nevyžadují. Vyžaduje to jenUser.Read
.
Požadavek by měl být podobný následujícímu příkladu:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=User.Read
using MSAL.js: Odeberte nežádoucí delegovaná oprávnění Microsoft Graphu v oborech.
const Request = { scopes: ["openid", "profile"], loginHint: "example@domain.net" }; myMSALObj.ssoSilent(Request) .then((response) => { // your logic }).catch(error => { console.error("Silent Error: " + error); if (error instanceof msal.InteractionRequiredAuthError) { myMSALObj.loginRedirect(loginRequest); } });
Odvolání souhlasu s odebranými oprávněními pro podnikovou aplikaci
Po odebrání oprávnění z registrace aplikace musí správce v tenantovi také odvolat souhlas s ochranou dat vaší organizace. Když odebrané oprávnění vyžaduje souhlas správce, požadované akce se liší v závislosti na typu aplikace:
- Jedna aplikace tenanta a víceklientské aplikace v domovském tenantovi: V případě jedné aplikace tenanta se obraťte na správce tenanta a odvolejte oprávnění, která už byla aplikaci udělena. V případě víceklientské aplikace se obraťte na správce všech tenantů, ve kterých se nacházejí instance vaší aplikace, a odvolejte oprávnění udělená podnikové aplikaci. Odvolání souhlasu s odebranými oprávněními zajistí, že aplikace nebude udržovat přístup prostřednictvím odebraných oprávnění.
- Aplikace s více tenanty v tenantech zákazníků: Ujistěte se, že komunikujete se zákazníky, abyste odvolali oprávnění prostřednictvím oznámení, blogů a dalších komunikačních kanálů.
U jednoklientských i víceklientských aplikací můžou uživatelé bez oprávnění, u kterých je povolený souhlas uživatele, používat portál MyApps k odvolání souhlasu s oprávněními, která udělili dříve. Další informace o tom, jak koncoví uživatelé můžou odvolat oprávnění na portálu MyApps, najdete v tématu Odvolání souhlasu koncového uživatele.
Nahrazení oprávnění
Pokud by stačit méně privilegované oprávnění, měli byste nahradit vysoce privilegované oprávnění.
Nahrazení oprávnění může také snížit riziko vystavení citlivých dat nebo ohrožení zabezpečení a tím zlepšit uživatelské prostředí a důvěru. Pokud vaše aplikace používá vysoce privilegované oprávnění, jako Directory.ReadWrite.All
je například , měli byste zvážit, jestli pro funkce vaší aplikace bude stačit méně privilegované oprávnění, například User.ReadWrite.All
.
Poznámka:
Když upravíte požadovaná oprávnění aplikace pro statický souhlas, zákazník se bude muset znovu připojit. Akce opětovného vyjádření odvolává všechna dříve udělená oprávnění a uděluje souhlas s novými oprávněními. Když upravíte požadovaná oprávnění aplikace k dynamickému souhlasu, dříve udělená oprávnění se neodvolá. Zákazník musí oprávnění odvolat ručně.
Pokud chcete nahradit oprávnění, musíte odebrat nepotřebná oprávnění a přidat alternativní oprávnění. Postup je podobný krokům popsaným v části Ukončit vyžádání nepoužívaných oprávnění a přidat oddíly oprávnění tohoto článku.