问题描述
我必须考虑使用 FIWARE orion 上下文代理和多个 IoT 代理/上下文提供程序的架构。文档中有一节描述了如何保护从 IoT 代理/上下文提供者到 orion 的通信。但是如何确保对方的安全?
到目前为止,我所理解的是,上下文提供程序必须公开一个 REST 端点 (---
classoption: [t]
output:
beamer_presentation:
slide_level: 2
---
---
## Header
### Second Header
- Content
),在该端点上它接受传入的流量。但是它如何确保这些请求是有效的呢?
如果是 /op/query
,您可以在创建 subscription
时在 httpCustom
部分使用 http
代替 provider
。有了这个,当向给定的 url 发出请求时,可以使用将由 orion 使用的静态令牌。这对于 subscription
是不可能的。上下文提供者/物联网代理如何确定传入请求是否有效的任何建议?
解决方法
使用 NGSIv2 订阅/通知和注册/转发,您将收到一个 X-Auth-Token 标头,其中包含初始更新操作中使用的令牌。您应该能够在 IDM(我们堆栈中的 Keystone)中进行检查。
作为一种解决方法,您可以使用值本身来发送某种 Apikey 以及实际值。
网络安全也可能适用,通常使用防火墙并限制 ip/端口,或在分布式架构中建立 APN/VPN(至少对于不安全的设备或外部网络)。
最后,如果您的用例不需要同步通信(寄存器是同步的,sub/notif 是异步的),那么使用 Subs/Notif 机制与上下文适配器进行通信并不是什么大问题。我们有时会这样做,寄存器既棘手又麻烦。
最好的。