点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
在云应用程序编程模型(CAPM)帮助中,有一个诱人的瞥见,即如何按角色控制对服务的访问(在使用单一服务):
服务AdminService @(需要:" admin")
我需要通过Cloud Foundry角色集合来控制对服务的访问。 我可以按照上面的相同方式来做吗? 我是否只是在其中放置角色集合的名称(代替" admin")? 我可以在这里放一个示波器吗?
如果有人可以分享一些文档或示例来说明受支持的内容,我将不胜感激。 即使在注释。
谢谢!
完美答案 Philip MUGGLESTONE
文档以及该功能的正式发布正在进行(采用新格式)...→这是相应指南的(非官方)先行预览,内部可用:
---------
限制
通过向服务,实体或添加 @requires 或 @restrict 注释来限制对服务的访问 >功能,如本例所示:
注释为:
@restrict:
允许通过记录中赋予的特权数组进行细粒度控制@requires:
允许指定必须分配当前用户的一个或多个用户角色(作为单个字符串或字符串数组)。备注:本质上 @requires:只是一个便捷快捷方式,例如:
…等效于:
...更加简洁和易懂。
特权
在@restrict:
批注中授予...并支持以下属性:
grant:
一个或多个操作(作为字符串或字符串数组)to:
(可选)(可选)一个或多个用户角色授予特权的人其中:
(可选),进一步限制访问的条件在
其中:
条件内,请使用以$
开头的名称来引用请求属性或JWT令牌中的属性。 示例:$ user
,$ user.foo
或$ foo
。在
其中:
内的条件允许使用CQL语法。 最初支持and
和or
(无子选择)。可以在一个
grant:
子句中一起使用where:
和to:
。在
where
条件中对实体元素的引用建立了所谓的基于实例的授权。 筛选条件通常将受保护实体的属性与用户或请求属性相关。用户角色
…可以自由选择,并且对于当前应用程序是本地的。 例如,在上面的示例中,角色名称
admin
反映了书店管理员的假定角色。伪角色
以下是预定义的伪角色:
已认证用户
是指通过登录标识的用户identified-user
是通过较弱的机制(例如cookie)来识别的system-user
适用于使用未命名的技术用户呼入的客户端系统任何
是指所有用户,包括未识别的用户identified-user
s是authenticated-user
s的超集。any
是所有其他用户的超集。 >执法
服务提供者框架会自动在通用处理程序中实施限制。 他们通过评估CDS模型中的注释并根据操作来做到这一点……
或者,您可以在事件处理程序中使用以下方法以编程方式在自定义请求处理程序中实施限制:
执法API
以下是可用于实施实施的API(在Node.js API中提供; swift具有相应的API)-通用实施也使用相同的
req.user
–查询中req.user.id
的排序方式req.user.id
–访问当前用户的唯一ID,任意字符串req.user.is()
–检查用户是否已分配给定角色req.user。
–通过JWT令牌访问与用户相关的属性req.reject(403,...)
–由于缺少授权而拒绝请求req.query.where(...)
–为查询的where子句添加过滤器嗨,丹尼尔·赫茨尔 Philip MUGGLESTONE
非常感谢Node.js处理程序中此新功能的预览! 我一直在使用 req.user.is ( )和req.user。 而且非常方便!
在调试请求处理程序时,我遇到了函数
我尝试执行此功能,但总是收到错误消息:roles.some不是函数。
能否请您阐明此函数的用途以及如何调用?
我也期待正式发布新的CAPM文档。 我希望这会很快发生..:-)
最诚挚的问候,
Ben
嗨,麦克,
尝试作用域名称,但不要使用$ XSAPPNAME。 前缀。
例如,具有以下范围(如xs-security.json中定义):
这应该起作用:
您仍然需要定义角色模板和角色集合等,并将角色集合分配给用户,就像在任何Cloud Foundry应用程序中一样。
希望有帮助。
菲利普
非常感谢菲利普,我会尝试一下
嗨 Benjamin Krencker ,
" some"函数是Array上的javascript函数。
https://developer.mozilla。 org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/some
使用has时,必须提供一个范围值数组。 如果有一个范围分配给当前用户,则返回true。
我已经在我的CAPM授权示例中添加了一些代码对此进行测试。
https ://github.com/jowavp/SAP-CAPM-Nodejs-Authorisation-example/blob/master/srv/service.js
kr,
Joachim
一周热门 更多>