Włączanie logowania dla aplikacji Java Tomcat przy użyciu identyfikatora Entra firmy Microsoft

W tym artykule przedstawiono aplikację Java Tomcat, która loguje użytkowników do dzierżawy identyfikatora Entra firmy Microsoft przy użyciu biblioteki Microsoft Authentication Library (MSAL) dla języka Java.

Na poniższym diagramie przedstawiono topologię aplikacji:

Diagram przedstawiający topologię aplikacji.

Aplikacja kliencka używa biblioteki MSAL dla języka Java (MSAL4J), aby zalogować użytkowników do własnej dzierżawy identyfikatora Entra firmy Microsoft i uzyskać token identyfikatora z identyfikatora Entra firmy Microsoft. Token identyfikatora potwierdza, że użytkownik jest uwierzytelniany w tej dzierżawie. Aplikacja chroni swoje trasy zgodnie ze stanem uwierzytelniania użytkownika.

Wymagania wstępne

  • Zestaw JDK w wersji 8 lub nowszej
  • Maven 3
  • Dzierżawa identyfikatora entra firmy Microsoft. Aby uzyskać więcej informacji, zobacz How to get a Microsoft Entra ID tenant (Jak uzyskać dzierżawę identyfikatora entra firmy Microsoft).
  • Konto użytkownika we własnej dzierżawie microsoft Entra ID, jeśli chcesz pracować tylko z kontami w katalogu organizacyjnym — czyli w trybie pojedynczej dzierżawy. Jeśli nie utworzono konta użytkownika w dzierżawie microsoft Entra ID, przed kontynuowaniem należy to zrobić. Aby uzyskać więcej informacji, zobacz Jak tworzyć, zapraszać i usuwać użytkowników.
  • Konto użytkownika w dzierżawie Microsoft Entra ID organizacji, jeśli chcesz pracować z kontami w dowolnym katalogu organizacyjnym — czyli w trybie wielodostępnym. Musisz zmodyfikować ten przykład, aby pracować z osobistym kontem Microsoft. Jeśli nie utworzono jeszcze konta użytkownika w dzierżawie microsoft Entra ID, przed kontynuowaniem należy to zrobić. Aby uzyskać więcej informacji, zobacz Jak tworzyć, zapraszać i usuwać użytkowników.
  • Osobiste konto Microsoft — na przykład Xbox, Hotmail, Live itd. — jeśli chcesz pracować z osobistymi kontami Microsoft.

Zalecenia

  • Znajomość serwletów Java/Dżakarta.
  • Znajomość terminalu systemu Linux/OSX lub programu Windows PowerShell.
  • jwt.ms na potrzeby inspekcji tokenów.
  • Program Fiddler do monitorowania aktywności sieci i rozwiązywania problemów.
  • Postępuj zgodnie z blogiem Microsoft Entra ID, aby być na bieżąco z najnowszymi wydarzeniami.

Konfigurowanie przykładu

W poniższych sekcjach pokazano, jak skonfigurować przykładową aplikację.

Klonowanie lub pobieranie przykładowego repozytorium

Aby sklonować przykład, otwórz okno powłoki Bash i użyj następującego polecenia:

git clone https://github.com/Azure-Samples/ms-identity-java-servlet-webapp-authentication.git
cd 1-Authentication/sign-in

Alternatywnie przejdź do repozytorium ms-identity-java-servlet-webapp-authentication , a następnie pobierz go jako plik .zip i wyodrębnij go na dysk twardy.

Ważne

Aby uniknąć ograniczeń długości ścieżki pliku w systemie Windows, sklonuj lub wyodrębnij repozytorium do katalogu w pobliżu katalogu głównego dysku twardego.

Rejestrowanie przykładowej aplikacji w dzierżawie identyfikatora entra firmy Microsoft

W tym przykładzie istnieje jeden projekt. Aby zarejestrować aplikację w witrynie Azure Portal, możesz wykonać kroki konfiguracji ręcznej lub użyć skryptu programu PowerShell. Skrypt wykonuje następujące zadania:

  • Tworzy aplikacje Microsoft Entra ID i powiązane obiekty, takie jak hasła, uprawnienia i zależności.
  • Modyfikuje pliki konfiguracji projektu.
  • Domyślnie konfiguruje aplikację, która działa tylko z kontami w katalogu organizacyjnym.

