Udostępnij za pośrednictwem


Aktualizowanie żądanych uprawnień aplikacji w identyfikatorze Entra firmy Microsoft

Podczas konfigurowania aplikacji przy użyciu identyfikatora Entra firmy Microsoft deweloperzy mogą żądać dostępu do danych z innych aplikacji i usług przy użyciu uprawnień. Mogą żądać uprawnień, dodając uprawnienia statyczne do manifestu aplikacji lub dynamicznie żądając uprawnień w czasie wykonywania. Użytkownicy lub administratorzy mogą następnie udzielić uprawnień podczas wyrażania zgody, umożliwiając aplikacji dostęp do potrzebnych danych.

W miarę rozwoju funkcjonalności aplikacji zasoby, do których wymaga dostępu, również się zmieniają. Te zmiany mogą obejmować włączenie nowych funkcji, wyeliminowanie niepotrzebnego dostępu lub zastąpienie uprawnień o wysokim poziomie uprawnień mniej uprzywilejowanymi. W tym artykule wyjaśniono, jak zaktualizować uprawnienia żądań aplikacji przy użyciu centrum administracyjnego firmy Microsoft Entra i wywołań interfejsu API programu Microsoft Graph.

Aktualizowanie uprawnień dla aplikacji nie jest tylko najlepszym rozwiązaniem w zakresie zabezpieczeń, ale także sposobem ulepszania środowiska użytkownika i wdrażania aplikacji. W poniższej sekcji opisano niektóre korzyści wynikające z aktualizowania uprawnień dla aplikacji:

  • Jeśli aplikacja ma nową funkcję, możesz zażądać większej liczby uprawnień, które umożliwiają aplikacji dostęp do dodatkowych potrzebnych zasobów.
  • Klienci mogą częściej wdrażać aplikację, jeśli żąda tylko najmniej uprzywilejowanych uprawnień niezbędnych do działania. Pokazuje ona, że Aplikacja szanuje prywatność i ochronę danych klienta i nie uzyskuje dostępu do większej liczby zasobów niż potrzebuje.
  • Ponadto w przypadku naruszenia zabezpieczeń aplikacji występuje mniejszy promień wybuchu, jeśli ma mniej lub mniej uprzywilejowane uprawnienia. Oznacza to, że osoba atakująca ma mniejszy dostęp do danych i zasobów klienta, a tym samym zmniejsza potencjalne szkody.
  • Aktualizując uprawnienia dla aplikacji, możesz zwiększyć bezpieczeństwo, użyteczność i zgodność aplikacji oraz zwiększyć zaufanie swoim klientom.

Warunki wstępne

Aby zaktualizować żądane uprawnienia aplikacji, potrzebne są następujące elementy:

  • Konto użytkownika Microsoft Entra. Jeśli jeszcze go nie masz, utwórz bezpłatne konto.
  • Jedną z następujących ról: Administrator aplikacji, Administrator aplikacji w chmurze. Właściciel aplikacji, który nie jest administratorem, może zaktualizować żądane uprawnienia aplikacji.

Scenariusze aktualizowania uprawnień

W poniższej sekcji wymieniono trzy główne scenariusze, w których należy zaktualizować uprawnienia żądań aplikacji:

  • Dodawanie uprawnień do aplikacji
  • Usuwanie nieużywanych uprawnień z aplikacji
  • Zastępowanie uprawnienia

Nuta

Zaktualizowanie żądanych uprawnień dla aplikacji nie powoduje automatycznego udzielenia ani odwołania dostępu aplikacji do chronionych zasobów. Klienci lub administratorzy w organizacji muszą wyrazić zgodę na dodanie nowych uprawnień lub ręcznie odwołać same uprawnienia.

Dodawanie uprawnień do aplikacji

Możesz dodać uprawnienie, jeśli aplikacja ma nowe funkcje, które wymagają uprawnień, których wcześniej nie potrzebowała.

