docs: add changelog for PR #12750
This commit is contained in:
parent
c75840306b
commit
4f71c97854
|
@ -0,0 +1,31 @@
|
|||
Customizable client attributes in `clientinfo`.
|
||||
|
||||
Introduced a new field `client_attrs` in the `clientinfo` object.
|
||||
This enhancement enables the initialization of `client_attrs` with specific
|
||||
attributes derived from the `clientinfo` fields upon accepting an MQTT connection.
|
||||
|
||||
### Initialization of `client_attrs`
|
||||
|
||||
- The `client_attrs` field can be initially populated based on the configuration from one of the
|
||||
following sources:
|
||||
- `clientid`: The MQTT client ID provided by the client.
|
||||
- `username`: The username provided by the client.
|
||||
- `cn`: The common name from the TLS client's certificate.
|
||||
- `dn`: The distinguish name from the TLS client's certificate, i.e., the certificate "Subject".
|
||||
|
||||
### Extension through Authentication Responses
|
||||
|
||||
- Additional attributes may be merged into `client_attrs` from authentication responses. Supported
|
||||
authentication backends include:
|
||||
- **HTTP**: Attributes can be included in the JSON object of the HTTP response body through a
|
||||
`client_attrs` field.
|
||||
- **JWT**: Attributes can be included via a `client_attrs` claim within the JWT.
|
||||
|
||||
### Usage in Authorization
|
||||
|
||||
- The `client_attrs` can be utilized in authorization configurations or request templates, enhancing
|
||||
flexibility and control. Examples include:
|
||||
- In `acl.conf`, use `{allow, all, all, ["${client_attrs.namespace}/#"]}` to apply permissions
|
||||
based on the `namespace` attribute.
|
||||
- In other authorization backends, `${client_attrs.namespace}` can be used within request templates
|
||||
to dynamically include client attributes.
|
Loading…
Reference in New Issue