配置 Git 凭据并将远程存储库连接到 Azure Databricks

本文介绍如何在 Databricks 中配置 Git 凭据,以便可以使用 Databricks Git 文件夹(以前称为 Repos)连接远程存储库。

有关受支持的 Git 提供程序(云和本地)的列表,请阅读受支持的 Git 提供程序

GitHub 和 GitHub AE

以下信息适用于 GitHub 和 GitHub AE 用户。

为什么使用 Databricks GitHub 应用而不是 PAT?

如果你使用托管的 GitHub 帐户,Databricks Git 文件夹允许你选择 Databricks GitHub 应用而不是 PAT 进行用户身份验证。 与 PAT 相比,使用 GitHub 应用可获得以下优势:

  • 它使用 OAuth 2.0 进行用户身份验证。 OAuth 2.0 存储库流量经过加密,具有很强的安全性。
  • 它更容易集成(参阅下面的步骤),并且不需要单独跟踪令牌。
  • 系统会自动处理令牌续订。
  • 可将集成范围限定为特定的附加 Git 存储库,从而对访问进行更精细的控制。

重要

根据标准 OAuth 2.0 集成规范,Databricks 会存储用户的访问和刷新令牌 – 所有其他访问控制均由 GitHub 处理。 访问和刷新令牌遵循 GitHub 的默认过期规则,即访问令牌在 8 小时后过期(这可最大程度地降低凭据泄露的风险)。 如果未使用,则刷新令牌的生存期为 6 个月。 链接凭据在处于非活动状态的 6 个月后过期,这要求用户重新配置它们。

可以选择使用客户管理的密钥 (CMK) 来加密 Databricks 令牌。

注意

  • GitHub Enterprise Server 不支持此功能。 改用个人访问令牌。

在 Azure Databricks 中,在“用户设置”页上链接 GitHub 帐户:

  1. 在任何页面的右上角,单击用户名,然后选择“设置”。

  2. 单击“关联帐户”选项卡。

  3. 将提供商更改为 GitHub,选择“链接 Git 帐户”,然后单击“链接”。

    在 Databricks 中链接 GitHub 帐户

  4. 此时会显示 Databricks GitHub 应用授权页。 授权 GitHub 应用完成设置,这允许 Databricks 在 Git 文件夹中执行 Git 操作(例如克隆存储库)时代表你执行操作。 有关应用授权的详细信息,请参阅 GitHub 文档

    Databricks GitHub 应用授权页

  5. 若要允许访问 GitHub 存储库,请按照以下步骤安装和配置 Databricks GitHub 应用。

安装和配置 Databricks GitHub 应用以允许访问存储库

可以在要从 Databricks Git 文件夹访问的 GitHub 存储库上安装和配置 Databricks GitHub 应用。 有关应用安装的详细信息,请参阅 GitHub 文档

  1. 打开 Databricks GitHub 应用安装页

  2. 选择拥有要访问的存储库的帐户。

    Databricks GitHub 应用安装页

  3. 如果你不是帐户的所有者,则必须让帐户所有者为你安装并配置应用。

  4. 如果你是帐户所有者,请安装 GitHub 应用。 安装它可授予对代码的读取和写入访问权限。 仅代表用户访问代码(例如,当用户克隆 Databricks Git 文件夹中的存储库时)。

  5. (可选)可以通过选择“仅选择存储库”选项来仅授予对部分存储库的访问权限。

使用个人访问令牌连接到 GitHub 存储库

在 GitHub 中,按照以下步骤创建一个允许访问存储库的个人访问令牌:

  1. 在任何页面的右上角,单击个人资料照片,然后单击“设置”。
  2. 单击“开发人员设置”。
  3. 单击左侧窗格中的“个人访问令牌”选项卡,然后单击“令牌(经典)”。
  4. 单击“生成新令牌”按钮。
  5. 输入令牌说明。
  6. 选择“存储库”范围和“工作流”范围,然后单击“生成令牌”按钮。 如果存储库具有 GitHub Action 工作流,则需要“工作流”范围。
  7. 将令牌复制到剪贴板。 在 Azure Databricks 中的“用户设置”>“关联帐户”下输入此令牌。

若要使用单一登录,请参阅授权用于 SAML 单一登录的个人访问令牌

注意

在帐户或组织中安装 Databricks Github 应用时遇到问题? 有关故障排除指南,请参阅 GitHub 应用安装文档

使用精细个人访问令牌连接到 GitHub 存储库