Najlepszym rozwiązaniem jest zażądanie dostępu tylko do minimalnych uprawnień wymaganych przez aplikację. Jeśli musisz dodać nowe uprawnienie do obsługi nowych funkcji w aplikacji, zażądaj tylko najmniej uprzywilejowanych uprawnień dla tej funkcji. Aby na przykład dodać funkcję powiadomień e-mail do aplikacji, musi ona uzyskać dostęp do wiadomości e-mail użytkownika. W tym celu należy zażądać dostępu do Mail.ReadWrite uprawnienia.

Statyczna zgoda to sposób żądania uprawnień od użytkowników lub administratorów w momencie rejestracji aplikacji, a nie w czasie wykonywania. Zgoda statyczna wymaga, aby aplikacja zadeklarowała wszystkie wymagane uprawnienia w okienku Rejestracje aplikacji w centrum administracyjnym firmy Microsoft Entra. Za pomocą centrum administracyjnego firmy Microsoft Entra można aktualizować uprawnienia tylko dla zgody statycznej. Aby dowiedzieć się więcej o różnych typach zgody, zobacz Typy zgody. Aby dowiedzieć się, jak zaktualizować uprawnienia w celu uzyskania zgody dynamicznej, zapoznaj się z kartą programu Microsoft Graph w tym artykule.

W tej sekcji dowiesz się, jak dodać uprawnienia do statycznej zgody.

Możesz dodać uprawnienia do statycznej zgody na dwa różne sposoby w centrum administracyjnym firmy Microsoft Entra:

Opcja 1. Dodawanie uprawnień w okienku uprawnień interfejsu API

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji w chmurze lub właściciel aplikacji.
  2. Przejdź do sekcji Identity>Applications> Rejestracje aplikacji> Wszystkie aplikacje.
  3. Znajdź rejestrację aplikacji, do której chcesz dodać uprawnienia, i wybierz ją. Uprawnienia można dodawać na dwa różne sposoby:
  4. Dodaj uprawnienia w okienku uprawnień interfejsu API.
    1. Znajdź okienko Uprawnienia interfejsu API i wybierz pozycję Dodaj uprawnienie.

    2. Wybierz interfejs API, do którego chcesz uzyskać dostęp, oraz uprawnienia, które chcesz zażądać z listy dostępnych opcji, a następnie wybierz pozycję Dodaj uprawnienia.

      Zrzut ekranu przedstawiający okienko uprawnień interfejsu API.

Opcja 2. Dodawanie uprawnień do manifestu aplikacji

  1. W okienku nawigacji po lewej stronie w grupie menu Zarządzaj wybierz pozycję Manifest. Zaznaczenie otwiera edytor, który umożliwia bezpośrednią edycję atrybutów obiektu rejestracji aplikacji.
  2. Uważnie edytuj requiredResourceAccess właściwość w pliku manifestu aplikacji.
  3. resourceAppId Dodaj właściwość i właściwość i resourceAccess przypisz wymagane uprawnienia.
  4. Zapisz zmiany.

Aby wykonać następujące kroki dodawania uprawnień, potrzebne są następujące zasoby i uprawnienia:

  • Uruchom żądania HTTP w wybranym narzędziu, na przykład w aplikacji lub za pośrednictwem Eksploratora programu Graph.
  • Uruchom interfejsy API jako użytkownik z co najmniej administratorem aplikacji w chmurze lub właścicielem docelowej rejestracji aplikacji.
  • Aplikacja używana do wprowadzania tych zmian musi mieć uprawnienie Application.ReadWrite.All .
  1. Zidentyfikuj uprawnienia wymagane przez aplikację, ich identyfikatory uprawnień oraz to, czy są to role aplikacji (uprawnienia aplikacji) czy uprawnienia delegowane. Jeśli na przykład chcesz zażądać uprawnień programu Microsoft Graph, zobacz Uprawnienia programu Microsoft Graph, aby uzyskać listę uprawnień i ich identyfikatorów.

  2. Dodaj wymagane uprawnienia programu Microsoft Graph do aplikacji. Poniższy przykład wywołuje interfejs API aktualizacji aplikacji, aby dodać wymagane uprawnienia programu Microsoft Graph do rejestracji aplikacji identyfikowane przez identyfikator aaaaaaaa-0000-1111-2222-bbbbbbbbbbbbobiektu . W tym przykładzie są używane Analytics.Read uprawnienia i Application.Read.All uprawnienia delegowane oraz uprawnienia aplikacji. Program Microsoft Graph jest identyfikowany jako obiekt ServicePrincipal jako 00000003-0000-0000-c000-000000000000 unikatowy globalnie 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"
                     }
                 ]
             }
         ]
     }
    

