HANA XSA Express-MTAR中缺少xs-security.json并重新部署

2020-09-06 09:51发布

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

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


我正在开发用于构建MTA应用程序的最新XSA Express系统(SPS 03补丁64(内部版本4.3.64))。

MTA应用程序的不同组件使用UAA服务实例进行用户身份验证(由SAP规定)。 在项目的根目录中,将创建文件" xs-security.json",该文件定义了应用程序中使用的不同范围,属性和角色模板。

最初将应用程序部署在HANA Express上的某个空间内时,会自动创建UAA服务。

最初,我的安全文件为空,因此创建该服务时没有任何问题(因为该文件的实际"内容"为空)。 定义好身份验证角色模板后,我相信以后可以通过CLI更新UAA服务以使用新的安全性数据。 (或更可能我可能已通过CLI删除并重新创建了服务)。

稍后,当我开始通过XS部署重新部署经过修改的MTAR时,我注意到发生了错误,无法进行部署。

执行XS部署时出现错误

'xs-security.json不一致:xsappname无效:不能为。' 现在-在找到此主题之后结束-对我来说很有意义...安全描述符未包含在构建中 MTAR二进制文件!

为了部署我的MTA的新版本-到目前为止,我的解决方案是:

  1. 删除现有的UAA服务
  2. 部署新的MTAR。 然后,再次创建没有安全信息的UAA服务。
  3. 然后应该认为您可以使用上载的xs-security.json文件(xs update-service yourUAA -c xs-security.json)简单地更新现有的新服务...不,...不起作用 。 更新错误,提到的xsappname与新的服务名称不匹配-yourUAA <> yourUAA!i1 ... SAP根据您在..中部署的空间添加了'!i1'后缀,但由于某种原因它无法理解我 正在更新同一服务..."(由于意外的服务器错误,操作失败),并显示错误消息:'description:更新应用程序yourUAA!i4时出错(无法通过更新更改AppId。)"
  4. 再次删除UAA服务(!)
  5. 再次引用安全文件来创建UAA服务(xs create-service xsuaa space yourUAA -c xs-security.json)。 现在已考虑安全文件。
  6. 再次使用新的UAA服务重新绑定所有现有的应用/服务

上述内容带来的令人不愉快的副作用是,所有现有角色都丢失了那些分配的角色模板...因此,必须重新定义角色...繁琐的工作...

我下载了最新的CLI MTAR构建器,并通过命令行构建了档案文件。...同样的问题...仍然没有文件。

在另一个主题中提出的解决方案? 手动将文件添加到MTAR存档中。.

我的mta.yaml文件中有以下设置...

参数:config_path:./xs-security.json

我尝试了MTAR文件中的多个位置-在根文件夹中,在META-INF文件夹中-没有任何作用..总是相同的错误...(叹气)...

所以似乎有两个问题:

  1. MTAR文件的构建不包括xs-security.json文件
  2. 通过cli更新UAA服务不起作用,因为它错误地比较了应用名称

我希望这些问题能尽快得到解决,因为与MTA一起正常工作确实令人沮丧。

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

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


我正在开发用于构建MTA应用程序的最新XSA Express系统(SPS 03补丁64(内部版本4.3.64))。

MTA应用程序的不同组件使用UAA服务实例进行用户身份验证(由SAP规定)。 在项目的根目录中,将创建文件" xs-security.json",该文件定义了应用程序中使用的不同范围,属性和角色模板。

最初将应用程序部署在HANA Express上的某个空间内时,会自动创建UAA服务。

最初,我的安全文件为空,因此创建该服务时没有任何问题(因为该文件的实际"内容"为空)。 定义好身份验证角色模板后,我相信以后可以通过CLI更新UAA服务以使用新的安全性数据。 (或更可能我可能已通过CLI删除并重新创建了服务)。

稍后,当我开始通过XS部署重新部署经过修改的MTAR时,我注意到发生了错误,无法进行部署。

执行XS部署时出现错误

'xs-security.json不一致:xsappname无效:不能为。' 现在-在找到此主题之后结束-对我来说很有意义...安全描述符未包含在构建中 MTAR二进制文件!

