Руководство разработчика Spring Boot Starter для разработчика Microsoft Entra

Эта статья относится к: ✔️ версия 4.17.0 ✔️ версии 5.11.0

В этой статье описываются функции и основные сценарии начального средства Spring Boot для идентификатора Microsoft Entra. а также распространенные проблемы, рекомендации по их устранению и действия диагностики.

При создании веб-приложения основополагающим компонентом является управление удостоверениями и доступом. Azure предоставляет облачную службу идентификации, глубоко интегрированную с остальной частью экосистемы Azure.

Хотя Spring Security упрощает процесс защиты приложений на основе Spring, данная система не ориентирована на конкретного поставщика удостоверений. Начальный код Spring Boot для Microsoft Entra ID позволяет подключить веб-приложение к клиенту Microsoft Entra и защитить сервер ресурсов с помощью идентификатора Microsoft Entra. Для защиты веб-приложений и серверов ресурсов в этом наборе используется протокол OAuth 2.0.

Чтобы получить доступ к начальному пакету, документации и примерам, используйте следующие ссылки:

Необходимые компоненты

Чтобы выполнить процедуры в этом руководстве, необходимо иметь следующее.

Внимание

Для выполнения действий, описанных в этой статье, требуется spring Boot версии 2.5 или более поздней.

Основные сценарии

В этом руководстве описывается использование начального средства Microsoft Entra в следующих сценариях:

Веб-приложение — это любое приложение на основе веб-технологий, которое позволяет пользователю войти в систему. Сервер ресурсов либо разрешит, либо запретит доступ после проверки маркера доступа.

Доступ к веб-приложению

В этом сценарии используется поток предоставления кода авторизации OAuth 2.0, позволяющий пользователю выполнить вход с помощью учетной записи Майкрософт.

Чтобы использовать начальный план Microsoft Entra в этом сценарии, выполните следующие действия.

Задайте URI перенаправления на <application-base-uri>/login/oauth2/code/. Например: http://localhost:8080/login/oauth2/code/. Убедитесь, что адрес содержит завершающую косую черту (/). Дополнительные сведения о URI перенаправления см. в разделе Добавление URI перенаправления в документе Краткое руководство. Регистрация приложения с помощью платформы удостоверений Майкрософт.

Снимок экрана: портал Azure страница Microsoft Entra Регистрация приложений с выделенным примером веб-приложения.

Снимок экрана: портал Azure с выделенной страницей проверки подлинности веб-приложения с выделенным универсальным кодом ресурса (URI) перенаправления.

Добавьте приведенные ниже зависимости в файл pom.xml.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Примечание.

Дополнительные сведения об управлении версиями библиотеки Azure Spring Cloud с помощью счета за материалы (BOM) см. в разделе "Начало работы" руководства разработчика Azure Spring Cloud.

Добавьте следующие свойства в файл application.yml. Значения этих свойств можно получить в регистрации приложения, созданной на портале Azure, как описано в разделе «Предварительные требования».

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       profile:
         tenant-id: <tenant>
       credential:
         client-id: <your-client-ID>
         client-secret: <your-client-secret>

Примечание.

Допустимые значенияtenant-id: common, organizationsconsumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации) в разделе "Ошибка" AADSTS50020 . Учетная запись пользователя от поставщика удостоверений не существует в клиенте. Сведения о преобразовании приложения с одним клиентом см. в разделе "Преобразование однотенантного приложения в мультитенантный" в идентификатор Microsoft Entra.

Используйте конфигурацию безопасности по умолчанию или настройте собственную конфигурацию.

Вариант 1. Используйте конфигурацию по умолчанию.

С помощью этого параметра вам не нужно ничего делать. Класс DefaultAadWebSecurityConfigurerAdapter настраивается автоматически.

Вариант 2. Укажите самоопределимую конфигурацию.

Чтобы настроить конфигурацию, разверните класс AadWebSecurityConfigurerAdapter и вызовите метод super.configure(http) в функции configure(HttpSecurity http), как показано в следующем примере:

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AadOAuth2LoginSecurityConfig extends AadWebSecurityConfigurerAdapter {

   /**
    * Add configuration logic as needed.
   */
   @Override
   protected void configure(HttpSecurity http) throws Exception {
       super.configure(http);
       http.authorizeRequests()
           .anyRequest().authenticated();
       // Do some custom configuration.
   }
}

Доступ к серверам ресурсов из веб-приложения

Чтобы использовать начальный план Microsoft Entra в этом сценарии, выполните следующие действия.

Задайте URI перенаправления, как описано выше.

