'未找到用户'图形调用后,DevOps迁移准备失败

问题描述

我正在尝试将本地TFS(DevOps Server 2019更新1.1)迁移到DevOps Services,并使用migrate tool。我已经运行validate命令并清除了这些警告,但是下一个命令(prepare)神秘地失败了。日志文件只说:

[Error  @11:18:19.488] 
    Exception Message: Request Failed (type AadGraphTimeoutException)
    Exception Stack Trace:    at Microsoft.VisualStudio.Services.Identity.Dataimport.AadIdentityMapper.ExecuteGraphRequest[T](Func`1 request)
       at Microsoft.VisualStudio.Services.Identity.Dataimport.AadIdentityMapper.GetAadTenantId()
       at TfsMigrator.TfsMigratorCommandValidate.PopulateDataimportPropertiesOnContext()
       at TfsMigrator.TfsMigratorCommandValidate.PopulateValidationItems(DataimportValidationContext context)
       at TfsMigrator.TfsMigratorCommandValidate.RunValidations(Boolean validateFiles)
       at TfsMigrator.TfsMigratorCommandPrepare.RunImpl()
       at TfsMigrator.TfsMigratorCommand.Run()

一位同事从文档中指出了this troubleshooting,但是a)我们大约有10个用户参与了TFS(本地AD中活跃用户总数约为50),因此很难相信我们有这么多用户会超时和b)我运行了Get-Msoluser故障排除命令,并通过Graph成功查询了AAD。

我在连接fiddler Classic作为代理的情况下再次运行了prepare命令,发现对Graph API的调用失败。看起来像

请求(标头简化):

POST https://graph.windows.net/xxxxxxxx-xxxx-xxxx-xxxx-0664e34adcbd/$batch?api-version=1.6 HTTP/1.1
Content-Type: multipart/mixed; boundary=batch_ea471df4-db73-403d-a172-a0955ddb1575
...

--batch_ea471df4-db73-403d-a172-a0955ddb1575
GET https://graph.windows.net/xxxxxxxx-xxxx-xxxx-xxxx-0664e34adcbd/tenantDetails?api-version=1.6 HTTP/1.1
...

--batch_ea471df4-db73-403d-a172-a0955ddb1575--

响应(正文):

{
    "odata.error": {
        "code": "Authentication_Unauthorized","message": {
            "lang": "en","value": "User was not found."
        },"requestId": "58c4cabc-dd67-4ce8-9735-134a7e0df60c","date": "2020-09-14T20:07:49"
    }
}

所以我现在的问题是-是否缺少任何权限(DevOps,Azure,Graph)?有没有其他解决方法?我确实使用Microsoft Graph API标记了这个问题,但确实认为失败的调用使用了较旧的Azure AD Graph API。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)