我们开始实施 OneM2M 的安全部分,我们首先着手实施访问控制策略(ACP)。在我们研究访问控制策略的 oneM2M 示例时,我们看到特权 (PV) 和自特权 (PVS) 可以是任何发起者,可以是任何应用程序实体 (AE) 或公共服务实体 (CSE)。
在一个权限中,每个访问控制规则定义了允许哪个 AE/CSE 进行哪个操作。因此,对于一组访问控制规则,如果该组中的一个或多个访问控制规则允许,则允许该操作。
TS-0001 v3.12.0 | Ln 3432-3433
之后,我们还查看了 OneM2M 实现的 Eclipse 版本,并为每个 CSE(IN-CSE 和 MN-CSE)运行应用程序。Web 界面通过登录屏幕欢迎您并等待用户名和密码。然后奇怪的部分出现了。在我们成功登录后,输入的用户名和密码似乎被用作我们要访问的资源的发起者。除此之外,还向默认 ACP 添加了一个测试用户。
示例 ACP 取自 eclipse 论坛的主题。
<m2m:acp xmlns:m2m="http://www.onem2m.org/xml/protocols">
<pv>
<acr>
<acor>admin:admin</acor>
<acop>63</acop>
</acr>
<acr>
<acor>test</acor>
<acop>34</acop>
</acr>
</pv>
<pvs>
<acr>
<acor>admin:admin</acor>
<acop>63</acop>
</acr>
</pvs>
</m2m:acp>
问题是,是否适合将某种用户名和密码逻辑放入 ACP 本身?不管是什么,我理解这种用法的必要性。但我不确定在 OneM2M 中这样做是否正确。
假设我们有一个具有 Web 界面并被许多用户使用的 AE。因此,每个用户在访问 OneM2M 中的其他资源时具有不同的权限,但访问控制策略的发起者只能是任何 AE/CSE 而不是用户。如何实现这种场景?
相关问题来自 OneM2M 网站
Cgateway_ae(好像是MN-AE)向MN-CSE发送ACP创建请求。但是 MN-AE 创建到 MN-CSE 的 ACP 的权限来自哪里。在它想要创建另一个 ACP 之前应该以某种方式创建它?
谁有责任创建该 ACP ?责任方如何知道相关的 AE-ID/CSE-ID 甚至在创建之前。
POST /home_gateway?rcn=0 HTTP/1.1
Host: mn.provider.com:8080
X-M2M-Origin: Cgateway_ae
Content-Type: application/vnd.onem2m-res+xml; ty=1
X-M2M-RI: mncse-62948
<m2m:acp xmlns:m2m="http://www.onem2m.org/xml/protocols" rn="MN-CSEAcp">
<pv>
<acr>
<acor>Cgateway_ae Clight_ae1 Clight_ae2 /in-cse/Csmartphone_ae</acor>
<acop>63</acop>
</acr>
</pv>
<pvs>
<acr>
<acor>Cgateway_ae</acor>
<acop>51</acop>
</acr>
</pvs>
</m2m:acp>
------------------ 已编辑 ---------------
这是一个非常好的文档。
http://www.onem2m.org/tr-0038/procedures/authorization/configuration-of-accesscontrolpolicy