Добавьте приведенные ниже зависимости в файл pom.xml.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Примечание.

Дополнительные сведения об управлении версиями библиотеки Azure Spring Cloud с помощью счета за материалы (BOM) см. в разделе "Начало работы" руководства разработчика Azure Spring Cloud.

Добавьте следующие свойства в файл application.yml, как описано выше.

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       profile:
         tenant-id: <tenant>
       credential:
         client-id: <your-client-ID>
         client-secret: <your-client-secret>
       authorization-clients:
         graph:
           scopes: https://graph.microsoft.com/Analytics.Read, email

Примечание.

Допустимые значенияtenant-id: common, organizationsconsumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации) в разделе "Ошибка" AADSTS50020 . Учетная запись пользователя от поставщика удостоверений не существует в клиенте. Сведения о преобразовании приложения с одним клиентом см. в разделе "Преобразование однотенантного приложения в мультитенантный" в идентификатор Microsoft Entra.

Здесь graph — это имя клиента OAuth2AuthorizedClient, а scopes — области, необходимые для согласия при входе в систему.

Добавьте примерно следующий код в приложение, как показано в следующем примере:

@GetMapping("/graph")
@ResponseBody
public String graph(
   @RegisteredOAuth2AuthorizedClient("graph") OAuth2AuthorizedClient graphClient
) {
   // toJsonString() is just a demo.
   // oAuth2AuthorizedClient contains access_token. We can use this access_token to access the resource server.
   return toJsonString(graphClient);
}

Здесь graph — это идентификатор клиента, настроенный на предыдущем шаге. OAuth2AuthorizedClient содержит маркер доступа, который используется для доступа к серверу ресурсов.

Полный пример, демонстрирующий этот сценарий, см . в примере spring-cloud-azure-starter-active-directory: aad-web-application.

Защита сервера ресурсов и API-интерфейса

Этот сценарий не поддерживает вход в систему, но защищает сервер благодаря проверке маркера доступа. Если маркер доступа действителен, сервер обрабатывает запрос.

Чтобы использовать начальный план Microsoft Entra в этом сценарии, выполните следующие действия.

Добавьте приведенные ниже зависимости в файл pom.xml.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>

Примечание.

Дополнительные сведения об управлении версиями библиотеки Azure Spring Cloud с помощью счета за материалы (BOM) см. в разделе "Начало работы" руководства разработчика Azure Spring Cloud.

Добавьте следующие свойства в файл application.yml, как описано выше.

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       credential:
         client-id: <your-client-ID>
       app-id-uri: <your-app-ID-URI>

Для проверки маркера доступа можно использовать значения идентификатора клиента и< вашего приложения-id-URI>>.< Значение URI> приложения можно получить <из портал Azure, как показано на следующих изображениях:

Снимок экрана: портал Azure страница Регистрация приложений Microsoft Entra с выделенным примером сервера-resource-server.

Снимок экрана: портал Azure показ веб-приложения страницы

Используйте конфигурацию безопасности по умолчанию или настройте собственную конфигурацию.

Вариант 1. Используйте конфигурацию по умолчанию.

С помощью этого параметра вам не нужно ничего. Класс DefaultAadResourceServerWebSecurityConfigurerAdapter настраивается автоматически.

Вариант 2. Укажите самоопределимую конфигурацию.

Чтобы настроить конфигурацию, разверните класс AadResourceServerWebSecurityConfigurerAdapter и вызовите метод super.configure(http) в функции configure(HttpSecurity http), как показано в следующем примере:

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AadOAuth2ResourceServerSecurityConfig extends AadResourceServerWebSecurityConfigurerAdapter {

   /**
    * Add configuration logic as needed.
    */
   @Override
   protected void configure(HttpSecurity http) throws Exception {
       super.configure(http);
       http.authorizeRequests((requests) -> requests.anyRequest().authenticated());
   }
}

Полный пример, демонстрирующий этот сценарий, см . в примере spring-cloud-azure-starter-active-directory: aad-resource-server.

Доступ к другим серверам ресурсов с сервера ресурсов

Этот сценарий поддерживает сервер ресурсов, который обращается к другим серверам ресурсов.

Чтобы использовать начальный план Microsoft Entra в этом сценарии, выполните следующие действия.

Добавьте приведенные ниже зависимости в файл pom.xml.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Примечание.

Дополнительные сведения об управлении версиями библиотеки Azure Spring Cloud с помощью счета за материалы (BOM) см. в разделе "Начало работы" руководства разработчика Azure Spring Cloud.

