emqx / emqx/eip

Allow User Properties for MQTT V5 Protocol to be used as placeholders

Open
#78 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Makefile
Stars
21
Forks
20
Avg merge
3d 18h
Merged PRs (30d)
1

Description

Hola! 👋

Let me know if this is not the right place to post this feature request. I'm posting this request based on this discussion: https://github.com/emqx/emqx/discussions/11528

Basically, with the introduction of User Properties in the V5 version of the MQTT protocol, I think it expands the possibility to enhance authentication processes by allowing the specified properties to be used as placeholders in different authentication/authorization services.

for my particular use-case, I want do to something like this:

* A client sets a User-Property of `(ApiKey, ABC123)` in the `CONNECT` packet along with a `username` and a `password`.
* EMQx sees this and sends as a POST request a `username`, `password` and `ApiKey: ABC123` to an external HTTP service.
* The HTTP Service receives a JSON object like this: `{"username": ..., "password": ..., "apiKey": "ABC123" }`.

Or expose them via headers too, so the HTTP Endpoint receives a custom header like `X-API-KEY: ABC123`.

Also, allowing user properties to be used as placeholders, will allow more granular control over the `PUBLISH` packet as well with ACLs.

Thanks!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.