Azure DevOps OnPrem - 服务连接失败 - 无法获取 Json Web 令牌

问题描述

所以,有点奇怪,我希望有人遇到过这个问题并找到了解决方法(或者理解为什么会这样)

所以这曾经可以正常工作......本周刚刚开始发生 - 据我们所知

基本上,当您在 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 脚本来提供更多详细信息?

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/7537132d-a363-4868-86fa-c008de180ff1/failed-to-obtain-the-json-web-tokenjwt-for-service-principal?forum=TFService

,

Azure DevOps OnPrem - 服务连接失败 - 无法获取 Json Web 令牌

根据官方文档Troubleshoot Azure Resource Manager service connections

这些错误通常在您的会话过期时发生。你可以 请参阅此文档并按照以下步骤操作:

  1. 退出 Azure Pipelines 或 TFS。
  2. 打开 InPrivate 或隐身浏览器窗口并导航至 https://visualstudio.microsoft.com/team-services/
  3. 如果系统提示您退出,请这样做。
  4. 使用适当的凭据登录。
  5. 从列表中选择您要使用的组织。
  6. 选择要添加服务连接的项目。
  7. 通过打开“设置”页面创建您需要的服务连接。 然后,选择 Services > New service connection > Azure Resource Manager

您可以尝试在 Azure DevOps OnPrem 机器上运行以下脚本,并验证是否能够生成访问令牌。

GetAccessToken.ps1

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...