点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
在我的应用程序中,我正在使用多个服务,一个approuter以及xsuaa身份验证方法(SAP ID身份验证服务)。 这些服务受到限制,一个需要开发人员角色,另一个需要经过身份验证的用户。
如果我在本地启动approuter并在私有窗口中启动该应用程序,那么我将转到SAP ID登录页面。 与我的用户登录后,我便可以使用该应用程序(因为我将开发者角色应用于我的用户,并且成功登录后,我也是经过身份验证的用户)。
但是,如果我将应用程序部署到SCP并启动approuter,我仍将转到SAP ID登录页面。 成功登录后,我将转到我的应用开始页面。 奇怪的是,我无法使用该应用程序。 当我检查检查器时,我发现尝试访问服务时收到403-禁止错误。
我的假设是mta.yaml,xs-security.json和approuter之间的某些链接出错。 由于我可以登录,但似乎无法识别开发人员角色。
感谢任何提示! 此外,在xs-security.json(在开头)和mta.yaml文件(在结尾)中,我写了一些问题(标有"-")。
干杯,
索尔斯滕
approuter:
{ " welcomeFile":"/img/app/", " authenticationMethod":"路由", "路线":[ { " source":" ^/app/(.*)$", " target":" $ 1", " localDir":" ./" }, { " source":" ^/getPerson/(.*)$", " target":" $ 1", " destination":" srv-binding" }, { " source":" ^(。*)$", " target":" $ 1", " destination":" srv-binding", "范围": [ " $ XSAPPNAME.developer" ] } ] }approuters的package.json
{ " name":" plt-app-approuter", "依赖关系":{ " @ sap/approuter":" ^ 7.1.2", " @ sap/xsenv":" ^ 2.2.0", " @ sap/xssec":" ^ 2.2.5" }, "脚本":{ " start":"节点-检查node_modules/@sap/approuter/approuter.js" }
xs-security.json
{ " xsappname":" plt-app",-应该指向approuter名称'plt-app-approuter'吗? " tenant-mode":"专用",-它描述JWT令牌如何转发吗? "范围":[ { " name":" $ XSAPPNAME.developer", " description":"开发人员" } ], "属性":[], "角色模板":[ { " name":" plt_app_dev", " description":"生成", "范围参考":[ " $ XSAPPNAME.developer" ], "属性引用":[] } ], "角色集合": [ { " name":" plt_app", "角色模板参考":[ " $ XSAPPNAME.plt_app_dev" ] } ] }
mta.yaml
##基于模板版本0.2.0生成的mta.yaml ## appName = plt-app ## language = nodejs; multiTenant = false ## approuter = _schema-version:'3.1' ID:plt-app 版本:1.0.5 描述:"一个简单的CAP项目。" 参数: 启用并行部署:true 构建参数: 之前: -建设者:自定义 命令: -npm安装 -npx cds构建 模块: #---------------------服务器模块------------------------ -名称:plt-app-srv #------------------------------------------------- ----------- 类型:nodejs 路径:srv 特性: 退出:1#由deploy.js任务终止 要求: #从CAP配置中提取的资源 -名称:plt-hdi-container -名称:plt-app-uaa 提供: -名称:CAP服务使用者(例如approuter)所需的srv-binding# 特性: srv-url:$ {default-url} #-------------------- SIDECAR模块------------------------ -名称:plt-app-db #------------------------------------------------- ----------- 类型:hdb 路径:db 参数: 应用名称:plt-app-db 要求: #从CAP配置中提取的'hana'和'xsuaa'资源 -名称:plt-hdi-container -名称:plt-app-uaa ################################################ ########## ############## APP ######################## -名称:plt-app-approuter 类型:approuter.nodejs 路径:应用 参数: 记忆体:256M 构建参数: 要求: -名称:plt-app-srv 要求: -名称:plt-app-uaa -名称:srv-binding 组:目的地 特性: forwardAuthToken:true 名称:srv-binding 网址:〜{srv-url} 资源: #从CAP配置中提取的服务 #'service-plan'可以通过'cds.requires。.vcap.plan'进行配置 #------------------------------------------------- ----------- -名称:plt-hdi-container #------------------------------------------------- ----------- 类型:com.sap.xs.hdi-container #Beschreibt HANA DB 参数: 服务:在试用环境中使用" hannatrial"或" hanatrial" 服务计划:hdi共享 特性: hdi-service-name:$ {service-name} #------------------------------------------------- ----------- -名称:plt-app-uaa 类型:org.cloudfoundry.managed-service 参数: ##### xs-security.json的路径以添加角色和作用域#### 路径:./gen/xs-security.json 服务:xsuaa 服务计划:应用 配置: xsappname:plt-app-$ {space}-比xs-security.json中的xsappname优先吗? 租户模式:专用
嗨,
您似乎遇到了我昨天遇到的问题。 如果您遵循CAP指南,则会看到以下命令:
然后,如果启动 构建过程会从gen文件夹中删除xs-security.json文件。 在将其打包到MTA文件中之前。 (您可以使用例如winrar进行检查)
我在项目的根目录中生成了xs-security.json文件,并将MTA文件中的路径更改为./xs-security.json而不是。 /gen/xs-security.json。
此后,我再次开始构建过程和MTA打包过程,进行了重新部署,这解决了我的问题。
最好的问候,
Geert-Jan Klaps
我只是尝试使用略有不同的mta.yaml进行部署。 更具体地说,我尝试在plt-app-uaa服务(而不是在根目录中的xs-security.json)中配置时不进行配置。
在部署过程中,出现以下错误消息:
服务操作失败:控制器操作失败:502更新服务" plt-app-uaa"失败:错误的网关:服务代理错误:服务代理 xsuaa失败,发生以下错误:org.springframework.cloud.servicebroker.exception.ServiceBrokerException:更新应用程序plt-app!t47559时出错(无法通过更新更改AppId。)
您好,Thorsten,
< p>您的初始设置看起来不错,我怀疑您没有在SCP中设置角色模板分配,因此,您的SAP ID没有所需的范围。以下是参考链接 :
https://help.sap.com/viewer/ 65de2977205c403bbc107264b8eccf4b/Cloud/zh-CN/eaa6a26291914b348e875a00b6beb729.html
我刚刚尝试使用略有不同的mta.yaml进行部署。 更具体地说,我尝试在plt-app-uaa服务上不使用配置进行部署(并且在根目录中使用xs-security.json进行部署)。在部署过程中发生了以下错误消息:
服务操作失败:控制器操作失败:502更新服务" plt-app-uaa"失败:错误的网关:服务代理错误:服务代理xsuaa失败,原因:org.springframework.cloud.service.broker.exception.ServiceBrokerException :更新应用程序plt-app!t47559时出错(无法通过更新更改AppId。)
mta.yaml的更新部分
您好 https://people.sap.com/geert-jan.klaps ,
感谢您的提示。 我按照您的建议删除了服务,然后重新部署了完整的应用程序。 因此,我更新了default-env和default-services文件中的xsuaa服务的凭据(本地)。
幸运的是,最初的行为没有改变。
干杯,
要加速
嗨, https://people.sap.com/jhodel18 ,
我确实将角色分配给角色模板,然后将角色模板分配给我的信任配置。 即使没有分配的角色,我也应该能够使用一种服务,该服务已分配了超集"已认证用户"。
由于本地原因,在SCP分配的角色上,该应用检测到该角色,并且我能够访问该服务以及具有超集" authenticated-user"的服务。
干杯,
索尔斯顿
一周热门 更多>