I've been tinkering with Fiware and trying to understand how to handle security. This diagram shows an example of using proxies to authenticate requests.
But I don't see any authentication between the IoT Agent and the Context Broker. I would have guessed that the IoT Agent is intended to be a gateway device running on hardware physically located adjacant to the devices. But if that's the case with this setup then there's no authentication when making calls to the Context Broker.
Is the IoT Agent only intended to be hosted in the cloud within the same network as the Context Broker? Or is there some way to insert a proxy between them that handles security?
It is based on the scenario in which these components are configured. Generally the data are being sent to Context Broker from devices via pep-proxy and iotagent.
We implemented a scenario in which the devices sends context information to Context Broker, in this case the authentication of access token and devices will be done by Wilma/Keyrock before information is processed to iotagent and then to Orion(Context Broker).
In the above case, the link between iotagent and Orion(Context Broker) is hidden(private), one does not accesses Orion or iotagent directly from public domain and the whole scenario have only exposed endpoint of Wilma(pep-proxy). So, everytime a device sends data, it can only sends to Wilma, and after authentication by Keyrock it is then processed to iotagent and ultimately to Orion.
The iotagent doesn't generally run adjacently to end devices. they run on cloud nodes along with other FIWARE components, the devices are located remotely.
For more details refer this https://documenter.getpostman.com/view/513743/RWaHxUgP