最佳做法是使用细粒度的 PAT,仅授予对项目中要访问的资源的访问权限。 在 GitHub 中,按照以下步骤创建一个允许访问存储库的精细 PAT:

  1. 在任何页面的右上角,单击个人资料照片,然后单击“设置”。

  2. 单击“开发人员设置”。

  3. 单击左侧窗格中的“个人访问令牌”选项卡,然后单击“细粒度令牌”。

  4. 单击页面右上角的“生成新令牌”按钮,打开“新建精细个人访问令牌”页

    生成 GitHub 令牌

  5. 通过以下设置配置新的精细令牌:

    • 令牌名称:提供唯一的令牌名称。 将该名称记在某个地方,以免遗忘或丢失!

    • 过期时间:选择令牌过期时间范围。 默认值为“30 天”。

    • 说明:添加描述令牌用途的简短文本。

    • 资源所有者:默认值为当前的 GitHub ID。 将它设置为拥有你要访问的存储库的 GitHub 组织。

    • 在“存储库访问”下,选择令牌的访问范围。 最佳做法是仅选择要用于 Git 文件夹版本控制的那些存储库。

    • 在“权限”下,为要使用的存储库和帐户配置此令牌授予的特定访问级别。 有关权限组的更多详细信息,请阅读 GitHub 文档中的精细个人访问令牌所需的权限

      将“内容”的访问权限设置为“读取和写入”。 (可在存储库权限下找到内容范围。)有关此范围的详细信息,请参阅关于内容范围的 GitHub 文档

      将细粒度 Git PAT 的权限设置为通过 GitHub UI 读取和写入

  6. 单击“生成令牌”按钮

  7. 将令牌复制到剪贴板。 在 Azure Databricks 中的“用户设置”>“关联帐户”下输入此令牌。

GitLab

在 GitLab 中,按照以下步骤创建一个允许访问存储库的个人访问令牌:

  1. 在 GitLab 中,单击屏幕左上角的用户图标,然后选择“首选项”

  2. 点击边栏中的“访问令牌”。

  3. 在页面的“个人访问令牌”部分中,单击“添加新令牌”

    生成 GitLab 令牌

  4. 输入令牌的名称。

  5. 选择提供访问权限的特定范围,方法是选中所需权限级别的框。 有关范围选项的更多详细信息,请阅读有关 PAT 范围的 GitLab 文档

  6. 单击“创建个人访问令牌”

  7. 将令牌复制到剪贴板。 在 Azure Databricks 中的“用户设置”>“关联帐户”下输入此令牌。

若要详细了解如何创建和管理个人访问令牌,请参阅 GitLab 文档

GitLab 还支持使用“项目访问令牌”进行精细访问。 可以使用项目访问令牌来限定对 GitLab 项目的访问。 有关更多详细信息,请阅读有关项目访问令牌的 GitLab 文档

Azure DevOps Services

使用 Microsoft Entra ID 连接到 Azure DevOps 存储库

在使用 Microsoft Entra ID 进行身份验证时,会自动完成向 Azure DevOps Services 进行身份验证。 Azure DevOps Services 组织必须链接到与 Databricks 相同的 Microsoft Entra ID 租户。 必须可从 Databricks 工作区的专用子网和公共子网访问 Microsoft Entra ID 的服务终结点。 有关详细信息,请参阅在 Azure 虚拟网络中部署 Azure Databricks(VNet 注入)

在 Azure Databricks 中,在“用户设置”页上将 Git 提供程序设置为 Azure DevOps Services:

  1. 在任何页面的右上角,单击用户名,然后选择“设置”。

  2. 单击“关联帐户”选项卡。

  3. 将提供程序更改为 Azure DevOps Services。

    Azure DevOps Services GitHub 提供程序

使用令牌连接到 Azure DevOps 存储库

以下步骤介绍当 Azure Databricks 存储库不在同一 Microsoft Entra ID 租户中时,如何将 Azure Databricks 存储库连接到 Azure DevOps 存储库。

必须可从 Databricks 工作区的专用子网和公共子网访问 Microsoft Entra ID 的服务终结点。 有关详细信息,请参阅在 Azure 虚拟网络中部署 Azure Databricks(VNet 注入)

在 Azure DevOps 中获取存储库的访问令牌:

  1. 转到 dev.azure.com,然后登录到包含要将 Azure Databricks 连接到的存储库的 DevOps 组织。
  2. 在右上角,单击“用户设置”图标,然后选择“个人访问令牌”。
  3. 单击“+ 新建令牌”
  4. 在窗体中输入信息:
    1. 为令牌命名。
    2. 选择组织名称,即存储库名称。
    3. 设置到期日期。
    4. 选择所需的范围,例如完全访问权限
  5. 复制显示的访问令牌。
  6. 在 Azure Databricks 中的“用户设置”>“关联帐户”下输入此令牌。
  7. Git 提供程序用户名或电子邮件中,输入用于登录到 DevOps 组织的电子邮件地址。

Bitbucket

注意

Databricks 不支持 Bitbucket 存储库访问令牌或项目访问令牌。

在 Bitbucket 中,按照以下步骤创建允许访问存储库的应用密码:

  1. 转到 Bitbucket 云,创建允许访问存储库的应用密码。 请参阅 Bitbucket 云文档
  2. 以安全的方式记录密码。
  3. 在 Azure Databricks 中的“用户设置”>“关联帐户”下输入此密码。

其他 Git 提供程序

如果你的 Git 提供程序未列出,则选择“GitHub”并为其提供你从 Git 提供程序获取的 PAT 通常可行,但不保证可行。