Не удалось выполнить проверку подлинности по умолчанию. Сбой проверки подлинности IntelliJCredential. Сведения об ошибке: Нераспознанное поле «TenantId»

#java #azure #azure-resource-manager #azure-identity

Вопрос:

Я пытаюсь создать группу ресурсов из клиента azure, используя пакет SDK java azure с API-интерфейсами управления облачными ресурсами и идентификации Azure. Я использую плагин Azure Tools в IntelliJ(я могу войти в систему, используя как интерфейс командной строки azure, так и принцип обслуживания). Ниже приведен мой код:

     AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
    TokenCredential credential = new DefaultAzureCredentialBuilder()
            .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
            .build();
    AzureResourceManager azureResourceManager = AzureResourceManager
            .configure()
            .withLogLevel(HttpLogDetailLevel.BASIC)
            .authenticate(credential, profile)
            .withDefaultSubscription();
    
    ResourceGroup rg = azureResourceManager.resourceGroups().define(resourceGroupName)
            .withRegion(Region.fromName(region))
            .create();
 

Но когда я выполняю это, я получаю следующую ошибку:

 2021-06-20 00:39:32.971 ERROR 67464 --- [           main] c.azure.identity.EnvironmentCredential   : Azure Identity => ERROR in EnvironmentCredential: Missing required environment variable AZURE_CLIENT_ID
2021-06-20 00:39:33.825 ERROR 67464 --- [           main] c.azure.identity.EnvironmentCredential   : EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
2021-06-20 00:39:33.827  INFO 67464 --- [           main] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential EnvironmentCredential is unavailable.
2021-06-20 00:39:35.340 ERROR 67464 --- [           main] c.a.i.implementation.IdentityClient      : ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, connect timed out.
2021-06-20 00:39:35.344 ERROR 67464 --- [           main] c.a.identity.ManagedIdentityCredential   : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, connect timed out.
2021-06-20 00:39:35.344  INFO 67464 --- [           main] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential ManagedIdentityCredential is unavailable.
2021-06-20 00:39:35.423 ERROR 67464 --- [nPool-worker-19] c.a.identity.SharedTokenCacheCredential  : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.
2021-06-20 00:39:35.423  INFO 67464 --- [nPool-worker-19] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential SharedTokenCacheCredential is unavailable.
2021-06-20 00:39:35.426 ERROR 67464 --- [nPool-worker-19] com.azure.identity.IntelliJCredential    : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: Unrecognized field "tenantId" (class com.azure.identity.implementation.IntelliJAuthMethodDetails), not marked as ignorable (4 known properties: "authMethod", "azureEnv", "accountEmail", "credFilePath"])
 at [Source: (File); line: 1, column: 34] (through reference chain: com.azure.identity.implementation.IntelliJAuthMethodDetails["tenantId"])
2021-06-20 00:39:35.426 ERROR 67464 --- [nPool-worker-19] c.a.c.implementation.AccessTokenCache    : Failed to acquire a new access token.
2021-06-20 00:40:05.431 ERROR 67464 --- [     parallel-2] c.azure.identity.EnvironmentCredential   : EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
2021-06-20 00:40:05.432  INFO 67464 --- [     parallel-2] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential EnvironmentCredential is unavailable.
2021-06-20 00:40:05.433 ERROR 67464 --- [     parallel-2] c.a.i.implementation.IdentityClient      : ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, No route to host (connect failed).
2021-06-20 00:40:05.434 ERROR 67464 --- [     parallel-2] c.a.identity.ManagedIdentityCredential   : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, No route to host (connect failed).
2021-06-20 00:40:05.434  INFO 67464 --- [     parallel-2] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential ManagedIdentityCredential is unavailable.
2021-06-20 00:40:05.435 ERROR 67464 --- [nPool-worker-19] c.a.identity.SharedTokenCacheCredential  : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.
2021-06-20 00:40:05.435  INFO 67464 --- [nPool-worker-19] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential SharedTokenCacheCredential is unavailable.
2021-06-20 00:40:05.438 ERROR 67464 --- [nPool-worker-19] com.azure.identity.IntelliJCredential    : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: Unrecognized field "tenantId" (class com.azure.identity.implementation.IntelliJAuthMethodDetails), not marked as ignorable (4 known properties: "authMethod", "azureEnv", "accountEmail", "credFilePath"])
 at [Source: (File); line: 1, column: 34] (through reference chain: com.azure.identity.implementation.IntelliJAuthMethodDetails["tenantId"])
