Databricks 无法连接 Azure Data Lake Storage Gen2:AADSTS7000222 为应用程序提供的客户端密钥已过期

问题描述 投票:0回答:1

我们有连接到 Azure Data Lake Storage Gen2 的数据块。最近它抛出错误:

AADSTS7000222 提供的应用程序客户端密钥已过期。

因此,我们在应用程序注册中创建新的密钥,然后在 Azure Key Vault 中更新。

但错误仍然相同。

我们测试连接到具有相同秘密范围的其他 Azure 服务,并且它正在工作。唯一的问题是连接到 Azure Data Lake Storage Gen2 存储帐户。

可能是什么问题?

databricks azure-data-lake-gen2 azure-app-registration
1个回答
0
投票

通常安装座的配置如下。

configs = {"fs.azure.account.auth.type": "OAuth",
          "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
          "fs.azure.account.oauth2.client.id": "<client-id>",
          "fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope="jgscope",key="fordbx"),
          "fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}


dbutils.fs.mount(
  source = "abfss://<container-name>@<storage-name>.dfs.core.windows.net/",
  mount_point = "/mnt/jadls2",
  extra_configs = configs)

如果有的话,您在门户中更新后再次正确设置了这些配置。

您提到创建新应用程序注册,然后您需要设置客户端 ID,

dbutils.secrets.get(scope="jgscope",key="fordbx")

生成新的密钥并在密钥库中更新,安装时也应进行配置,在此处正确传递范围和密钥名称。

因此,在获取新的客户端 ID 和秘密卸载当前挂载点后,使用上面的代码使用这些新值创建新的挂载。

并使用以下代码检查刷新的秘密。

dbutils.fs.ls("/mnt/jadls2/csv/")

它应该显示文件夹下的文件。

enter image description here

接下来,再次正确检查秘密的到期日期和时间。

请遵循此文档以获取有关安装的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.