2

我们正在 SAP BTP 上进行 SaaS 应用程序开发,面临非常奇怪的问题,新子帐户,在通过 SaaS 注册表服务发布我们的应用程序并实施所有回调并包括依赖回调后,当我们创建一个新的租户子帐户并做在下面的登录步骤中面临订阅问题---

  • 订阅工作正常并且能够生成租户特定的 url。
  • 当用户登录到应用程序 unbale 以通过登录用户调用任何后端服务 api 时,因为 XSUAA 无法进行身份验证,因为 JWT 签名无效 -

"<error_description>无法验证访问令牌的签名</error_description> invalid_token"

  • 相同的工作流程适用于一段时间前为测试目的创建的旧子帐户。
  • 为租户新创建的子账户面临问题。

请帮忙。

谢谢,悉达多

4

1 回答 1

2

SAP Business Technology Platform在2020年上半年改变了Tenant的JWT验证方式。Inste https://sap.github.io/cloud-sdk/docs/java/release-notes-sap-cloud-sdk-for- java#3161ad 使用众所周知的并且只有一个 URL 来获取验证密钥,它现在依赖于该jku字段并issuer确保每个租户都有一个 URL 来获取 JWT 验证的密钥。

SAP Cloud SDK 版本3.16.1及更高版本应完全支持此验证机制。这意味着您使用的 SDK 版本应该非常好。

可能存在应用程序逻辑可能需要更新的边缘情况。这就是为什么我建议您在这里创建一个问题并提供以下信息:

  1. 从什么时候开始影响您的问题?它是在一周前工作而现在就坏了吗?或者您有一段时间没有添加新租户,现在它正在中断?
  2. 你应用的依赖树
  3. 请提供详细的异常堆栈跟踪或日志以确定根本原因。
  4. 将您认为失败的代码片段发送给我们。

当我们可以使其可重现时,解决这个问题应该相当简单。当找到解决方案时,我们很高兴更新此线程,以便社区可以受益。

期待详细的问题和复制步骤。

于 2021-03-21T22:57:08.650 回答