为了部署我的MTA的新版本-到目前为止,我的解决方案是:

  1. 删除现有的UAA服务
  2. 部署新的MTAR。 然后,再次创建没有安全信息的UAA服务。
  3. 然后应该认为您可以使用上载的xs-security.json文件(xs update-service yourUAA -c xs-security.json)简单地更新现有的新服务...不,...不起作用 。 更新错误,提到的xsappname与新的服务名称不匹配-yourUAA <> yourUAA!i1 ... SAP根据您在..中部署的空间添加了'!i1'后缀,但由于某种原因它无法理解我 正在更新同一服务..."(由于意外的服务器错误,操作失败),并显示错误消息:'description:更新应用程序yourUAA!i4时出错(无法通过更新更改AppId。)"
  4. 再次删除UAA服务(!)
  5. 再次引用安全文件来创建UAA服务(xs create-service xsuaa space yourUAA -c xs-security.json)。 现在已考虑安全文件。
  6. 再次使用新的UAA服务重新绑定所有现有的应用/服务

上述内容带来的令人不愉快的副作用是,所有现有角色都丢失了那些分配的角色模板...因此,必须重新定义角色...繁琐的工作...

我下载了最新的CLI MTAR构建器,并通过命令行构建了档案文件。...同样的问题...仍然没有文件。

在另一个主题中提出的解决方案? 手动将文件添加到MTAR存档中。.

我的mta.yaml文件中有以下设置...

参数:config_path:./xs-security.json

我尝试了MTAR文件中的多个位置-在根文件夹中,在META-INF文件夹中-没有任何作用..总是相同的错误...(叹气)...

所以似乎有两个问题:

  1. MTAR文件的构建不包括xs-security.json文件
  2. 通过cli更新UAA服务不起作用,因为它错误地比较了应用名称

我希望这些问题能尽快得到解决,因为与MTA一起正常工作确实令人沮丧。

付费偷看设置
发送
5条回答
亦是此间程序员
1楼 · 2020-09-06 10:31.采纳回答

第二次尝试。 我输入了一个完整的答案,但由于我对SAP域(我的github项目)进行了文本引用,所以它被抹掉了。 愚蠢的...

因此,当您更改xs-security.json时,首先无法更新XSUAA实例。 这是一个已知的限制。 您必须删除并重新创建它。 不好,但由于从xs-security.json生成作用域和角色集合的方式很复杂,因此仅是技术限制。

另一方面,这是一个较旧的问题,已得到修复,但可能尚未在HANA Express中提供,因为它还没有SPS 04。 我们在openSAP课程中确实通过将整个xs-security.json嵌入mta.yaml来解决此问题。 但是,我们在课程的较新版本中将其删除,因为此错误已修复,我们可以返回使用xs-security.json文件。

https://github.com。 com/SAP/com.sap.openSAP.hana5.example/blob/hana2_sps03/mta.yaml#L141

木偶小白
2楼-- · 2020-09-06 10:30

嗨托马斯,

感谢您参加 回答问题的时间...非常感谢!

尽管您的回答让我有些困惑...

所以在mta.yaml文件中添加安全性内容可以解决此问题 构建中丢失的安全文件的数量(据我了解),但是...它还能解决XSUAA实例的更新吗? 还是我们仍然必须先删除实例才能进行部署? 删除实例会更改角色(基本上删除了所有相关的作用域)...这是一个真正的痛苦...

我希望您的上述解决方案能够解决部署问题,因此我们不必删除 XSUAA实例...这样,我想只有在需要更改范围的情况下这才成为问题...不是很理想,但是如果首先仔细考虑安全性,则不太可能发生...

谢谢

史蒂文

Doze时光
3楼-- · 2020-09-06 10:45

碰碰...。有任何反馈吗? 这确实阻碍了认真的开发/部署工作……

Thomas Jung Lucia Subatin

hongfeng1314
4楼-- · 2020-09-06 10:48

好,感谢Thomas的反馈...

我正在考虑编写脚本 然后开发人员操作管道首先合并实例的删除操作(可以这样做),但是不确定测试帐户刚刚失去授权时我们应该如何执行测试等……感到困惑……

< p>无论如何...真是个无赖...希望在即将发布的版本中得到解决..

谢谢

Steven

太Q了
5楼-- · 2020-09-06 10:45

>因此,在mta.yaml文件中添加安全性内容可以解决构建中缺少安全性文件的问题(据我所知),但是...还能解决XSUAA实例的更新吗?

< p>这仅解决了MTAR中缺少xs-security.json的问题。 XSUAA根本不支持更新现有实例这一事实并没有改变。 那只是我们必须忍受的已知技术限制。

一周热门 更多>