如何正确测试Azure 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凭据是否有效吗?

解决方法

尝试DefaultAzureCredential Class,然后调用getToken以获得连接令牌。如果未检索到令牌,则表明用户未通过身份验证。

请注意,该用户可能已经登录,但没有执行该操作的权限。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...