Authentication
Fluss provides a pluggable authentication mechanism, allowing users to configure client and server authentication methods based on their security requirements.
Overview
Authentication in Fluss is handled through listeners, where each connection triggers a specific authentication protocol based on the configuration. Supported mechanisms include:
- PLAINTEXT: Default, no authentication.
- SASL: This mechanism is based on SASL (Simple Authentication and Security Layer) authentication. Currently, only SASL/PLAIN is supported, which involves authentication using a username and password.
- Custom plugins: Extendable via interfaces for enterprise or third-party integrations.
You can configure different authentication protocols per listener using the security.protocol.map property in conf/server.yaml.
PLAINTEXT
The PLAINTEXT authentication method is the default used by Fluss. It does not perform any identity verification and is suitable for:
- Local development and debugging.
- Internal communication within trusted clusters.
- Lightweight deployments without access control.
No additional configuration is required for this mode.
SASL
This mechanism is based on SASL (Simple Authentication and Security Layer) authentication. Currently, only SASL/PLAIN is supported, which involves authentication using a username and password. It is recommended for production environments.
SASL Server-Side Configuration
| Option | Type | Default Value | Description |
|---|---|---|---|
| security.sasl.enabled.mechanisms | List | PLAIN | Comma-separated list of enabled SASL mechanisms. Only support PLAIN(which involves authentication using a username and password) now. |
security.sasl.listener.name.{listenerName}.plain.jaas.config | String | (none) | JAAS configuration for a specific listener and PLAIN mechanism. |
security.sasl.plain.jaas.config | String | (none) | Global JAAS configuration for all listeners using the PLAIN mechanism. |
security.sasl.plain.credentials | Map | (none) | Map of users in username:password format, e.g. admin:admin-secret,bob:bob-secret. Syntactic sugar that generates the PLAIN JAAS config, and can be updated without a restart. |