-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable users to configure authentication for the mqtt clients used in each thin-edge component #1785
Comments
I fully agree @reubenmiller to avoid one specific set of connection properties per component (plugins/mappers/agent/child devices) in a shared configuration file - and this even without a plan to reduce the number of components. This would be a burden to manage. Furthermore, the connection code must be the same independently on how the components are deployed.
So I see this ticket as follow-up task for #1773,
|
This ticket is made of 2 parts: server authentication and client authentication. This comment will be about server authentication, which is arguably easier of the two. Server authenticationRequirements
Steps
|
@gligorisaev: I let you assess/improve the coverage of the tests written by @Bravo555. From @Bravo555, own words:
The feature to be tested is documented by the PR itself: https://github.com/thin-edge/thin-edge.io/pull/1864/files#diff-c6383548a956d044a2724ebabbf7179ce4ff307898d505a0b2ed699fda24eb5f |
If @reubenmiller agrees I would not remove this test, it should be excluded from the pipeline not to be executed everytime. |
Is your feature improvement request related to a problem? Please describe.
If a user enables enforcement of authentication on the mosquitto MQTT broker used by thin-edge, then it currently results in the thin-edge components not being able to connect to the broker as the mqtt clients used by each component are not configurable.
This limitations prevents users from being able to enable authentication on their MQTT broker.
Describe the solution you'd like
Each component should configurable mqtt broker connection settings, for example the following should be configurable:
Select connection mode to MQTT broker (e.g. username/password or certificate based)Username/password configuration (used when connecting via username/password authentication)Notes
For a first implementation there does not need to be one certificate per thin-edge.io component as the mosquitto MQTT broker settings can be configured using the following properties (which separates the identity/username/clientid)
But in other cases where using thin-edge in a single-process per container setup, it allows users to use different certificate per device. Together with #1783, it should make it very flexible for users.
Describe alternatives you've considered
Avoid the effort supporting one property per component as the refactoring will be combining multiple services making there essentially only two mqtt clients (one for the mapper and one for the device management component)
Additional context
Related tickets
The text was updated successfully, but these errors were encountered: