Как подключиться к Azure Key Vault из java серверной части с помощью Azure Java SDK? - PullRequest
0 голосов
/ 28 мая 2020

Следовал этой документации:

https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/keyvault/azure-security-keyvault-secrets/README.md

Я получаю сообщение об ошибке:

AADSTS900382: конфиденциальный клиент не поддерживается в запросе Cross Cloud

Обратите внимание, что это с правительственным облаком.

Просто ли приложение Java должно размещаться на том же сервере в облаке, что и хранилище ключей azure? Потому что для меня это не имеет никакого смысла.

1 Ответ

0 голосов
/ 28 мая 2020

Что касается проблемы, это связано с тем, что все SDK по умолчанию используют https://login.microsoftonline.com в качестве Azure хоста центра сертификации Active Directory. Каждое из других облаков имеет разные конечные точки хоста с полномочиями. Таким образом, нам нужно изменить авторитетный хост, когда мы создаем DefaultAzureCredential.

Например. Я использую sdk Azure Identity Version 1.1.0-beta.4

  1. Install SDK
<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.1.0-beta.4</version>
  </dependency>
</dependencies>
Код
/** 
 * the class `KnownAuthorityHosts` has the all cloud Azure Active Directory authority enpoint :
 * https://docs.microsoft.com/en-us/java/api/com.azure.identity.knownauthorityhosts?view=azure-java-preview
*/
DefaultAzureCredential cred = new DefaultAzureCredentialBuilder().
                 authorityHost(KnownAuthorityHosts.AZURE_US_GOVERNMENT)
                 .build();
SecretClient client = new SecretClientBuilder()
        .vaultUrl(<your-vault-url>)
        .credential(cred )
        .buildClient();

Подробнее см. статью

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