2021-06-20 00:40:05.438 ERROR 67464 --- [nPool-worker-19] c.a.c.implementation.AccessTokenCache    : Failed to acquire a new access token.
2021-06-20 00:40:35.439 ERROR 67464 --- [     parallel-4] c.azure.identity.EnvironmentCredential   : EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
2021-06-20 00:40:35.440  INFO 67464 --- [     parallel-4] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential EnvironmentCredential is unavailable.
2021-06-20 00:40:36.945 ERROR 67464 --- [     parallel-4] c.a.i.implementation.IdentityClient      : ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, connect timed out.
2021-06-20 00:40:36.946 ERROR 67464 --- [     parallel-4] c.a.identity.ManagedIdentityCredential   : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, connect timed out.
2021-06-20 00:40:36.946  INFO 67464 --- [     parallel-4] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential ManagedIdentityCredential is unavailable.
2021-06-20 00:40:36.947 ERROR 67464 --- [nPool-worker-19] c.a.identity.SharedTokenCacheCredential  : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.
2021-06-20 00:40:36.947  INFO 67464 --- [nPool-worker-19] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential SharedTokenCacheCredential is unavailable.
2021-06-20 00:40:36.950 ERROR 67464 --- [nPool-worker-19] com.azure.identity.IntelliJCredential    : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: Unrecognized field "tenantId" (class com.azure.identity.implementation.IntelliJAuthMethodDetails), not marked as ignorable (4 known properties: "authMethod", "azureEnv", "accountEmail", "credFilePath"])
 at [Source: (File); line: 1, column: 34] (through reference chain: com.azure.identity.implementation.IntelliJAuthMethodDetails["tenantId"])
2021-06-20 00:40:36.950 ERROR 67464 --- [nPool-worker-19] c.a.c.implementation.AccessTokenCache    : Failed to acquire a new access token.
2021-06-20 00:41:06.954 ERROR 67464 --- [     parallel-6] c.azure.identity.EnvironmentCredential   : EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
2021-06-20 00:41:06.954  INFO 67464 --- [     parallel-6] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential EnvironmentCredential is unavailable.
2021-06-20 00:41:08.459 ERROR 67464 --- [     parallel-6] c.a.i.implementation.IdentityClient      : ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, connect timed out.
2021-06-20 00:41:08.460 ERROR 67464 --- [     parallel-6] c.a.identity.ManagedIdentityCredential   : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, connect timed out.
2021-06-20 00:41:08.460  INFO 67464 --- [     parallel-6] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential ManagedIdentityCredential is unavailable.
2021-06-20 00:41:08.461 ERROR 67464 --- [nPool-worker-19] c.a.identity.SharedTokenCacheCredential  : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.
2021-06-20 00:41:08.461  INFO 67464 --- [nPool-worker-19] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential SharedTokenCacheCredential is unavailable.
2021-06-20 00:41:08.463 ERROR 67464 --- [nPool-worker-19] com.azure.identity.IntelliJCredential    : Azure Identity => ERROR in getToken() call for scopes [https://management.core.windows.net//.default]: Unrecognized field "tenantId" (class com.azure.identity.implementation.IntelliJAuthMethodDetails), not marked as ignorable (4 known properties: "authMethod", "azureEnv", "accountEmail", "credFilePath"])
 at [Source: (File); line: 1, column: 34] (through reference chain: com.azure.identity.implementation.IntelliJAuthMethodDetails["tenantId"])
2021-06-20 00:41:08.463 ERROR 67464 --- [nPool-worker-19] c.a.c.implementation.AccessTokenCache    : Failed to acquire a new access token.

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hyperion.mongo.service.AzureServices]: Constructor threw exception; nested exception is java.lang.RuntimeException: Max retries 3 times exceeded. Error Details: DefaultAzureCredential authentication failed. ---> IntelliJCredential authentication failed. Error Details: Unrecognized field "tenantId" (class com.azure.identity.implementation.IntelliJAuthMethodDetails), not marked as ignorable (4 known properties: "authMethod", "azureEnv", "accountEmail", "credFilePath"])
 at [Source: (File); line: 1, column: 34] (through reference chain: com.azure.identity.implementation.IntelliJAuthMethodDetails["tenantId"])
    x
