如何保护SAPUI5 App中的OData API密钥?

2020-08-18 00:47发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨社区 我正在使用几个API,...

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

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


嗨社区

我正在使用几个API,这些API借助API密钥进行身份验证,该API密钥用于检索用于后续API查询(SuccessFactors LMS OData和SAP LiveLink)的令牌。 我可以请求令牌并通过SAPUI5应用程序中的ajax请求和在Cloud Platform中配置的目标进行查询。

我担心的是,这些密钥目前存储在SAPUI5应用程序中,并在检索令牌时作为标头附加到ajax请求。 我不希望以这种方式存储它们,因为据我所知,无法从客户端隐藏此信息。

我一直在研究一些想法,但是找不到任何可行的信息或文档来支持这些想法。

1。 我想知道是否可以将API密钥添加到Cloud Platform Cockpit中的目标,以便每次在SAPUI5应用程序中使用目标时都将它们作为标头自动发送。

2。 可以将其存储在neo-app.json文件中吗? 由于可以限制对此文件的访问。

或者只有一种真正的选择,那就是拥有用于检索API令牌的服务器端解决方案? 我宁愿避免减少加载时间和架构依赖性。

我希望有人以前曾经遇到过这个问题,并且可以分享一个好的解决方案:)

6条回答
SAP德到
2020-08-18 01:19

嗨亚当,

在manifest.json文件中输入数据就足够了吗?

这样做,您将在调用" mainService"时从HTML源(AJAX调用)隐藏APIKey。 SAPUI5框架将在运行时注入APIKey。 但是,如果您检查从服务器下载的资源,则仍然可以"看到" APIKey。 如果您尝试将其隐藏在目标属性下,将是相同的。

如果必须保护APIKey,那么将另一种类型的验证(例如IP地址,用户名等)与APIKey一起使用也许更有意义-只有您知道这种组合。 因此,即使有人发现了您的APIKey,该请求也不会起作用。

在请求的其他方面都无法满足的情况下,您可以调查OAuth而不是APIKey的用法。

以下是代码段:

"数据源":{
 " mainService":{
 " uri":"/Northwind/V2/Northwind/Northwind.svc/",
 " type":" OData",
 "设置":{
 " localUri":" localService/metadata.xml",
 " metadataUrlParams":{
 " sap-documentation":"标题"
 },
 "标题":{
 " APIKey":" LeQAyRqelY5mW6GhgxgK4DY9il73I0aB"
 }
 }
 },
 }
 

关于,
伊凡

一周热门 更多>