问题描述
所以,有点奇怪,我希望有人遇到过这个问题并找到了解决方法(或者理解为什么会这样)
所以这曾经可以正常工作......本周刚刚开始发生 - 据我们所知
基本上,当您在 Azure DevOps 中创建新的 Azure 资源管理器服务连接时,您会收到以下错误;
Failed to obtain the Json Web Token(JWT) using service principal client ID. Exception Message: Object reference not set to an instance of an object.
这只发生在我们的本地 Azure DevOps 服务器上 - 我可以在我们的 Dev.Azure.com 版本上使用相同的设置创建服务连接,没有任何问题。
问题排查
- 创建了多个服务主体
- 尝试了不同的订阅
- 尝试向 SP 所有者授予订阅权限
- 即使您尝试重新验证现有服务连接,也会遇到相同的错误
- 在 Dev.Azure.com 中工作
- 我们的本地产品没有网络变化
- 仍然可以使用现有的服务连接来执行发布(即使您无法验证它们)
- 按照我的 MS 故障排除页面的建议尝试创建另一个秘密
- 我有一个 PS 脚本,可以使用我创建的 SP 获取不记名令牌,并且该脚本有效
显然,我试过在谷歌上搜索这个问题,它出现在几个地方,但没有一个有解决方案或理解为什么会发生......
TIA
解决方法
以下链接适用于您的问题的不同变体,但第一条评论建议使用可运行的 Powershell 脚本来提供更多详细信息?
,Azure DevOps OnPrem - 服务连接失败 - 无法获取 Json Web 令牌
根据官方文档Troubleshoot Azure Resource Manager service connections。
这些错误通常在您的会话过期时发生。你可以 请参阅此文档并按照以下步骤操作:
- 退出 Azure Pipelines 或 TFS。
- 打开 InPrivate 或隐身浏览器窗口并导航至 https://visualstudio.microsoft.com/team-services/。
- 如果系统提示您退出,请这样做。
- 使用适当的凭据登录。
- 从列表中选择您要使用的组织。
- 选择要添加服务连接的项目。
- 通过打开“设置”页面创建您需要的服务连接。
然后,选择
Services
>New service connection
>Azure Resource Manager
。
您可以尝试在 Azure DevOps OnPrem 机器上运行以下脚本,并验证是否能够生成访问令牌。