Caused by: com.azure.core.exception.ClientAuthenticationException: DefaultAzureCredential authentication failed. ---> IntelliJCredential authentication failed. Error Details: Unrecognized field "tenantId" (class com.azure.identity.implementation.IntelliJAuthMethodDetails), not marked as ignorable (4 known properties: "authMethod", "azureEnv", "accountEmail", "credFilePath"])
 at [Source: (File); line: 1, column: 34] (through reference chain: com.azure.identity.implementation.IntelliJAuthMethodDetails["tenantId"])
    at com.azure.identity.ChainedTokenCredential.lambda$getToken$1(ChainedTokenCredential.java:62) ~[azure-identity-1.3.1.jar:na]
    at reactor.core.publisher.Mono.lambda$onErrorResume$31(Mono.java:3460) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onError(FluxPeekFuseable.java:234) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:258) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxPeekFuseable$PeekConditionalSubscriber.onError(FluxPeekFuseable.java:903) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:259) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onError(Operators.java:2062) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.Operators.error(Operators.java:197) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.MonoError.subscribe(MonoError.java:52) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4046) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:81) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.Operators.complete(Operators.java:136) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:45) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4046) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:425) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:270) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:228) ~[reactor-core-3.4.3.jar:3.4.3]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:789) ~[reactor-core-3.4.3.jar:3.4.3]
    ... 28 common frames omitted
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "tenantId" (class com.azure.identity.implementation.IntelliJAuthMethodDetails), not marked as ignorable (4 known properties: "authMethod", "azureEnv", "accountEmail", "credFilePath"])
 at [Source: (File); line: 1, column: 34] (through reference chain: com.azure.identity.implementation.IntelliJAuthMethodDetails["tenantId"])
    at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:855) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1212) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1604) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1582) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:299) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:156) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4526) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3333) ~[jackson-databind-2.11.4.jar:2.11.4]
    at com.azure.identity.implementation.IntelliJCacheAccessor.getAuthDetailsIfAvailable(IntelliJCacheAccessor.java:256) ~[azure-identity-1.3.1.jar:na]
    at com.azure.identity.implementation.IdentityClient.authenticateWithIntelliJ(IdentityClient.java:302) ~[azure-identity-1.3.1.jar:na]
    at com.azure.identity.IntelliJCredential.lambda$getToken$2(IntelliJCredential.java:87) ~[azure-identity-1.3.1.jar:na]
    at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44) ~[reactor-core-3.4.3.jar:3.4.3]
 

Я также экспортировал следующее в vars среды:

 $ export AZURE_CLIENT_ID=2XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXb
$ export AZURE_TENANT_ID=1XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXe
$ export AZURE_CLIENT_SECRET=6XXXXXXXXf
 

Ниже приведен мой POM.xml:

 <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>com.azure.resourcemanager</groupId>
    <artifactId>azure-resourcemanager</artifactId>
    <version>2.6.0</version>
</dependency>
 

Ответ №1:

Следующие шаги сработали для меня при аутентификации с использованием переменных среды:

  1. Отредактируйте ~./bash_profile и добавьте следующие переменные:

    экспорт AZURE_CLIENT_ID=XXXX-XXX-XXXX-XXXX-XXXXXXX
    экспорт AZURE_TENANT_ID=XXXX-XXX-XXXX-XXXX-XXXXXXX
    экспорт AZURE_CLIENT_SECRET=XXXXXXXXXXXXXXX

  2. Перезапустите IntelliJ(обязательно), так как изменения в переменной среды не вступят в силу, если вы не перезагрузите свою среду IDE.

Ответ №2:

Если аутентификация с помощью IntelliJ IDEA,

1) KeePass для Windows требуется настройка.

2) Пользователь вошел в систему с учетной записью Azure в IntelliJ IDEA.

3) Проверьте свои переменные среды с System.getEnv("AZURE_TENANT_ID") помощью .

При использовании DefaultAzureCredential , пожалуйста, обратите внимание на два совета.

  • Параметр .tenantId(String) в построителе или переменной среды AZURE_TENANT_ID настраивает DefaultAzureCredential проверку подлинности для конкретного клиента для общего кэша токенов, кода Visual Studio и идеи IntelliJ.
  • Параметр .intelliJKeePassDatabasePath(String) в конструкторе настраивает DefaultAzureCredential чтение определенного файла KeePass при проверке подлинности с использованием учетных данных IntelliJ.

Код:

 DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
  .intelliJKeePassDatabasePath("C:\Users\user\AppData\Roaming\JetBrains\IdeaIC2020.1\c.kdbx")
  .tenantId(String) // add tenantId, if not set environment variables 
  .build();
 

Кроме того, вы могли бы использовать IntelliJCredential с .keePassDatabasePath(String) для IntelliJ особенно.

Ответ №3:

Я получаю ту же ошибку. Я добавил свойства, как было предложено выше, но все равно получаю ошибку поля tenentID.

Это мой код авторизации

AzureCredentials.java

 import com.azure.core.credential.TokenCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.microsoft.azure.spring.cloud.config.AppConfigurationCredentialProvider;
import com.microsoft.azure.spring.cloud.config.KeyVaultCredentialProvider;

public class AzureCredentials implements AppConfigurationCredentialProvider, KeyVaultCredentialProvider {


    @Override
    public TokenCredential getKeyVaultCredential(String uri) {
            return getCredential();
    }

    @Override
    public TokenCredential getAppConfigCredential(String uri) {
            return getCredential();
    }

