Ste*_*ven 5 azure oauth-2.0 azure-databricks
我正在尝试将 MS Azure databricks 与数据湖存储 v2 连接,但无法匹配客户端、秘密范围和密钥。
我在 Azure 数据湖 v2 中有数据。我正在尝试遵循以下说明:
我创建了一个“服务原则”,角色为“存储 Blob 数据贡献者”,获得
我已经在 Azure Keyvault 和 Databricks 中使用键和值创建了秘密范围
当我尝试下面的代码时,身份验证无法识别秘密范围和密钥。从文档中我不清楚是否有必要使用 Azure Keyvault 或 Databricks 秘密范围。
val configs = Map(
"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 = "<SCOPE-NAME>", key = "<KEY-VALUE>"),
"fs.azure.account.oauth2.client.endpoint" -> "https://login.microsoftonline.com/XXXXXXXXXX/oauth2/token")
Run Code Online (Sandbox Code Playgroud)
如果有人可以提供帮助,请告知/确认:
CLIENT-ID 应该是什么:我知道这是来自存储帐户;
应在 Azure Keyvault 或 Databricks 中的何处创建 SCOPE-NAME 和 KEY-VALUE?
https://login.microsoftonline.com/XXXXXXXXXX/oauth2/token中的 XXXX应该是您的 TenantID(从门户 > 属性 > DirectoryID 中的 Azure Active Directory 选项卡获取)。
客户端 ID 是应用程序 ID/服务主体 ID(遗憾的是,这些名称在 Azure 世界中可以互换使用 - 但它们都是同一件事)。
如果您尚未创建服务主体,请按照以下说明操作:https://learn.microsoft.com/en-us/azure/storage/common/storage-auth-aad-app#register-your-application-with-an -azure-ad-tenant - 确保在创建湖后授予服务主体对湖的访问权限。
您应该为主体 ID 密钥创建一个范围和秘密 - 因为这是您想要对自由文本隐藏的内容。您还不能在 Databricks UI 中创建它。使用其中之一:
现在我不认为可以在 Azure KeyVault 中创建秘密 - 尽管我希望将来能够看到这一点。从技术上讲,您可以使用 Key Vault 的 API 手动与 Key Vault 集成,但这会给您带来另一个麻烦,因为需要秘密凭据才能连接到 Key Vault。
归档时间: |
|
查看次数: |
10789 次 |
最近记录: |