【问题标题】:M2MServiceSubscriptionProfile Development in oneM2MM2MServiceSubscriptionProfile Development in oneM2M
【发布时间】:2019-05-09 11:47:14
【问题描述】:

在对服务订阅进行详细研究后,我决定开发配置应用程序来创建 CSE 和 M2MServiceSubscriptionProfile。 在此应用程序中,客户可以创建自己的 CSE,其中包括支持的资源类型和 M2MServiceSubscriptionProfile,其中包括允许的 AE。

根据付款标准,将根据资源类型检查传入请求以允许或拒绝。 我认为,只有一种方法可以做到这一点,M2MServiceSubscriptionProfile 将使用存储在 CSEBase 类的 SupportedResourceType 属性中的特定资源类型。 这是默认场景。

但 ServiceSubscribedNode 不必像 xsd 文档中所述包含 CSE-ID。

<xs:element name="CSE-ID" type="m2m:ID" minOccurs="0" />

这意味着无需与客户 CSE 集成,AE 也可以与系统连接。例如,Web 应用程序 (AE) 可以与系统集成以使用服务提供者上的特定 API。 在这种情况下,该客户没有 CSEBase,客户的 AE 可以直接与 Service Provider 连接,因此没有 SupportedResourceType 属性。

对于这种情况,我如何决定允许/拒绝特定的资源类型?

【问题讨论】:

    标签: onem2m onem2m-security


    【解决方案1】:

    的“SupportedResourceType”属性是一个特定 CSE 支持的资源类型列表。对于通过 oneM2M 部署的不同 CSE,此列表可能会有所不同。

    中的“CSE-ID”属性是可选的,因为节点不一定需要托管自己的 CSE。它可以是连接到另一个节点的 CSE 的 ADN(应用程序专用节点),例如中间节点或基础设施节点。如表 9.6.20-2 中的规范所述:

    与此节点相关的 CSE-ID(对于具有 CSE 的节点)。

    但是,“nodeID”属性是强制性的。这意味着,您可以通过 资源识别托管 CSE。

    另请注意, 类型的资源仅托管在 IN-CSE 上。

    【讨论】:

    • 假设 IN-CSE 是我的平台,ADN-AE 是客户的 Web 应用程序,托管在 3 个不同的服务器上。这意味着 1 个 AE 将有 3 个节点和 3 个节点 ID。在配置阶段,客户如何使用这 3 个节点设置 AE 信息?配置完成后,如果 ADN-AE 发送创建请求,是否也需要发送 NodeID?因为我需要通过 NodeID 过滤数据以允许/拒绝请求。否则,我将不得不使用传入请求的 AE-ID 检查所有允许的 ServiceSubscribedNode 记录的 AE 列表。
    • 当您的每个节点托管您的应用程序实例时,您将拥有 3 个 AE。它们将具有相同的 App-ID,但不同的 AE-ID。当然,您可以在一个节点上托管同一应用程序的多个实例,但同样每个 AE 将具有不同的 AE-ID。这样,您最终将获得多个可分配给节点的 AE 资源。请记住,资源是您的应用程序、节点等的(虚拟)表示。
    • 非常感谢,在我检查了 TR-0038 onem2m.org/tr-0038/procedures/… 后,我明白了这个问题,你的最后一句话对于理解问题“ 类型的资源非常重要”仅托管在 IN-CSE 上”如果 ADN-AE 向 MN-CSE 发送注册请求,则可以使用 MN-CSE 的 CSE-ID 过滤 ServiceSubscribedNode 列表。我想再次向读者强调,TR-0038 的流程和程序非常清晰。