在OneM2M中创建和检查访问控制策略

时间:2019-04-11 13:38:06

标签: onem2m onem2m-security

我们开始实施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是从日食论坛的主题中获取的。

<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。

enter image description here

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>

------------------编辑--------------------------- < / p>

enter image description here

这是一个非常好的文档。

http://www.onem2m.org/tr-0038/procedures/authorization/configuration-of-accesscontrolpolicy

1 个答案:

答案 0 :(得分:1)

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

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

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

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

根据讨论更新