Aby uruchomić skrypt programu PowerShell, wykonaj następujące czynności:

  1. W systemie Windows otwórz program PowerShell i przejdź do katalogu głównego sklonowanego katalogu.

  2. Użyj następującego polecenia, aby ustawić zasady wykonywania dla programu PowerShell:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
    
  3. Użyj następujących poleceń, aby uruchomić skrypt konfiguracji:

    cd .\AppCreationScripts\
    .\Configure.ps1
    

    Uwaga

    Inne sposoby uruchamiania skryptów są opisane w temacie Skrypty tworzenia aplikacji. Skrypty zawierają również przewodnik po automatycznej rejestracji, konfiguracji i usuwaniu aplikacji, które mogą pomóc w scenariuszach ciągłej integracji/ciągłego wdrażania.

Konfigurowanie aplikacji do korzystania z rejestracji aplikacji

Aby skonfigurować aplikację, wykonaj następujące kroki:

Uwaga

W poniższych krokach ClientID jest to samo co Application ID lub AppId.

  1. Otwórz projekt w środowisku IDE.

  2. Otwórz plik ./src/main/resources/authentication.properties.

  3. Znajdź ciąg {enter-your-tenant-id-here}. Zastąp istniejącą wartość jedną z następujących wartości:

    • Identyfikator dzierżawy entra firmy Microsoft, jeśli zarejestrowano aplikację przy użyciu opcji Konta w tym katalogu organizacyjnym.
    • Słowo organizations , jeśli zarejestrowano aplikację przy użyciu opcji Konta w dowolnym katalogu organizacyjnym.
    • Słowo common , jeśli zarejestrowano aplikację przy użyciu opcji Konta w dowolnym katalogu organizacyjnym i osobistych kontach Microsoft.
    • Słowo consumers , jeśli zarejestrowano aplikację przy użyciu opcji Osobiste konta Microsoft.
  4. Znajdź ciąg {enter-your-client-id-here} i zastąp istniejącą wartość identyfikatorem aplikacji lub clientIdjava-servlet-webapp-authentication aplikacją skopiowaną z witryny Azure Portal.

  5. Znajdź ciąg {enter-your-client-secret-here} i zastąp istniejącą wartość wartością zapisaną podczas tworzenia java-servlet-webapp-authentication aplikacji w witrynie Azure Portal.

Tworzenie przykładu

Aby skompilować przykład przy użyciu narzędzia Maven, przejdź do katalogu zawierającego plik pom.xml dla przykładu, a następnie uruchom następujące polecenie:

mvn clean package

To polecenie generuje plik war , który można uruchomić na różnych serwerach aplikacji.

Uruchamianie aplikacji przykładowej

W poniższych sekcjach pokazano, jak wdrożyć przykład w usłudze aplikacja systemu Azure Service.

Wymagania wstępne

Konfigurowanie wtyczki Maven

Podczas wdrażania w usłudze aplikacja systemu Azure wdrożenie automatycznie używa poświadczeń platformy Azure z poziomu interfejsu wiersza polecenia platformy Azure. Jeśli interfejs wiersza polecenia platformy Azure nie jest zainstalowany lokalnie, wtyczka Maven uwierzytelnia się przy użyciu protokołu OAuth lub logowania urządzenia. Aby uzyskać więcej informacji, zobacz authentication with Maven plugins (Uwierzytelnianie za pomocą wtyczek maven).

Aby skonfigurować wtyczkę, wykonaj następujące czynności:

  1. Uruchom następujące polecenie, aby skonfigurować wdrożenie. To polecenie pomaga skonfigurować system operacyjny usługi aplikacja systemu Azure, wersję języka Java i wersję serwera Tomcat.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
    
  2. W obszarze Utwórz nową konfigurację przebiegu naciśnij klawisz Y, a następnie naciśnij klawisz Enter.

  3. W polu Zdefiniuj wartość dla systemu operacyjnego naciśnij klawisz 1 dla systemu Windows lub 2 dla systemu Linux, a następnie naciśnij klawisz Enter.

  4. W polu Zdefiniuj wartość dla javaVersion naciśnij klawisz 2 dla języka Java 11, a następnie naciśnij klawisz Enter.

  5. W polu Zdefiniuj wartość dla elementu webContainer naciśnij klawisz 4 dla serwera Tomcat 9.0, a następnie naciśnij klawisz Enter.

  6. W polu Zdefiniuj wartość dla wartości pricingTier naciśnij klawisz Enter , aby wybrać domyślną warstwę P1v2 .

  7. Aby potwierdzić, naciśnij klawisz Y, a następnie naciśnij klawisz Enter.

