philipparndt / mqtt-analyzer

Apache License 2.0
92 stars 6 forks source link

Authentication with user/password and Certificate #153

Closed jmal2d closed 1 year ago

jmal2d commented 2 years ago

In the current version of the app I have tested (2.7.2.153) it allows to select login to the server with user/password or with certificate, but it would be very interesting to have the possibility to enable login with user/password and certificate. This way it could be set topics publish or subscribe restrictions to the different users.

philipparndt commented 2 years ago

Hi @jmal2d thanks for the idea!

Do you have a example setup (Like a mosquitto configuration) for this?

MarcelOnGit commented 2 years ago

Hallo philipparndt, ich denke ich habe das selbe Problem. Ich habe einen Mosquitto Server der sowohl mit Nenutzername / Kennwort als auch mit einem Zertifikat abgesichert ist. Aktuell bekomme ich diese Konstellation in der App einfach nicht zum laufen. Wenn du möchtest kann ich dir einen Testzugang einrichten.

philipparndt commented 2 years ago

Hi @jmal2d, @MarcelOnGit

I've started to implement this. It will take some time until you can get an update. I plan to publish a pre-version next week. I have not yet decided whether I back port this to iOS 15 as I'm currently working on iOS 16 changes with a new persistence layer.

jmal2d commented 2 years ago

Hi @philipparndt,

Thank you for considering and start implementing the idea. I have a home MQTT server based on mosquitto installed on a RaspberryPi that I use to develop and test IoT devices.

The config section for the conection is the following:

Plain MQTT protocol

listener 1883 allow_anonymous false password_file /etc/mosquitto/UserPasswordFile

MQTT over TLS/SSL, client certificate required

listener 8883 protocol mqtt require_certificate true allow_anonymous false

I have two listener to test the conecction with certification and without it, but both are user and password requiered.

To create the UserPasswordFile I follow this manual: http://www.steves-internet-guide.com/mqtt-username-password-example/

and for the topic restrictions I follow this manual, although I have disabled this funcionality from my server at the moment. http://www.steves-internet-guide.com/topic-restriction-mosquitto-configuration/

I can give you access to my server if you want, just tell me.

Thank you, for everything you need, you can count on me.

philipparndt commented 1 year ago

Hi @jmal2d

It took me a little longer than expected to come back to this topic, but finally, I completed my tests and updated the docs. The new version is currently waiting for TestFlight approval and should be approved within the next ~24h-48h. It would be great if you or maybe @MarcelOnGit could try this with your configuration before releasing it.

The TestFlight invitation link is: https://testflight.apple.com/join/dsvlFCPU

Maybe you can also do a quick review of the documentation: https://github.com/philipparndt/mqtt-analyzer/pull/163/files

jmal2d commented 1 year ago

Hi @philipparndt!

Don't worry because you took a bit more than expected. I am glad you could do. Of course I will test it and give you my feedback. I will check the documentacion of the new changes and test the app today or tomorrow at last.

Many thanks again.