使用cds.read时,在自定义处理程序/端点中基于CAP的Auth-Check

2020-08-21 22:57发布

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

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


大家好,

我正在实施用户授权。 在CAP-OData服务中,这可以通过@restrict注释实现。
https://cap.cloud.sap/docs/guides/authorization

不幸的是,我们的节点后端也包含一些REST端点,这些端点通过cds.read在其处理程序中读取实体。 我们注意到这里没有考虑用户只能读取实体的某些条目的权限({Grant:'READ',其中:'foo = $ user.bar'}。

我们如何在这里尽可能简单地实施权限检查? 是否有一个解析器,该属性根据属性(从JWT中提取)生成where子句 分配给用户,然后可以将其传递给cds.read?

最诚挚的问候
Simon

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

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


大家好,

我正在实施用户授权。 在CAP-OData服务中,这可以通过@restrict注释实现。
https://cap.cloud.sap/docs/guides/authorization

不幸的是,我们的节点后端也包含一些REST端点,这些端点通过cds.read在其处理程序中读取实体。 我们注意到这里没有考虑用户只能读取实体的某些条目的权限({Grant:'READ',其中:'foo = $ user.bar'}。

我们如何在这里尽可能简单地实施权限检查? 是否有一个解析器,该属性根据属性(从JWT中提取)生成where子句 分配给用户,然后可以将其传递给cds.read?

最诚挚的问候
Simon

付费偷看设置
发送
3条回答
wang628962
1楼-- · 2020-08-21 23:24

亲爱的西蒙,

您能为我提供有关REST端点含义的更多细节吗?
自定义快速中间件或使用端点服务的端点

 cds.serve('all')。in(app).to('rest')

感谢和问候,

大卫

Haoba3210
2楼-- · 2020-08-21 23:27

嗨,David,

感谢您的回答。

有了我们自己的REST端点,我的意思是,除了OData服务之外, 我们在快递服务器中定义了自己的端点,例如,以JSON格式返回数据。 在这些终结点的处理函数中,我们希望通过CDS.read读取数据,对其进行处理并返回数据,当然要考虑CDS中定义的权限。

这些终结点与cds或 cds.serve。 它们是在运行CDS-OData端点的同一Express服务器中另外定义的端点。

最诚挚的问候
Simon

歪着头看世界
3楼-- · 2020-08-21 23:40

Hi Simon,

从用户属性中构造`where`子句仅发生在内部API中,因此,如果您使用自定义快速中间件,恐怕您需要自己构造那些where子句。

最好的问候,
大卫

一周热门 更多>