Sdílet prostřednictvím


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í.

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

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací nebo vlastník aplikace.
  2. Přejděte k aplikacím> identit>Registrace aplikací> Všechny aplikace.
  3. 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:
  4. Přidání oprávnění v podokně oprávnění rozhraní API
    1. Vyhledejte podokno oprávnění rozhraní API a vyberte Přidat oprávnění.

    2. Vyberte rozhraní API, ke kterému chcete získat přístup, a oprávnění, které chcete požádat, ze seznamu dostupných možností a vyberte Přidat oprávnění.

      Snímek obrazovky s podoknem oprávnění rozhraní API

Možnost 2: Přidání oprávnění k manifestu aplikace

  1. 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.
  2. Pečlivě upravte requiredResourceAccess vlastnost v souboru manifestu aplikace.
  3. resourceAppId Přidejte vlastnost a resourceAccess vlastnost a přiřaďte požadovaná oprávnění.
  4. 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í.
  1. 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.

  2. 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-bbbbbbbbbbbbobjektu . Tento příklad používá Analytics.Read a Application.Read.All deleguje oprávnění a oprávnění aplikace. Microsoft Graph je identifikován jako ServicePrincipal objekt s 00000003-0000-0000-c000-000000000000 jeho globálně jedinečným AppId.

    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"
                     }
                 ]
             }
         ]
     }
    

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 a Application.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);
              }
      });
    

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.

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

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací nebo vlastník aplikace.
  2. Přejděte k aplikacím> identit>Registrace aplikací> Všechny aplikace.
  3. Vyhledejte registraci aplikace, ze které chcete odebrat oprávnění, a vyberte ji.
  4. Odeberte oprávnění z podokna oprávnění rozhraní API:
    1. Vyhledejte podokno oprávnění rozhraní API a vyhledejte oprávnění, která chcete odebrat.

    2. Vyberte rozhraní API, které chcete odebrat, a nejprve vyberte Odvolat souhlas správce a pak odeberte oprávnění . Zajistí, že se udělené oprávnění odebere z vašeho tenanta.

      Snímek obrazovky ukazuje, jak odebrat oprávnění prostřednictvím podokna oprávnění rozhraní API.

Možnost 2: Z manifestu aplikace

  1. 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.
  2. Pečlivě upravte requiredResourceAccess vlastnost v souboru manifestu aplikace.
  3. Odeberte nepotřebná oprávnění z resourceAppId vlastnosti a resourceAccess vlastnosti.
  4. 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í.
  1. Identifikujte oprávnění pro vaši aplikaci.

  2. 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í.

  3. 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-3333cccc4444klienta . V tomto příkladu má Analytics.Readaplikace , User.Reada Application.Read.All. Potřebujeme odebrat Analytics.Read a Application.Read.All delegovat oprávnění a oprávnění aplikace. Microsoft Graph je identifikován jako servicePrincipal objekt s 00000003-0000-0000-c000-000000000000 jeho globálně jedinečným AppId a Microsoft Graph jako jeho DisplayName a AppDisplayName.

    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"
                    }
                ]
            }
        ]
    }
    

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.ReadUser.Read a Application.Read. Delegovaná oprávnění Analytics.Read a Application.Read pro tuto aplikaci se už nevyžadují. Vyžaduje to jen User.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);
                }
        });
    

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.Allje 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.