Как правильно проверять действительность учетных данных, используемых клиентом Azure SDK

#azure #azure-blob-storage #azure-java-sdk

#azure #azure-blob-хранилище #azure-java-sdk

Вопрос:

Я пытаюсь создать функцию, которая с учетом учетных данных Azure проверяет, являются ли они действительными.

В этом случае я беру учетные данные имени учетной записи ADLS и ключа учетной записи.

Azure Java SDK не предоставляет API для этого, ОС я делаю следующее вручную

 def testConnection(account: String, accountKey: String): Boolean = {
  val storageConnectionString = s"DefaultEndpointsProtocol=https;AccountName=${accountName};AccountKey=${accountKey}"
  val storageAccount = CloudStorageAccount.parse(storageConnectionString)
  val client = storageAccount.createCloudBlobClient()
  Try{ client.downloadServiceProperties() }.isSuccess
}
  

проблема downloadServiceProperties() в том, что она относительно медленная, это может занять минуту или около того. Есть ли другие более быстрые варианты проверки, являются ли учетные данные ADLS пользователя действительными?

Ответ №1:

Попробуйте класс DefaultAzureCredential, а затем вызвать getToken , чтобы получить токен подключения. Если токен не извлекается, пользователь не проходит проверку подлинности.

Примите во внимание, что пользователь может быть зарегистрирован, но не имеет прав на выполнение операции.

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

1. Это кажется интересным, подумал, что я не могу найти этот класс, у меня есть эта зависимость "com.microsoft.azure" % "azure-storage" % "8.6.5"

2. Вам нужно это: com.azure:azure-identity:1.1.2