1

我们开始实施 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

4

1 回答 1

1

Eclipse om2m 实现带来了它自己的集成 Web UI,它对访问控制发起者 ( acor ) 进行了特殊处理。如果acor包含 ":" 字符,则发起者将被拆分为 UI 的用户名/密码组合。据我所知,它仍然考虑在 <ACP> 资源中为该用户定义的访问策略。而且,如示例中所示,单个 <ACP> 资源可以支持多个发起者。允许这种格式时,Eclipse om2m 实现可能不完全兼容。
请参阅 TS-0001 章节“10.2.2.2 创建 <AE>”。这解释了这个标识符是如何创建的(由 CSE)。阅读本文后,在 oneM2M 示例中,AE-ID 以“C”或“S”开头时会变得更加清晰。另请查看 TS-0001 章节“7.2 M2M-SP-ID、CSE-ID、App-ID 和 AE-ID 和资源标识符格式”以获取有关标识符格式的更多详细信息。

CSE 应始终具有一种“根”发起者以及允许管理 AE 执行管理功能的特权 <ACP>。如果没有 <AE>,这可能是 CSE-ID。对于 Eclipse om2m,这将是“admin:admin”的发起者。有了这个发起者,管理 AE 可以添加更多的 <ACP> 和发起者,对其他 AE 具有较少的特权。请注意,这种用户/身份/访问管理通常是业务逻辑的一部分,而不是 oneM2M 的一部分。

是否足够安全?与往常一样,这取决于。许多物联网系统将“秘密”令牌分配给设备以验证连接请求。但请记住,发起者标识符始终来自必须首先在 CSE 成功注册并因此受到信任的 AE。

对于问题的第二部分:在 oneM2M 网站的示例中,必须有一个 <ACP> 允许发起者“Cgateway_ae”在资源路径“/home_gateway”下创建一个新的 <ACP> 资源(MN-CSE在示例中)。示例中似乎缺少此 <ACP>,但注册新 <ACP> 资源以授予其他 AE 访问权限的网关 AE 必须具有这样做的特权。这可以通过预先共享的发起者身份验证信息(例如智能卡或类似机制)或其他分发发起者信息的方式来完成(例如,当 AE 实际与 CSE 一起运行时交换文件)一个安全可信的环境)。

根据讨论更新

于 2019-04-11T17:05:42.087 回答