Zgoda dynamiczna to sposób żądania uprawnień od użytkowników lub administratorów w czasie wykonywania, a nie statycznego deklarowania ich w okienku Rejestracje aplikacji. Zgoda dynamiczna pozwala aplikacji poprosić o uprawnienia wymagane tylko do określonej funkcjonalności oraz uzyskać zgodę od użytkownika lub administratora w razie potrzeby. Zgoda dynamiczna może być używana z delegowanymi uprawnieniami i może być połączona z zakresem /.default żądania zgody administratora dla wszystkich uprawnień.

Aby dodać uprawnienia do dynamicznej zgody:

  • Użyj programu Microsoft Graph: dodaj wymagane uprawnienia programu Microsoft Graph do rejestracji aplikacji. W tym przykładzie są używane Analytics.Read uprawnienia i Application.Read.All uprawnienia delegowane oraz uprawnienia aplikacji. Zastąp wartości w obszarze "zakresy" wartościami wszystkich delegowanych uprawnień programu Microsoft Graph, które chcesz skonfigurować dla aplikacji.

    Żądanie powinno wyglądać podobnie do następującego przykładu:

    https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=Analytics.Read+Application.Read

  • Użyj MSAL.js: zastąp wartości w obszarze "zakresy" wartościami wszystkich delegowanych uprawnień programu Microsoft Graph, które chcesz skonfigurować dla aplikacji.

      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 dodaniu uprawnień do aplikacji użytkownicy lub administratorzy muszą wyrazić zgodę na nowe uprawnienia. Użytkownicy niebędący administratorami widzą monit o wyrażenie zgody po zalogowaniu się do aplikacji. Z drugiej strony użytkownicy administracyjni mogą wyrazić zgodę na nowe uprawnienia w imieniu wszystkich użytkowników w organizacji po pierwszym zalogowaniu się do aplikacji lub w centrum administracyjnym firmy Microsoft Entra.

Gdy dodane uprawnienia wymagają zgody administratora, wymagane akcje różnią się w zależności od typu aplikacji:

  • Aplikacja z jedną dzierżawą i wielodostępna aplikacja w dzierżawie głównej: użytkownik musi zalogować się jako co najmniej rolę Administrator ról uprzywilejowanych i udzielić zgody dla całej dzierżawy.
  • Aplikacje wielodostępne w dzierżawach klienta: użytkownik widzi nowe monity o wyrażenie zgody podczas następnej próby logowania. Jeśli uprawnienia wymagają tylko zgody użytkownika, użytkownik może udzielić zgody. Jeśli uprawnienia wymagają zgody administratora, użytkownik musi skontaktować się z administratorem, aby udzielić zgody.

Zatrzymaj żądanie nieużywanych uprawnień

Usunięcie uprawnień może zmniejszyć ryzyko ujawnienia poufnych danych lub naruszenia zabezpieczeń oraz uprościć proces wyrażania zgody dla użytkowników lub administratorów. Jeśli aplikacja nie potrzebuje już uprawnień, należy uniemożliwić aplikacji zażądanie jej przez usunięcie uprawnień z wymaganego dostępu do zasobów i kodu rejestracji aplikacji. Na przykład aplikacja, która nie wysyła już powiadomień e-mail, może usunąć Mail.ReadWrite uprawnienie.

Ważny

Usunięcie uprawnienia z rejestracji aplikacji nie powoduje automatycznego odwoływania uprawnień przyznanych już aplikacji. Musisz ręcznie odwołać uprawnienia. Aby uzyskać więcej informacji, zobacz sekcję Odwołaj zgodę na usunięte uprawnienia dla aplikacji dla przedsiębiorstw w tym artykule.