Добавьте следующие свойства в файл application.yml.

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       profile:
         tenant-id: <tenant>
       credential:
         client-id: <web-API-A-client-ID>
         client-secret: <web-API-A-client-secret>
       app-id-uri: <web-API-A-app-ID-URI>
       authorization-clients:
         graph:
           scopes:
              - https://graph.microsoft.com/User.Read

Примечание.

Допустимые значенияtenant-id: common, organizationsconsumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации) в разделе "Ошибка" AADSTS50020 . Учетная запись пользователя от поставщика удостоверений не существует в клиенте. Сведения о преобразовании приложения с одним клиентом см. в разделе "Преобразование однотенантного приложения в мультитенантный" в идентификатор Microsoft Entra.

Для доступа к связанному серверу ресурсов используйте атрибут @RegisteredOAuth2AuthorizedClient в коде, как показано в следующем примере:

@PreAuthorize("hasAuthority('SCOPE_Obo.Graph.Read')")
@GetMapping("call-graph")
public String callGraph(@RegisteredOAuth2AuthorizedClient("graph") OAuth2AuthorizedClient graph) {
   return callMicrosoftGraphMeEndpoint(graph);
}

Полный пример, демонстрирующий этот сценарий, см . в примере spring-cloud-azure-starter-active-directory: aad-resource-server-obo.

Веб-приложение и сервер ресурсов в одном приложении

Этот сценарий поддерживает доступ к веб-приложению и защиту сервера ресурсов или API в одном приложении.

Чтобы использовать aad-starter этот сценарий, выполните следующие действия.

Добавьте приведенные ниже зависимости в файл pom.xml.

<dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Примечание.

Дополнительные сведения об управлении версиями библиотеки Azure Spring Cloud с помощью счета за материалы (BOM) см. в разделе "Начало работы" руководства разработчика Azure Spring Cloud.

Обновите файл application.yml. Задайте для свойства spring.cloud.azure.active-directory.application-type значение web_application_and_resource_server и укажите тип авторизации для каждого клиента авторизации, как показано в приведенном ниже примере.

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       profile:
         tenant-id: <tenant>
       credential:
         client-id: <Web-API-C-client-id>
         client-secret: <Web-API-C-client-secret>
       app-id-uri: <Web-API-C-app-id-url>
       application-type: web_application_and_resource_server  # This is required.
       authorization-clients:
         graph:
           authorizationGrantType: authorization_code  # This is required.
           scopes:
             - https://graph.microsoft.com/User.Read
             - https://graph.microsoft.com/Directory.Read.All

Примечание.

Допустимые значенияtenant-id: common, organizationsconsumersили идентификатор клиента. Дополнительные сведения об этих значениях см. в разделе "Использована неправильная конечная точка (личные и учетные записи организации) в разделе "Ошибка" AADSTS50020 . Учетная запись пользователя от поставщика удостоверений не существует в клиенте. Сведения о преобразовании приложения с одним клиентом см. в разделе "Преобразование однотенантного приложения в мультитенантный" в идентификатор Microsoft Entra.

Напишите код Java для настройки нескольких экземпляров HttpSecurity.

В приведенном ниже примере кода AadWebApplicationAndResourceServerConfig содержит две конфигурации безопасности: одна для сервера ресурсов, а другая — для веб-приложения. Класс ApiWebSecurityConfigurationAdapter имеет высокий приоритет для настройки адаптера безопасности сервера ресурсов. Класс HtmlWebSecurityConfigurerAdapter имеет низкий приоритет для настройки адаптера безопасности веб-приложения.

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AadWebApplicationAndResourceServerConfig {

   @Order(1)
   @Configuration
   public static class ApiWebSecurityConfigurationAdapter extends AadResourceServerWebSecurityConfigurerAdapter {
       protected void configure(HttpSecurity http) throws Exception {
           super.configure(http);
           // All the paths that match `/api/**`(configurable) work as the esource server. Other paths work as  the web application.
           http.antMatcher("/api/**")
               .authorizeRequests().anyRequest().authenticated();
       }
   }

   @Configuration
   public static class HtmlWebSecurityConfigurerAdapter extends AadWebSecurityConfigurerAdapter {

       @Override
       protected void configure(HttpSecurity http) throws Exception {
           super.configure(http);
           // @formatter:off
           http.authorizeRequests()
                   .antMatchers("/login").permitAll()
                   .anyRequest().authenticated();
           // @formatter:on
       }
   }
}

Тип приложения

Свойство spring.cloud.azure.active-directory.application-type является необязательным, так как его значение может выводиться зависимостями. Это свойство необходимо задать вручную только при использовании значения web_application_and_resource_server.

