Skip to content

v0.14.0

Choose a tag to compare

@lsm lsm released this 11 Feb 20:44

v0.14.0 - Kafka SASL/OAUTHBEARER with Azure Entra

🚀 New Feature: Kafka OAuth Authentication

Adds SASL/OAUTHBEARER authentication support for Kafka clients (fiso-flow and fiso-link) using Azure Entra (formerly Azure AD) OAuth2 tokens. This enables fiso to connect to Azure-integrated Kafka clusters including Confluent Cloud with Azure identity integration.

What's New

OAUTHBEARER SASL Mechanism:

  • Azure Entra OAuth2 client credentials flow
  • Automatic token caching and refresh (via Azure SDK)
  • Support for Azure Managed Identity (DefaultAzureCredential) for AKS deployments
  • Confluent Cloud extensions support (logicalCluster, identityPoolId)

Configuration:

kafka:
  clusters:
    azure-confluent:
      brokers:
        - pkc-xxxxx.westeurope.azure.confluent.cloud:9092
      tls:
        enabled: true
      auth:
        mechanism: OAUTHBEARER
        oauth:
          provider: azure
          tenantId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          clientId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          clientSecretEnv: "AZURE_CLIENT_SECRET"  # Env var
          scope: "api://<app-id>/.default"
          extensions:
            logicalCluster: "lkc-xxxxx"
            identityPoolId: "pool-xxxx"

Security:

  • Client secrets via environment variables only (never hardcoded)
  • Follows same pattern as Temporal authentication (v0.13.0)
  • Token automatic refresh before expiration

Dependencies

  • Added github.com/Azure/azure-sdk-for-go/sdk/azidentity@v1.13.1
  • Added github.com/Azure/azure-sdk-for-go/sdk/azcore@v1.21.0

Testing

  • 10 new unit tests (validation + mechanism creation)
  • Integration test for Azure OAuth (optional, manual)
  • All existing tests pass (backward compatible)

Supported Auth Methods

fiso now supports 4 Kafka SASL mechanisms:

  1. ✅ PLAIN
  2. ✅ SCRAM-SHA-256
  3. ✅ SCRAM-SHA-512
  4. OAUTHBEARER (Azure Entra) ← NEW!

📦 Installation

# Download binaries
curl -L https://github.com/lsm/fiso/releases/download/v0.14.0/fiso-flow-linux-amd64 -o fiso-flow
curl -L https://github.com/lsm/fiso/releases/download/v0.14.0/fiso-link-linux-amd64 -o fiso-link
chmod +x fiso-flow fiso-link

# Or use Docker
docker pull ghcr.io/lsm/fiso-flow:v0.14.0
docker pull ghcr.io/lsm/fiso-link:v0.14.0

🔗 Links

🙏 Contributors

Thanks to everyone who contributed to this release!