Aby przestać żądać uprawnień, które wymagają statycznej zgody, musisz usunąć uprawnienie z okienka Rejestracje aplikacji. Administrator dzierżawy musi również odwołać uprawnienie w okienku Aplikacje dla przedsiębiorstw. Aby uzyskać więcej informacji na temat odwoływanie uprawnień przyznanych aplikacji dla przedsiębiorstw, zobacz Odwoływanie uprawnień dla aplikacji dla przedsiębiorstw.

W tej sekcji dowiesz się, jak przestać żądać uprawnień dotyczących statycznej zgody.

Uprawnienia ze statycznej zgody można usunąć na dwa różne sposoby w centrum administracyjnym firmy Microsoft Entra:

Opcja 1. W okienku uprawnień interfejsu API

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji w chmurze lub właściciel aplikacji.
  2. Przejdź do sekcji Identity>Applications> Rejestracje aplikacji> Wszystkie aplikacje.
  3. Znajdź rejestrację aplikacji, z której chcesz usunąć uprawnienia, i wybierz ją.
  4. Usuń uprawnienia z okienka uprawnień interfejsu API:
    1. Znajdź okienko uprawnień interfejsu API i znajdź uprawnienia, które chcesz usunąć.

    2. Wybierz interfejs API, który chcesz usunąć, a następnie wybierz pozycję Odwołaj zgodę administratora i usuń uprawnienie dalej. Gwarantuje to, że przyznane uprawnienie zostanie usunięte z dzierżawy.

      Zrzut ekranu przedstawiający sposób usuwania uprawnień za pośrednictwem okienka uprawnień interfejsu API.

Opcja 2. Z manifestu aplikacji

  1. W okienku nawigacji po lewej stronie w grupie menu Zarządzaj wybierz pozycję Manifest. Zostanie otwarty edytor, który umożliwia bezpośrednią edycję atrybutów obiektu rejestracji aplikacji.
  2. Uważnie edytuj requiredResourceAccess właściwość w pliku manifestu aplikacji.
  3. Usuń niepotrzebne uprawnienia z resourceAppId właściwości i resourceAccess właściwości.
  4. Zapisz zmiany.

Aby wykonać następujące kroki usuwania uprawnień, potrzebne są następujące zasoby i uprawnienia:

  • Uruchom żądania HTTP w wybranym narzędziu, na przykład w aplikacji lub za pośrednictwem Eksploratora programu Graph.
  • Wywołaj interfejsy API co najmniej jako administrator aplikacji w chmurze lub jako właściciel rejestracji aplikacji docelowej.
  • Aplikacja używana do wprowadzania tych zmian musi mieć uprawnienie Application.ReadWrite.All .
  1. Zidentyfikuj uprawnienia dla aplikacji.

  2. Aby na przykład uniemożliwić aplikacji żądanie uprawnień programu Microsoft Graph, zidentyfikuj uprawnienia programu Microsoft Graph dla aplikacji, ich identyfikatory uprawnień oraz czy są to role aplikacji (uprawnienia aplikacji) czy uprawnienia delegowane.

  3. Usuń niechciane uprawnienia programu Microsoft Graph z aplikacji. Poniższy przykład wywołuje interfejs API aktualizacji aplikacji, aby usunąć niechciane uprawnienia programu Microsoft Graph z rejestracji aplikacji zidentyfikowanej przez przykładowy identyfikator 00001111-aaaa-2222-bbbb-3333cccc4444klienta . W tym przykładzie aplikacja ma wartości Analytics.Read, User.Readi Application.Read.All. Musimy usunąć Analytics.Read i Application.Read.All delegować uprawnienia i uprawnienia aplikacji. Program Microsoft Graph jest identyfikowany jako obiekt 00000003-0000-0000-c000-000000000000 ServicePrincipal jako unikatowy globalnie AppId , a program Microsoft Graph jako DisplayName obiekt i 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"
                    }
                ]
            }
        ]
    }
    

Jeśli musisz usunąć delegowane uprawnienia z dynamicznego żądania zgody, określ parametr zakresu, pomijając uprawnienia, które chcesz usunąć. Usunięcie uprawnień gwarantuje, że aplikacja nie wywołuje odpowiedniego interfejsu API.

