数据工厂与 Azure Git 存储库的交叉租户

Data Factory Cross Tenant with Azure Git Repo

我们使用 ARM 部署我们的基础架构并配置 Git link 如下:

首先配置一个变量:

"repoConfiguration": {
      "type": "FactoryVSTSConfiguration",
      "accountName": "[parameters('accountName')]",
      "repositoryName": "[parameters('repositoryName')]",
      "collaborationBranch": "[parameters('collaborationBranch')]",
      "rootFolder": "[parameters('rootFolder')]",
      "tenantId": "[parameters('repositoryTenantId')]",
      "projectName": "[parameters('projectName')]"
    },

然后在配置资源时使用该变量:

"type": "Microsoft.DataFactory/factories",
  "name": "[variables('dataFactoryName')]",
  "apiVersion": "2018-06-01",
  "location": "[resourceGroup().location]",
  "properties": {
    "repoConfiguration": "[if(equals(parameters('environmentShort'), 'dev'),  variables('repoConfiguration'), json('null'))]",
    "publicNetworkAccess": "Disabled"
  },
  "identity": {
    "type": "SystemAssigned"
  },

请注意,我们正在为 Git 所在的租户设置租户 ID。

假设我们 Git 的电子邮件是: joebloggs@company.com

对于 Azure(另一个租户): joebloggs@xxcompany.com

问题是,该行为与 Microsoft 中的这篇文章不匹配。

行为如下:

首先,我们使用我们的 joesbloggs@xxcompany.com 电子邮件登录并通过 MFA 进行验证。我们选择适当的订阅和数据工厂。登录后,我们会看到以下弹出窗口,它与文章附录中的内容不 100% 匹配:

从这里,我们得到“选择一个帐户”的弹出窗口,我们 select joebloggs@company.com 电子邮件并通过通常的 MFA。

一旦 ADF 加载,我们就会遇到这个问题(我的假设)它没有正确地与两个登录握手:

当我点击 ADF 中的任何内容时,例如工具箱,ADF 恢复为:

检查回购设置,它是设置:

我不知道可能是什么问题。即使手动配置 Git,它在浏览器打开时也能正常工作,但关闭浏览器并再次打开会产生同样的问题。

我们还在为 ADF 使用自托管 IR。

对于遇到此问题的任何人,解决方法是:

  1. 打开浏览器
  2. 在第一个选项卡中,打开 Azure Devops 并登录
  3. 打开 Azure 门户并在第二个选项卡中使用其他租户帐户登录
  4. 在第 3 个选项卡中打开 adf.azure.com。使用您的“其他租户帐户”登录,当它尝试连接到 git 时,它会要求您 select 所需的帐户。 Select 你用于 Azure Devops 和跨租户的帐户应该可以在数据工厂和 Azure 之间正常工作 Git