Имеет зависимость: spring-security-oauth2-client Имеет зависимость: spring-security-oauth2-resource-server Допустимые значения типа приложения Значение по умолчанию
Да No web_application web_application
No Да resource_server resource_server
Да Да web_application,resource_server,
resource_server_with_obo, web_application_and_resource_server
resource_server_with_obo

Настраиваемые свойства

Начальный код Spring Boot для Идентификатора Microsoft Entra предоставляет следующие свойства:

Свойства Description
spring.cloud.azure.active-directory.app-id-uri Используется сервером ресурсов для проверки аудитории в маркере доступа. Маркер доступа действителен только в том случае, если аудитория равна значениям идентификатора клиента> или <идентификатора приложения-URI>, описанным ранее.<
spring.cloud.azure.active-directory.authorization-client Карта, настраивающая API-интерфейсы ресурса, которые будет посещать приложение. Каждый элемент соответствует одному API-интерфейсу ресурса, который будет посещать приложение. В коде Spring каждый элемент соответствует одному объекту OAuth2AuthorizedClient.
spring.cloud.azure.active-directory.authorization-client.<your-client-name.область>s Разрешения для API-интерфейса на сервере ресурсов, который будет получен приложением.
spring.cloud.azure.active-directory.authorization-client.<your-client-name.authorization-grant-type> Тип клиента авторизации. Поддерживаемые типы: authorization_code (тип по умолчанию для веб-приложения), on_behalf_of (тип по умолчанию для сервера ресурсов), client_credentials.
spring.cloud.azure.active-directory.application-type См. раздел Тип приложения.
spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint Базовый код URI для сервера авторизации. Значение по умолчанию — https://login.microsoftonline.com/.
spring.cloud.azure.active-directory.credential.client-id Зарегистрированный идентификатор приложения в идентификаторе Microsoft Entra.
spring.cloud.azure.active-directory.credential.client-secret Секрет клиента зарегистрированного приложения.
spring.cloud.azure.active-directory.user-group.use-transitive-members Используется v1.0/me/transitiveMemberOf для получения групп, если задано значение true. Или используйте /v1.0/me/memberOf.
spring.cloud.azure.active-directory.post-logout-redirect-uri URI перенаправления для публикации выхода из системы.
spring.cloud.azure.active-directory.profile.tenant-id Идентификатор клиента Azure. Допустимые значенияtenant-id: common, organizationsconsumersили идентификатор клиента.
spring.cloud.azure.active-directory.user-group.allowed-group-group-name Ожидаемые группы пользователей, которым будет предоставлен центр, если он найден в ответе MemberOf на вызов API Graph.
spring.cloud.azure.active-directory.user-name-attribute Указывает, какое утверждение будет именем субъекта.

Из приведенных ниже примеров вы узнаете, как использовать эти свойства:

Пример свойства 1. Чтобы использовать Azure для Китая (21Vianet), а не глобальный Azure, используйте следующий шаг.

  • Добавьте следующие свойства в файл application.yml.

    spring:
       cloud:
         azure:
           active-directory:
             enabled: true
             profile:
               environment:
                 active-directory-endpoint: https://login.partner.microsoftonline.cn
    

С помощью этого метода вместо общедоступного облака Azure можно использовать национальное облако Azure.

Пример свойства 2. Чтобы использовать имя группы для защиты некоторого метода в веб-приложении, выполните следующие действия.

Добавьте следующее свойство в файл application.yml.

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       user-group:
         allowed-groups: group1, group2

Используйте конфигурацию безопасности по умолчанию или настройте собственную конфигурацию.

Вариант 1. Используйте конфигурацию по умолчанию. С помощью этого параметра вам не нужно ничего делать. Класс DefaultAadWebSecurityConfigurerAdapter настраивается автоматически.

Вариант 2. Укажите самоопределимую конфигурацию. Чтобы настроить конфигурацию, разверните класс AadWebSecurityConfigurerAdapter и вызовите метод super.configure(http) в функции configure(HttpSecurity http), как показано в следующем примере:

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class AadOAuth2LoginSecurityConfig extends AadWebSecurityConfigurerAdapter {

   /**
    * Add configuration logic as needed.
    */
   @Override
   protected void configure(HttpSecurity http) throws Exception {
       super.configure(http);
       http.authorizeRequests()
           .anyRequest().authenticated();
       // Do some custom configuration.
   }
}

Используйте аннотацию @PreAuthorize для защиты метода, как показано в следующем примере:

@Controller
public class RoleController {
   @GetMapping("group1")
   @ResponseBody
   @PreAuthorize("hasRole('ROLE_group1')")
   public String group1() {
       return "group1 message";
   }