Ta metoda działa tylko w przypadku uprawnień delegowanych. Uprawnienia aplikacji są wymagane i przyznawane przez administratora za pośrednictwem statycznej zgody i nie są uwzględniane w parametrze zakresu podczas żądania autoryzacji OAuth 2.0.

Aby przestać żądać uprawnień z dynamiczną zgodą:

  • Korzystanie z programu Microsoft Graph: usuń niechciane uprawnienia delegowane programu Microsoft Graph z parametru "scopes". W tym przykładzie aplikacja żąda trzech delegowanych uprawnień — Analytics.Readi User.Read Application.Read. Delegowane uprawnienia Analytics.Read i Application.Read nie są już wymagane dla tej aplikacji. Wymaga tylko .User.Read

Żądanie powinno być podobne do następującego przykładu:

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: Usuń niechciane uprawnienia delegowane programu Microsoft Graph w obszarze "zakresy".

        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 usunięciu uprawnień z rejestracji aplikacji administrator w dzierżawie musi również odwołać zgodę na ochronę danych organizacji. Gdy usunięte uprawnienie wymaga zgody administratora, wymagane akcje różnią się w zależności od typu aplikacji:

  • Pojedyncza aplikacja dzierżawy i wielodostępna aplikacja w dzierżawie głównej: w przypadku pojedynczej aplikacji dzierżawy skontaktuj się z administratorem dzierżawy, aby odwołać uprawnienia już przyznane aplikacji. W przypadku aplikacji wielodostępnej skontaktuj się z administratorami wszystkich dzierżaw, w których znajdują się wystąpienia aplikacji, aby odwołać uprawnienia przyznane aplikacji dla przedsiębiorstw. Cofnięcie zgody na usunięte uprawnienia gwarantuje, że aplikacja nie zachowuje dostępu za pośrednictwem usuniętego uprawnienia.
  • Aplikacje wielodostępne w dzierżawach klientów: upewnij się, że komunikujesz się z klientami, aby odwołać uprawnienia za pośrednictwem anonsów, blogów i innych kanałów komunikacyjnych.

W przypadku aplikacji z jedną dzierżawą i wieloma dzierżawami użytkownicy niebędący administratorami w dzierżawach, w których włączono zgodę użytkownika, mogą użyć portalu MyApps, aby odwołać zgodę na uprawnienia, które wcześniej udzielono. Aby uzyskać więcej informacji na temat sposobu odwoływanie uprawnień przez użytkowników końcowych w portalu MyApps, zobacz Odwoływanie zgody użytkownika końcowego.

Zastępowanie uprawnienia

Należy zastąpić uprawnienie o wysokim poziomie uprawnień, gdy wystarczyłoby mniej uprzywilejowane uprawnienie.

Zastąpienie uprawnień może również zmniejszyć ryzyko ujawnienia poufnych danych lub naruszenia zabezpieczeń, a tym samym poprawić środowisko użytkownika i zaufanie. Jeśli aplikacja korzysta z wysoce uprzywilejowanych uprawnień, takich jak , należy rozważyć, czy uprawnienie mniej uprzywilejowane, takie jak Directory.ReadWrite.AllUser.ReadWrite.All, byłoby wystarczające dla funkcjonalności aplikacji.

Nuta

Podczas modyfikowania żądanych uprawnień aplikacji w celu uzyskania zgody statycznej klient będzie musiał ponownie się zmodyfikować. Akt ponownego rozpoznania odwołuje wszystkie wcześniej przyznane uprawnienia i udziela zgody na nowe. Podczas modyfikowania żądanych uprawnień aplikacji w celu uzyskania zgody dynamicznej uprawnienia wcześniej przyznane nie są odwoływane. Klient musi ręcznie odwołać uprawnienia.

Aby zastąpić uprawnienie, musisz usunąć niepotrzebne uprawnienie i dodać alternatywne. Kroki są podobne do opisanych w sekcjach Zatrzymaj żądanie nieużywanych uprawnień i dodaj uprawnienia w tym artykule.