Thank you for sharing your configuration! This provides excellent context to explain what’s happening.
Analysis of Your Configuration
Based on your setup, here’s what’s occurring:
Your Orchestration Configuration
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUDIENCES_0: orchestration
This tells your Orchestration Cluster to accept tokens with aud: "orchestration".
Your Keycloak Configuration
- Client name:
orchestration
- Included Client Audience:
orchestration
- This ensures tokens always contain
aud: "orchestration" regardless of what audience is requested
Why Any OAuth Audience Value Works in Modeler
The reason any non-empty string works is due to your Keycloak configuration:
1. Fixed Audience Mapping
Your Keycloak client is configured with “Included Client Audience: orchestration”. This means:
- Regardless of what audience Modeler requests in the token request
- Keycloak always issues tokens with
aud: "orchestration"
- The actual audience parameter from Modeler is effectively ignored by your Keycloak setup
2. The Authentication Flow
Here’s what happens:
- Modeler requests token:
audience=anything-you-type
- Keycloak ignores the request audience and uses your fixed client audience mapping
- Keycloak returns token:
{"aud": "orchestration", ...}
- Orchestration validates: Token has
aud: "orchestration"
(matches AUDIENCES_0)
- Deployment succeeds

3. What the OAuth Audience Parameter Actually Does
In your current setup, the OAuth audience parameter in Modeler:
- Is sent to Keycloak as part of the token request
- Is overridden by your Keycloak client’s fixed audience configuration
- Has no practical effect on the final token content
- Must be non-empty due to Modeler’s validation, but the actual value doesn’t matter
Alternative Configuration Scenarios
If you wanted the Modeler’s OAuth audience to actually matter, you would need to:
Option A: Dynamic Audience Mapping
Configure Keycloak to respect the requested audience parameter instead of using a fixed client audience.
Option B: Multiple Audience Validation
Configure Orchestration to accept multiple audiences:
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUDIENCES_0: orchestration
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUDIENCES_1: another-audience
Your Current Setup is Valid
Your configuration is actually a common and valid approach:
- Security: Orchestration only accepts tokens with the expected audience
- Simplicity: All tokens from your
orchestration client have consistent audience
- Functionality: Deployment works reliably
The OAuth audience field in Modeler is still part of the authentication process (it’s sent in the token request), but your Keycloak configuration ensures consistent token content regardless of the requested value.
Summary
The OAuth audience parameter is used for authentication - it’s sent to Keycloak in the token request. However, your specific Keycloak configuration with “Included Client Audience” overrides whatever is requested, making the actual value irrelevant while still requiring a non-empty value for proper OAuth protocol compliance.
This explains the behavior you’re observing perfectly!