CF多租户:访问租户URL返回提供程序ID

2020-09-09 11:51发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Sap社区,

我已经遵循了这个博客,并创建了自己的简单项目(nodejs和sapui5),以解决云铸造环境中的多租户主题

现在我遇到以下问题:当我访问租户URL 时,我总是会得到 provider-subaccount 的租户ID。 >,并且不是租户子帐户的。 因此,我总是从数据库中获得相同的数据,而不是租户特定的数据。

Git项目说明作者告诉我们,如果调用后无法解决该路由,则必须为租户创建一条路由并将其映射到提供商应用程序。 我问自己,这是否可能是问题所在,因为主机可能会被provider-app-url代替,所以tenantid来自提供商吗?

到目前为止,租户子帐户仅订阅,到目前为止,没有再创建任何东西(除了管理员之外,没有角色,没有额外的xsuaa)。 这是重点吗?

如果您需要更多详细信息,请告诉我。

先谢谢您

佩吉

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Sap社区,

我已经遵循了这个博客,并创建了自己的简单项目(nodejs和sapui5),以解决云铸造环境中的多租户主题

现在我遇到以下问题:当我访问租户URL 时,我总是会得到 provider-subaccount 的租户ID。 >,并且不是租户子帐户的。 因此,我总是从数据库中获得相同的数据,而不是租户特定的数据。

Git项目说明作者告诉我们,如果调用后无法解决该路由,则必须为租户创建一条路由并将其映射到提供商应用程序。 我问自己,这是否可能是问题所在,因为主机可能会被provider-app-url代替,所以tenantid来自提供商吗?

到目前为止,租户子帐户仅订阅,到目前为止,没有再创建任何东西(除了管理员之外,没有角色,没有额外的xsuaa)。 这是重点吗?

如果您需要更多详细信息,请告诉我。

先谢谢您

佩吉

7条回答
Haoba3210
1楼 · 2020-09-09 12:24.采纳回答

嗨,

终于可以了,我很高兴,我想让你知道。

  • 第一个返回提供者ID而不是租户ID的问题是由于未更新的uaa-service配置。 删除并重新创建。
  • 第二个失败的" subdomain-identity-zone-mapping"问题部分是由于缺少必须与租户主机模式匹配的额外路由,尤其是对于提供商子帐户。
  • 与内部服务器错误有关的最后一个问题:我取消了租户的订阅,并删除了saas注册表和uaa。 然后我完全按照教程中的顺序进行了操作。 首先构建和部署,然后创建saas并订阅。 我还更改了模块的顺序,不知道它是否影响解决方案,但请尝试一下:将ui模块作为第一个条目。

最诚挚的问候!

悻福寶寶
2楼-- · 2020-09-09 12:28

您好 Manu Gupta

感谢您的回复。 该问题是由于xsuaa服务未使用属性" tenantmode:共享"更新的。 我不得不删除它并再次部署它。

但是现在我收到以下消息。 您有什么主意吗?

最好的问候,佩姬

土豆飞人
3楼-- · 2020-09-09 12:16

嗨,

我怀疑manifest.yml中的T​​ENANT_HOST_PATTERN配置有问题。 请交叉检查一次。 这种问题通常是由于TENANT_HOST_PATTERN的配置错误而引起的,我希望您已经遵循了针对应用程序的saas设置。

谢谢

Manu

SAP砖家
4楼-- · 2020-09-09 12:29

嗨, Manu Gupta

感谢您的回复。

我正在使用html5模块的Approuter,因此我没有approuter的manifest.yml文件。 我只有xs-app.json。

我是否必须通过" cf set-env myfrontend TENANT_HOST_PATTERN'(。*)- myfrontend.cfapps.eu10.hana.ondemand.com '"那么还是还有另一种方法? 到目前为止,我已经将mta.yaml文件中的tenant-host-pattern设置为属性。

最诚挚的问候!

悠然的二货
5楼-- · 2020-09-09 12:30

嗨,佩吉,

是的,我遇到了同样的问题。 现在,您必须更正应用路由器的manifest.yml配置。 如果假设您的子域名为" xyz",则必须具有-

应用程序:
 -名称:xyz- 
   路径:approuter
   记忆体:128M
   buildpack:nodejs_buildpack
   环境:
     TENANT_HOST_PATTERN:'^(。*)-<任何名字> .cfapps.sap.hana.ondemand.com'
   服务:
     -xsuaa
 
蓋茨
6楼-- · 2020-09-09 12:07

嗨, Manu Gupta

我现在要做的是为provider-application添加一个新的路由,也要满足tenant-host-pattern的要求。 现在,我进入登录屏幕,并使用以下特定的tenant-subdomain-name来欢迎您:

我认为这似乎还不错。 但是,当我登录时,出现内部服务器错误。 日志仅显示标准输出,我可以看到未到达后端,因为没有请求时间条目。 前端日志显示以下各项的标准输出:

  1. GET/HTTP/1.1" 302 0 0",
  2. 然后以" {" [write_at":.."开头,然后是
  3. " GET/frontend/index.html HTTP/1.1" 200 0 660",
  4. " {" writing_at":..",msg":" GET请求到/login/callback?code = deRG7VXpbO已完成,状态为500-无法通过UAA进行身份验证:无法获取访问令牌:在https处向UAA发出请求 ://" mysubdomain"。 authentication.eu10.hana.ondemand.com/oauth/token 失败,错误:UAA在https://" mysubdomain"发出意外响应。 authentication.eu10.hana.ondemand.com/oauth/token :状态码:401,响应正文:\" {\"错误\":\"未授权\", \" error_description \":\"错误的凭据\"} \","}
大道至简
7楼-- · 2020-09-09 12:31

嗨,佩吉,

我也建议在您的mta.yaml中设置TENANT_HOST_PATTERN或共享您的mta.yaml,以便更好地理解。

谢谢

Manu

一周热门 更多>