Hello, thank you for your response.
We are currently conducting verification tests in preparation for introducing Camunda into a production environment.
Our current setup consists of:
-
Docker container environment
-
Orchestration (including Zeebe, Operate, and Tasklist)
-
Identity
-
Keycloak
-
PostgreSQL
-
Elasticsearch
The Camunda version is 8.8. For Camunda Identity (version 8.8 and later), my understanding is that there are two authentication options available:
In our environment, we are using OIDC authentication. This means that we want to use Keycloak only for user authentication, while managing groups and roles through Identity.
Currently, we have successfully logged in to all UI components, which I interpret as successful OIDC authentication. However, the issue occurs after login:
-
Identity â Login to UI is successful, and operations are possible.
-
Tasklist & Operate â Login to UI is successful, but the message âNo permissionâ is displayed.
Our goal is to enable [TestUser] to operate Tasklist and Operate. What configuration is required in Identity to achieve this?
Below are the relevant configuration snippets from our environment:
docker-compose.yaml (excerpt)
(Identity and Orchestration environment sections)
orchestration:
# Consolidated Zeebe + Operate + Tasklist
image: orchestration_image
container_name: orchestration
ports:
- "26500:26500"
- "9600:9600"
- "8088:8080"
environment:
CAMUNDA_SECURITY_AUTHENTICATION_METHOD: oidc
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTID: ${ORCHESTRATION_CLIENT_ID}
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTSECRET: ${ORCHESTRATION_CLIENT_SECRET}
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUDIENCES_0: orchestration
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUDIENCES_1: orchestration-api
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUTHORIZATIONURI: http://${HOST}:18080/auth/realms/camunda-platform/protocol/openid-connect/auth
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_TOKENURI: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform/protocol/openid-connect/token
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_JWKSETURI: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform/protocol/openid-connect/certs
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_REDIRECTURI: http://${HOST}:8088/sso-callback
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERNAMECLAIM: preferred_username
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTIDCLAIM: client_id
ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_ISSUERBACKENDURL: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform
CAMUNDA_IDENTITY_ISSUERBACKENDURL: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform
CAMUNDA_IDENTITY_BASEURL: http://identity:8084
CAMUNDA_IDENTITY_AUDIENCE: orchestration
JAVA_TOOL_OPTIONS: "-Xms512m -Xmx512m"
identity:
image: identity_image
container_name: identity
ports:
- "8084:8084"
environment:
SPRING_PROFILES_ACTIVE: oidc
CAMUNDA_IDENTITY_TYPE: GENERIC
CAMUNDA_IDENTITY_BASE_URL: http://identity:8084
CAMUNDA_IDENTITY_ISSUER: http://keycloak:18080/auth/realms/camunda-platform
CAMUNDA_IDENTITY_ISSUER_BACKEND_URL: http://keycloak:18080/auth/realms/camunda-platform
CAMUNDA_IDENTITY_CLIENTID: ${CAMUNDA_CLIENT_ID}
CAMUNDA_IDENTITY_CLIENTSECRET: ${CAMUNDA_CLIENT_SECRET}
CAMUNDA_IDENTITY_AUDIENCE: orchestration
RESOURCE_PERMISSIONS_ENABLED: false
.identity/application.yaml
identity:
url: "http://192.168.105.62:8084"
flags:
multiTenancy: false
oidc: true
authProvider:
issuerUrl: "http://192.168.105.62:18080/auth/realms/camunda-platform"
issuerBackendUrl: "http://192.168.105.62:18080/auth/realms/camunda-platform"
component-presets:
identity:
apis:
- name: "Camunda Identity Resource Server"
audience: "camunda-identity-resource-server"
permissions:
- definition: read
description: "Read permission"
- definition: "read:users"
description: "Read users permission"
- definition: write
description: "Write permission"
roles:
- name: "ManagementIdentity"
description: "Provides full access to Identity"
permissions:
- audience: "camunda-identity-resource-server"
definition: read
- audience: "camunda-identity-resource-server"
definition: write
orchestration:
applications:
- name: Orchestration
id: orchestration
type: confidential
secret: ${VALUES_KEYCLOAK_INIT_ORCHESTRATION_SECRET:secret}
root-url: "http://localhost:8088"
redirect-uris:
- "/sso-callback"
apis:
- name: "Orchestration API"
audience: "orchestration-api"
permissions:
- definition: read:*
description: "Read permission"
- definition: write:*
description: "Write permission"
roles:
- name: "Orchestration"
description: "Grants full access to Orchestration"
permissions:
- audience: "orchestration-api"
definition: read:*
- audience: "orchestration-api"
definition: write:*
server:
port: 8084
spring:
profiles:
active: oidc
camunda:
identity:
audience: "camunda-identity-resource-server"
Question:
What configuration changes are required in Identity so that [TestUser] can operate Tasklist and Operate successfully?
Hello, thank you for your response.
We are currently conducting verification tests in preparation for introducing Camunda into a production environment.
Our current setup consists of:
-
Docker container environment
-
Orchestration (including Zeebe, Operate, and Tasklist)
-
Identity
-
Keycloak
-
PostgreSQL
-
Elasticsearch
The Camunda version is 8.8. For Camunda Identity (version 8.8 and later), my understanding is that there are two authentication options available:
In our environment, we are using OIDC authentication. This means that we want to use Keycloak only for user authentication, while managing groups and roles through Identity.
Currently, we have successfully logged in to all UI components, which I interpret as successful OIDC authentication. However, the issue occurs after login:
-
Identity â Login to UI is successful, and operations are possible.
-
Tasklist & Operate â Login to UI is successful, but the message âNo permissionâ is displayed.
Our goal is to enable [TestUser] to operate Tasklist and Operate. What configuration is required in Identity to achieve this?
Below are the relevant configuration snippets from our environment:
docker-compose.yaml (excerpt)
(Identity and Orchestration environment sections)
orchestration:
# Consolidated Zeebe + Operate + Tasklist
image: orchestration_image
container_name: orchestration
ports:
- "26500:26500"
- "9600:9600"
- "8088:8080"
environment:
CAMUNDA_SECURITY_AUTHENTICATION_METHOD: oidc
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTID: ${ORCHESTRATION_CLIENT_ID}
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTSECRET: ${ORCHESTRATION_CLIENT_SECRET}
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUDIENCES_0: orchestration
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUDIENCES_1: orchestration-api
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUTHORIZATIONURI: http://${HOST}:18080/auth/realms/camunda-platform/protocol/openid-connect/auth
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_TOKENURI: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform/protocol/openid-connect/token
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_JWKSETURI: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform/protocol/openid-connect/certs
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_REDIRECTURI: http://${HOST}:8088/sso-callback
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERNAMECLAIM: preferred_username
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTIDCLAIM: client_id
ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_ISSUERBACKENDURL: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform
CAMUNDA_IDENTITY_ISSUERBACKENDURL: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform
CAMUNDA_IDENTITY_BASEURL: http://identity:8084
CAMUNDA_IDENTITY_AUDIENCE: orchestration
JAVA_TOOL_OPTIONS: "-Xms512m -Xmx512m"
identity:
image: identity_image
container_name: identity
ports:
- "8084:8084"
environment:
SPRING_PROFILES_ACTIVE: oidc
CAMUNDA_IDENTITY_TYPE: GENERIC
CAMUNDA_IDENTITY_BASE_URL: http://identity:8084
CAMUNDA_IDENTITY_ISSUER: http://keycloak:18080/auth/realms/camunda-platform
CAMUNDA_IDENTITY_ISSUER_BACKEND_URL: http://keycloak:18080/auth/realms/camunda-platform
CAMUNDA_IDENTITY_CLIENTID: ${CAMUNDA_CLIENT_ID}
CAMUNDA_IDENTITY_CLIENTSECRET: ${CAMUNDA_CLIENT_SECRET}
CAMUNDA_IDENTITY_AUDIENCE: orchestration
RESOURCE_PERMISSIONS_ENABLED: false
.identity/application.yaml
identity:
url: "http://192.168.105.62:8084"
flags:
multiTenancy: false
oidc: true
authProvider:
issuerUrl: "http://192.168.105.62:18080/auth/realms/camunda-platform"
issuerBackendUrl: "http://192.168.105.62:18080/auth/realms/camunda-platform"
component-presets:
identity:
apis:
- name: "Camunda Identity Resource Server"
audience: "camunda-identity-resource-server"
permissions:
- definition: read
description: "Read permission"
- definition: "read:users"
description: "Read users permission"
- definition: write
description: "Write permission"
roles:
- name: "ManagementIdentity"
description: "Provides full access to Identity"
permissions:
- audience: "camunda-identity-resource-server"
definition: read
- audience: "camunda-identity-resource-server"
definition: write
orchestration:
applications:
- name: Orchestration
id: orchestration
type: confidential
secret: ${VALUES_KEYCLOAK_INIT_ORCHESTRATION_SECRET:secret}
root-url: "http://localhost:8088"
redirect-uris:
- "/sso-callback"
apis:
- name: "Orchestration API"
audience: "orchestration-api"
permissions:
- definition: read:*
description: "Read permission"
- definition: write:*
description: "Write permission"
roles:
- name: "Orchestration"
description: "Grants full access to Orchestration"
permissions:
- audience: "orchestration-api"
definition: read:*
- audience: "orchestration-api"
definition: write:*
server:
port: 8084
spring:
profiles:
active: oidc
camunda:
identity:
audience: "camunda-identity-resource-server"
Question:
What configuration changes are required in Identity so that [TestUser] can operate Tasklist and Operate successfully?