   @GetMapping("group2")
   @ResponseBody
   @PreAuthorize("hasRole('ROLE_group2')")
   public String group2() {
       return "group2 message";
   }

   @GetMapping("group1Id")
   @ResponseBody
   @PreAuthorize("hasRole('ROLE_<group1-id>')")
   public String group1Id() {
       return "group1Id message";
   }

   @GetMapping("group2Id")
   @ResponseBody
   @PreAuthorize("hasRole('ROLE_<group2-id>')")
   public String group2Id() {
       return "group2Id message";
   }
}

Пример свойства 3. Чтобы включить поток учетных данных клиента на сервере ресурсов, посещающих серверы ресурсов, выполните следующие действия.

Добавьте следующее свойство в файл application.yml.

spring:
 cloud:
   azure:
     active-directory:
       enabled: true
       authorization-clients:
         webapiC:   # When authorization-grant-type is null, on behalf of flow is used by default
           authorization-grant-type: client_credentials
           scopes:
             - <Web-API-C-app-id-url>/.default

Добавьте примерно следующий код в приложение, как показано в следующем примере:

@PreAuthorize("hasAuthority('SCOPE_Obo.WebApiA.ExampleScope')")
@GetMapping("webapiA/webapiC")
public String callClientCredential() {
   String body = webClient
       .get()
       .uri(CUSTOM_LOCAL_READ_ENDPOINT)
       .attributes(clientRegistrationId("webapiC"))
       .retrieve()
       .bodyToMono(String.class)
       .block();
   LOGGER.info("Response from Client Credential: {}", body);
   return "client Credential response " + (null != body ? "success." : "failed.");
}

Расширенные функции

Поддержка управления доступом с помощью маркера идентификатора в веб-приложении

Начальный набор поддерживает создание GrantedAuthority из утверждения roles маркера идентификации, чтобы разрешить использование этого маркера для авторизации в веб-приложении. Вы можете использовать функцию appRoles идентификатора Microsoft Entra для создания roles утверждения и реализации управления доступом.

Примечание.

Утверждение roles, созданное из appRoles, дополняется префиксом APPROLE_.

При использовании appRoles в качестве утверждения rolesодновременно не настраивайте атрибут группы как roles. В противном случае атрибут группы переопределит утверждение, чтобы оно содержало сведения о группе, а не appRoles. Не используйте следующую конфигурацию в манифесте:

"optionalClaims": {
    "idtoken": [{
        "name": "groups",
        "additionalProperties": ["emit_as_roles"]
    }]
}

Для поддержки управления доступом по маркеру идентификатора в веб-приложении выполните следующие действия.

Добавьте роли приложения в свое приложение и назначьте их пользователям или группам. Дополнительные сведения см. в документе Практическое руководство. Добавление ролей приложения в приложение и их получение в маркере.

Добавьте следующую конфигурацию appRoles в манифест приложения:

 "appRoles": [
   {
     "allowedMemberTypes": [
       "User"
     ],
     "displayName": "Admin",
     "id": "2fa848d0-8054-4e11-8c73-7af5f1171001",
     "isEnabled": true,
     "description": "Full admin access",
     "value": "Admin"
    }
 ]

Добавьте примерно следующий код в приложение, как показано в следующем примере:

@GetMapping("Admin")
@ResponseBody
@PreAuthorize("hasAuthority('APPROLE_Admin')")
public String Admin() {
   return "Admin message";
}

Устранение неполадок

Включение ведения журнала клиента

Пакеты SDK Azure для Java предлагают согласованную историю ведения журнала для устранения неполадок и устранения ошибок приложений. Такие журналы содержат сведения о работе приложения до момента сбоя, что позволяет определить его первопричину. Инструкции, которые помогут включить ведение журналов, см. на вики-странице, посвященной журналам.

Включение ведения журнала Spring

Spring позволяет всем поддерживаемым системам ведения журналов устанавливать уровни ведения журнала в среде Spring (например, в application.properties), используя параметр logging.level.<logger-name>=<level>, где уровень может иметь одно из следующих значений: TRACE, DEBUG, INFO, WARN, ERROR, FATAL или OFF. Корневое средство ведения журнала можно настроить с помощью logging.level.root.

В следующем примере показаны потенциальные настройки ведения журнала в файле application.properties:

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR

Дополнительные сведения о конфигурации ведения журнала в Spring см. в разделе ведение журнала в документации по Spring.

Следующие шаги

Дополнительные сведения о Spring и Azure см. в центре документации об использовании Spring в Azure.