Azure Service Bus UnauthorizedError: InvalidSignature: The token has an invalid signature inside Kubernetes cluster

Azure Service Bus UnauthorizedError: InvalidSignature: The token has an invalid signature inside Kubernetes cluster

我遇到一个错误:

UnauthorizedError: InvalidSignature: The token has an invalid signature

当我尝试从 Azure 的 Kubernetes 集群内的 nodejs docker 容器 运行ning 访问 Azure 服务总线时。

有趣的是,当我在本地 运行 代码时,或者只是在我的开发笔记本电脑上的 docker 容器内,但一旦我将容器部署到 K8,我就不会收到此错误集群我收到那个错误。

我验证了 K8 集群机密文件中的服务总线 SAS 主键是正确的。

以下是错误对象在 K8 集群中的样子:

UnauthorizedError: InvalidSignature: The token has an invalid signature. {"timestamp":"2019-01-08T05:43:48.918Z"}
debug: condition: com.microsoft:auth-failed {"timestamp":"2019-01-08T05:43:48.920Z"}
debug: info: undefined {"timestamp":"2019-01-08T05:43:48.920Z"}
debug: message: InvalidSignature: The token has an invalid signature. {"timestamp":"2019-01-08T05:43:48.924Z"}
debug: name: UnauthorizedError {"timestamp":"2019-01-08T05:43:48.924Z"}
debug: retryable: false {"timestamp":"2019-01-08T05:43:48.924Z"}
debug: stack: UnauthorizedError: InvalidSignature: The token has an invalid signature.
    at Object.translate (/usr/src/app/node_modules/@azure/amqp-common/dist/lib/errors.js:527:17)
    at Receiver.messageCallback (/usr/src/app/node_modules/@azure/amqp-common/dist/lib/requestResponseLink.js:109:44)
    at Receiver.emit (events.js:182:13)
    at emit (/usr/src/app/node_modules/rhea-promise/dist/lib/util/utils.js:129:24)
    at Object.emitEvent (/usr/src/app/node_modules/rhea-promise/dist/lib/util/utils.js:140:9)
    at Receiver._link.on (/usr/src/app/node_modules/rhea-promise/dist/lib/link.js:249:25)
    at Receiver.emit (events.js:182:13)
    at Receiver.link.dispatch (/usr/src/app/node_modules/rhea/lib/link.js:59:37)
    at Incoming.on_transfer (/usr/src/app/node_modules/rhea/lib/session.js:360:22)
    at Session.on_transfer (/usr/src/app/node_modules/rhea/lib/session.js:736:19) {"timestamp":"2019-01-08T05:43:48.925Z"}
debug: translated: true {"timestamp":"2019-01-08T05:43:48.925Z"}

我正在使用 @azure/service-bus 作为节点包来使用 azure 服务总线。

非常感谢任何帮助、建议或想法。

非常感谢。

在这种情况下,问题在于 OP 将 SAS 字符串传递给容器的方式