    public TokenCredential getCredential()  {
        return new DefaultAzureCredentialBuilder()
                .intelliJKeePassDatabasePath("C:\Users\DavidPalfery\AppData\Roaming\JetBrains\IntelliJIdea2021.1\c.kdbx")
                .tenantId("7c55576f-e738-4097-8c71-053078eadf3f")
                .build();

    }
}
 

AppConfiguration.java

 import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfiguration {

   @Bean
    public AzureCredentials azureCredentials() {
        return new AzureCredentials();
    }
}
 

AdminApplication.java

 import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.scheduling.annotation.EnableAsync;
    import org.springframework.web.reactive.config.EnableWebFlux;


@PropertySource("classpath:application.properties")
@EnableWebFlux
@SpringBootApplication(exclude = {WebMvcAutoConfiguration.class })
@EnableConfigurationProperties({AppConfigValues.class})
@EnableAsync
public class AdminApplication {
    @Value("${server.port}")
    int port;

    public static void main(String[] args) {

       SpringApplication.run(AdminApplication.class, args);

    }
}
 

Pom.xml

     <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.3</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.mygroupid</groupId>
    <artifactId>admin</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>admin</name>
    <description>Admin APIs</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-identity</artifactId>
            <version>1.3.3</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-security-keyvault-secrets</artifactId>
            <version>4.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.azure.spring</groupId>
            <artifactId>azure-identity-spring</artifactId>
            <version>1.6.0</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-data-appconfiguration</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
            <version>3.4.0</version><!--$NO-MVN-MAN-VER$ -->
        </dependency>
        <dependency>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>msal4j</artifactId>
            <version>1.10.1</version>
        </dependency>
        <dependency>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>spring-cloud-azure-appconfiguration-config</artifactId>
            <version>1.3.0</version>
        </dependency>

    </dependencies>
 

Тогда это сообщение об ошибке при запуске. Он пытается получить учетные данные IntelliJ, но не удается в поле TenantId, отсутствующем в классе com.azure.identity.реализация.Объект IntelliJAuthMethodDetails

     2021-07-20 18:21:51.560 ERROR 22844 --- [           main] c.azure.identity.EnvironmentCredential   : Azure Identity => ERROR in EnvironmentCredential: Missing required environment variable AZURE_CLIENT_ID
2021-07-20 18:21:51.898  INFO 22844 --- [           main] c.a.d.a.ConfigurationAsyncClient         : Listing ConfigurationSettings - SettingSelector(keyFilter=/application/*, labelFilter= , acceptDateTime=null, fields=ALL_FIELDS)
2021-07-20 18:21:51.976 ERROR 22844 --- [           main] c.azure.identity.EnvironmentCredential   : EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
2021-07-20 18:21:51.976  INFO 22844 --- [           main] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential EnvironmentCredential is unavailable.
2021-07-20 18:21:52.061 ERROR 22844 --- [           main] c.a.i.implementation.IdentityClient      : ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, Network is unreachable: connect.
2021-07-20 18:21:52.061 ERROR 22844 --- [           main] c.a.identity.ManagedIdentityCredential   : Azure Identity => ERROR in getToken() call for scopes [https://techradar.azconfig.io/.default]: ManagedIdentityCredential authentication unavailable. Connection to IMDS endpoint cannot be established, Network is unreachable: connect.
2021-07-20 18:21:52.061  INFO 22844 --- [           main] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential ManagedIdentityCredential is unavailable.
2021-07-20 18:21:52.192 ERROR 22844 --- [           main] c.a.identity.SharedTokenCacheCredential  : Azure Identity => ERROR in getToken() call for scopes [https://techradar.azconfig.io/.default]: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.
2021-07-20 18:21:52.192  INFO 22844 --- [           main] c.azure.identity.DefaultAzureCredential  : Azure Identity => Attempted credential SharedTokenCacheCredential is unavailable.
2021-07-20 18:21:52.192 ERROR 22844 --- [           main] com.azure.identity.IntelliJCredential    : Azure Identity => ERROR in getToken() call for scopes [https://techradar.azconfig.io/.default]: Unrecognized field "tenantId" (class com.azure.identity.implementation.IntelliJAuthMethodDetails), not marked as ignorable (4 known properties: "authMethod", "azureEnv", "accountEmail", "credFilePath"])
 at [Source: (File); line: 1, column: 60] (through reference chain: com.azure.identity.implementation.IntelliJAuthMethodDetails["tenantId"])
 

Комментарии:

1. Попробуйте добавить AZURE_CLIENT_ID в переменную среды и перезапустите среду IDE.

2. Я не хочу иметь руководителя службы. Я хочу использовать SharedTokenCacheCredential, который извлекается из контекста CLI. Я добавил var среды AZURE_TENANT_ID, хотя и не уверен, почему библиотеки не извлекают это из контекста CLI, поскольку там существует это значение.