W poniższym przykładzie przedstawiono dane wyjściowe procesu wdrażania:

Please confirm webapp properties
AppName : msal4j-servlet-auth-1707209552268
ResourceGroup : msal4j-servlet-auth-1707209552268-rg
Region : centralus
PricingTier : P1v2
OS : Linux
Java Version: Java 11
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: [INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  37.112 s
[INFO] Finished at: 2024-02-06T08:53:02Z
[INFO] ------------------------------------------------------------------------

Po potwierdzeniu wybranych opcji wtyczka dodaje wymagany element i ustawienia wtyczki do pliku pom.xml projektu w celu skonfigurowania aplikacji do uruchamiania w usłudze aplikacja systemu Azure Service.

Odpowiednia część pliku pom.xml powinna wyglądać podobnie do poniższego przykładu:

<build>
    <plugins>
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>>azure-webapp-maven-plugin</artifactId>
            <version>x.xx.x</version>
            <configuration>
                <schemaVersion>v2</schemaVersion>
                <resourceGroup>your-resourcegroup-name</resourceGroup>
                <appName>your-app-name</appName>
            ...
            </configuration>
        </plugin>
    </plugins>
</build>

Konfiguracje usługi App Service można modyfikować bezpośrednio w pom.xml. Niektóre typowe konfiguracje są wymienione w poniższej tabeli:

Właściwości Wymagania opis
subscriptionId fałsz Identyfikator subskrypcji.
resourceGroup prawda Grupa zasobów platformy Azure dla aplikacji.
appName prawda Nazwa aplikacji.
region fałsz Region, w którym ma być hostowana aplikacja. Domyślna wartość to centralus. Aby zapoznać się z prawidłowymi regionami, zobacz Obsługiwane regiony.
pricingTier fałsz Warstwa cenowa aplikacji. Wartość domyślna dotyczy P1v2 obciążenia produkcyjnego. Zalecaną minimalną wartością dla programowania i testowania języka Java jest B2. Aby uzyskać więcej informacji, zobacz Cennik usługi App Service.
runtime fałsz Konfiguracja środowiska uruchomieniowego. Aby uzyskać więcej informacji, zobacz Szczegóły konfiguracji.
deployment fałsz Konfiguracja wdrożenia. Aby uzyskać więcej informacji, zobacz Szczegóły konfiguracji.

Pełną listę konfiguracji można znaleźć w dokumentacji referencyjnej wtyczki. Wszystkie wtyczki usługi Azure Maven mają wspólny zestaw konfiguracji. Aby uzyskać te konfiguracje, zobacz Typowe konfiguracje. Aby uzyskać konfiguracje specyficzne dla usługi aplikacja systemu Azure, zobacz Azure app: Configuration Details (Aplikacja platformy Azure: szczegóły konfiguracji).

Pamiętaj, aby zapisać wartości i resourceGroup do późniejszego appName użycia.

Przygotowywanie aplikacji do wdrożenia

Podczas wdrażania aplikacji w usłudze App Service adres URL przekierowania zmieni się na adres URL przekierowania wdrożonego wystąpienia aplikacji. Aby zmienić te ustawienia w pliku właściwości, wykonaj następujące czynności:

  1. Przejdź do pliku authentication.properties aplikacji i zmień wartość app.homePage na nazwę domeny wdrożonej aplikacji, jak pokazano w poniższym przykładzie. Jeśli na przykład wybrano example-domain nazwę aplikacji w poprzednim kroku, musisz teraz użyć https://example-domain.azurewebsites.net wartości app.homePage . Upewnij się, że protokół został również zmieniony z http na https.

    # app.homePage is by default set to dev server address and app context path on the server
    # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net
    app.homePage=https://<your-app-name>.azurewebsites.net
    
  2. Po zapisaniu tego pliku użyj następującego polecenia, aby ponownie skompilować aplikację:

    mvn clean package
    

Ważne

W tym samym pliku authentication.properties masz ustawienie dla pliku aad.secret. Wdrożenie tej wartości w usłudze App Service nie jest dobrym rozwiązaniem. Nie jest dobrym rozwiązaniem, aby pozostawić tę wartość w kodzie i potencjalnie wypchnąć ją do repozytorium Git. Aby usunąć tę wartość wpisu tajnego z kodu, możesz znaleźć bardziej szczegółowe wskazówki w sekcji Wdrażanie w usłudze App Service — Usuwanie wpisu tajnego . Te wskazówki dodają dodatkowe kroki wypychania wartości wpisu tajnego do usługi Key Vault i używania odwołań usługi Key Vault.

Aktualizowanie rejestracji aplikacji Microsoft Entra ID

Ponieważ identyfikator URI przekierowania zmienia się w wdrożonej aplikacji w usłudze aplikacja systemu Azure, musisz również zmienić identyfikator URI przekierowania w rejestracji aplikacji Microsoft Entra ID. Aby wprowadzić tę zmianę, wykonaj następujące czynności:

  1. Przejdź do strony Platforma tożsamości Microsoft dla deweloperów Rejestracje aplikacji.

  2. Użyj pola wyszukiwania, aby wyszukać rejestrację aplikacji — na przykład java-servlet-webapp-authentication.

  3. Otwórz rejestrację aplikacji, wybierając jej nazwę.

  4. Wybierz Uwierzytelnianie z menu poleceń.

  5. W sekcji Identyfikatory URI przekierowania sieci Web - wybierz pozycję Dodaj identyfikator URI.

  6. Wypełnij identyfikator URI aplikacji, dołączając /auth/redirect na przykład https://<your-app-name>.azurewebsites.net/auth/redirect.

  7. Wybierz pozycję Zapisz.

Wdrażanie aplikacji

Teraz możesz przystąpić do wdrażania aplikacji w usłudze aplikacja systemu Azure Service. Użyj następującego polecenia, aby upewnić się, że zalogowano się do środowiska platformy Azure w celu wykonania wdrożenia:

az login

Po korzystaniu ze wszystkich konfiguracji gotowych w pliku pom.xml możesz teraz użyć następującego polecenia, aby wdrożyć aplikację Java na platformie Azure:

mvn package azure-webapp:deploy

Po zakończeniu wdrażania aplikacja jest gotowa pod adresem http://<your-app-name>.azurewebsites.net/. Otwórz adres URL w lokalnej przeglądarce internetowej, gdzie powinna zostać wyświetlona strona początkowa msal4j-servlet-auth aplikacji.

Eksplorowanie przykładu

Aby zapoznać się z przykładem, wykonaj następujące czynności:

  1. Zwróć uwagę na stan logowania lub wylogowania wyświetlany na środku ekranu.
  2. Wybierz przycisk kontekstowy w rogu. Ten przycisk odczytuje pozycję Zaloguj po pierwszym uruchomieniu aplikacji.
  3. Na następnej stronie postępuj zgodnie z instrukcjami i zaloguj się przy użyciu konta w dzierżawie Microsoft Entra ID.
  4. Na ekranie zgody zwróć uwagę na żądane zakresy.
  5. Zwróć uwagę, że przycisk kontekstowy zawiera teraz pozycję Wyloguj się i wyświetla swoją nazwę użytkownika.
  6. Wybierz pozycję Szczegóły tokenu identyfikatora, aby wyświetlić niektóre zdekodowane oświadczenia tokenu identyfikatora.
  7. Użyj przycisku w rogu, aby się wylogować.
  8. Po wylogowaniu wybierz pozycję Szczegóły tokenu identyfikatora, aby zobaczyć, że aplikacja wyświetla 401: unauthorized błąd zamiast oświadczeń tokenu identyfikatora, gdy użytkownik nie jest autoryzowany.

Informacje o kodzie

W tym przykładzie pokazano, jak używać biblioteki MSAL dla języka Java (MSAL4J) do logowania użytkowników do dzierżawy identyfikatora Entra firmy Microsoft. Jeśli chcesz używać biblioteki MSAL4J we własnych aplikacjach, musisz dodać ją do projektów przy użyciu narzędzia Maven.

Jeśli chcesz replikować zachowanie tego przykładu, możesz skopiować plik pom.xml i zawartość folderów pomocników i authservlets w folderze src/main/java/com/microsoft/azuresamples/msal4j . Potrzebny jest również plik authentication.properties . Te klasy i pliki zawierają kod ogólny, którego można użyć w szerokiej gamie aplikacji. Możesz również skopiować resztę przykładu, ale inne klasy i pliki są kompilowane specjalnie w celu rozwiązania tego przykładu celu.

Zawartość

W poniższej tabeli przedstawiono zawartość przykładowego folderu projektu:

Plik/folder opis
AppCreationScripts/ Skrypty do automatycznego konfigurowania rejestracji aplikacji Microsoft Entra ID.
src/main/java/com/microsoft/azuresamples/msal4j/authwebapp/ Ten katalog zawiera klasy definiujące logikę biznesową zaplecza aplikacji.
src/main/java/com/microsoft/azuresamples/msal4j/authservlets/ Ten katalog zawiera klasy używane do logowania i wylogowyywania punktów końcowych.
____Servlet.java Wszystkie dostępne punkty końcowe są definiowane w klasach .java kończących się na ____Servlet.java.
src/main/java/com/microsoft/azuresamples/msal4j/helpers/ Klasy pomocnika na potrzeby uwierzytelniania.
AuthenticationFilter.java Przekierowuje nieuwierzytelnione żądania do chronionych punktów końcowych do strony 401.
src/main/resources/authentication.properties Microsoft Entra ID i konfiguracja programu.
src/main/webapp/ Ten katalog zawiera szablony interfejsu użytkownika — JSP
CHANGELOG.md Lista zmian w przykładzie.
CONTRIBUTING.md Wskazówki dotyczące współtworzenia przykładu.
LICENCJI Licencja dla przykładu.

ConfidentialClientApplication

Wystąpienie ConfidentialClientApplication jest tworzone w pliku AuthHelper.java , jak pokazano w poniższym przykładzie. Ten obiekt ułatwia utworzenie adresu URL autoryzacji identyfikatora entra firmy Microsoft, a także pomaga w wymianie tokenu uwierzytelniania dla tokenu dostępu.

// getConfidentialClientInstance method
IClientSecret secret = ClientCredentialFactory.createFromSecret(SECRET);
confClientInstance = ConfidentialClientApplication
                     .builder(CLIENT_ID, secret)
                     .authority(AUTHORITY)
                     .build();

Następujące parametry są używane do tworzenia wystąpień:

  • Identyfikator klienta aplikacji.
  • Wpis tajny klienta, który jest wymagany w przypadku poufnych aplikacji klienckich.
  • Urząd Microsoft Entra ID, który zawiera identyfikator dzierżawy entra firmy Microsoft.

W tym przykładzie te wartości są odczytywane z pliku authentication.properties przy użyciu czytnika właściwości w pliku Config.java .

Przewodnik krok po kroku

Poniższe kroki zawierają przewodnik po funkcjonalności aplikacji:

  1. Pierwszym krokiem procesu logowania jest wysłanie żądania do /authorize punktu końcowego dla dzierżawy microsoft Entra ID. Wystąpienie MSAL4J ConfidentialClientApplication służy do konstruowania adresu URL żądania autoryzacji. Aplikacja przekierowuje przeglądarkę do tego adresu URL, w którym loguje się użytkownik.

    final ConfidentialClientApplication client = getConfidentialClientInstance();
    AuthorizationRequestUrlParameters parameters = AuthorizationRequestUrlParameters.builder(Config.REDIRECT_URI, Collections.singleton(Config.SCOPES))
            .responseMode(ResponseMode.QUERY).prompt(Prompt.SELECT_ACCOUNT).state(state).nonce(nonce).build();
    
    final String authorizeUrl = client.getAuthorizationRequestUrl(parameters).toString();
    contextAdapter.redirectUser(authorizeUrl);
    

    Poniższa lista zawiera opis funkcji tego kodu:

    • AuthorizationRequestUrlParameters: parametry, które należy ustawić w celu utworzenia elementu AuthorizationRequestUrl.

    • REDIRECT_URI: Gdzie identyfikator Entra firmy Microsoft przekierowuje przeglądarkę — wraz z kodem uwierzytelniania — po zebraniu poświadczeń użytkownika. Musi być zgodny z identyfikatorem URI przekierowania w rejestracji aplikacji Microsoft Entra ID w witrynie Azure Portal.

    • SCOPES: Zakresy są uprawnieniami żądanymi przez aplikację. Zwykle trzy zakresy openid profile offline_access są wystarczające do otrzymania odpowiedzi tokenu identyfikatora.

      Pełną listę zakresów żądanych przez aplikację można znaleźć w pliku authentication.properties . Możesz dodać więcej zakresów, takich jak User.Read.

  2. Użytkownik jest wyświetlany z monitem logowania przez microsoft Entra ID. Jeśli próba logowania zakończy się pomyślnie, przeglądarka użytkownika zostanie przekierowana do punktu końcowego przekierowania aplikacji. Prawidłowe żądanie do tego punktu końcowego zawiera kod autoryzacji.

  3. Następnie ConfidentialClientApplication wystąpienie wymienia ten kod autoryzacji dla tokenu identyfikatora i tokenu dostępu z identyfikatora entra firmy Microsoft.

    // First, validate the state, then parse any error codes in response, then extract the authCode. Then:
    // build the auth code params:
    final AuthorizationCodeParameters authParams = AuthorizationCodeParameters
            .builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES)).build();
    
    // Get a client instance and leverage it to acquire the token:
    final ConfidentialClientApplication client = AuthHelper.getConfidentialClientInstance();
    final IAuthenticationResult result = client.acquireToken(authParams).get();
    

    Poniższa lista zawiera opis funkcji tego kodu:

    • AuthorizationCodeParameters: Parametry, które należy ustawić w celu wymiany kodu autoryzacji dla identyfikatora i/lub tokenu dostępu.
    • authCode: kod autoryzacji, który został odebrany w punkcie końcowym przekierowania.
    • REDIRECT_URI: Identyfikator URI przekierowania użyty w poprzednim kroku musi zostać ponownie przekazany.
    • SCOPES: zakresy używane w poprzednim kroku muszą zostać ponownie przekazane.
  4. W przypadku acquireToken pomyślnego wyodrębnienia oświadczeń tokenu. Jeśli sprawdzanie nie jest sprawdzane, wyniki są umieszczane w context — wystąpieniu IdentityContextData — i zapisywane w sesji. Następnie aplikacja może utworzyć wystąpienie IdentityContextData z sesji za pomocą wystąpienia IdentityContextAdapterServlet zawsze, gdy potrzebuje dostępu do niej, jak pokazano w poniższym kodzie:

    // parse IdToken claims from the IAuthenticationResult:
    // (the next step - validateNonce - requires parsed claims)
    context.setIdTokenClaims(result.idToken());
    
    // if nonce is invalid, stop immediately! this could be a token replay!
    // if validation fails, throws exception and cancels auth:
    validateNonce(context);
    
    // set user to authenticated:
    context.setAuthResult(result, client.tokenCache().serialize());
    

Ochrona tras

Aby uzyskać informacje na temat sposobu filtrowania dostępu do tras przez przykładową aplikację, zobacz AuthenticationFilter.java. W pliku authentication.properties właściwość zawiera rozdzielane przecinkami trasy, app.protect.authenticated do których mogą uzyskiwać dostęp tylko uwierzytelnieni użytkownicy, jak pokazano w poniższym przykładzie:

# for example, /token_details requires any user to be signed in and does not require special roles claim(s)
app.protect.authenticated=/token_details

Zakresy

Zakresy informują microsoft Entra ID o poziomie dostępu, którego żąda aplikacja.

Na podstawie żądanych zakresów identyfikator Entra firmy Microsoft przedstawia użytkownikowi okno dialogowe zgody po zalogowaniu. Jeśli użytkownik wyraża zgodę na co najmniej jeden zakres i uzyskuje token, wyrażenie zgody zakresów zostanie zakodowane w wynikowym access_tokenobiekcie .

Aby uzyskać zakresy żądane przez aplikację, zobacz authentication.properties. Te trzy zakresy są domyślnie żądane przez bibliotekę MSAL i podane przez identyfikator Entra firmy Microsoft.

Więcej informacji