在 oneM2M 中创建和检查访问控制策略
Creating & Checking the Access Control Policy in oneM2M
我们开始实施 OneM2M 的安全部分,我们首先着手实施访问控制策略 (ACP)。在我们研究访问控制策略的 oneM2M 示例时,我们看到特权 (PV) 和自我特权 (PVS) 可以是任何发起者,可以是任何应用程序实体 (AE) 或公共服务实体 (CSE)。
In a privilege, each access control rule defines which AE/CSE is
allowed for which operation. So for sets of access control rules an
operation is permitted if it is permitted by one or more access
control rules in the set.
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 中这样做是否正确。
假设我们有一个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
Eclipse om2m 实现带来了自己的集成 Web UI,它对访问控制发起者 (acor) 进行了特殊处理。如果 acor 包含“:”字符,则发起者将拆分为 UI 的 username/password 组合。据我所知,它仍然考虑在 资源中为该用户定义的访问策略。而且,如示例所示,单个 资源可以支持多个发起者。允许此格式时,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 应始终具有一种 "root" 发起者以及允许管理 AE 执行管理功能的特权 。如果没有 ,这可能是 CSE-ID。对于 Eclipse om2m,这将是 "admin:admin" 发起者。有了这个发起者,管理 AE 可以添加更多的 和发起者,而其他 AE 的权限较低。请注意,这种 user/identity/access 管理通常是业务逻辑的一部分,而不是 oneM2M 的一部分。
它足够安全吗?一如既往,这取决于。许多 IoT 系统将 "secret" 令牌分配给设备以验证连接请求。但请记住,发起者标识符始终来自 AE,该 AE 必须首先在 CSE 成功注册并因此受到信任。
问题的第二部分:在 oneM2M 网站的示例中,必须有一个 允许发起者 "Cgateway_ae" 在资源路径下创建一个新的 资源“/ home_gateway”(示例中的 MN-CSE)。这个 似乎在示例中丢失了,但是注册新的 资源以授予其他AE 访问权限的网关AE 必须具有这样做的特权。这可以通过预共享发起者身份验证信息(例如智能卡或类似机制)或其他分发发起者信息的方式(例如当 AE 实际上 运行 在一起时交换文件)来完成在安全可信的环境中与 CSE 合作)。
(根据讨论更新)
我们开始实施 OneM2M 的安全部分,我们首先着手实施访问控制策略 (ACP)。在我们研究访问控制策略的 oneM2M 示例时,我们看到特权 (PV) 和自我特权 (PVS) 可以是任何发起者,可以是任何应用程序实体 (AE) 或公共服务实体 (CSE)。
In a privilege, each access control rule defines which AE/CSE is allowed for which operation. So for sets of access control rules an operation is permitted if it is permitted by one or more access control rules in the set.
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 中这样做是否正确。
假设我们有一个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
Eclipse om2m 实现带来了自己的集成 Web UI,它对访问控制发起者 (acor) 进行了特殊处理。如果 acor 包含“:”字符,则发起者将拆分为 UI 的 username/password 组合。据我所知,它仍然考虑在
参见 TS-0001 章节“10.2.2.2 创建
CSE 应始终具有一种 "root" 发起者以及允许管理 AE 执行管理功能的特权
它足够安全吗?一如既往,这取决于。许多 IoT 系统将 "secret" 令牌分配给设备以验证连接请求。但请记住,发起者标识符始终来自 AE,该 AE 必须首先在 CSE 成功注册并因此受到信任。
问题的第二部分:在 oneM2M 网站的示例中,必须有一个
(根据讨论更新)