I found a workarround. Using the key “customerKey” in the join configuration allows us to provide a unique key for each client. This value is also stored in the report in the field “customer_key”.
So our join configuration looks like this now:
ZoomMtg.join({
signature: response.signature, <- has role 0
apiKey: response.apiKey,
meetingNumber: response.meetingId,
userName: response.name,
userEmail: response.email,
passWord: response.password,
customerKey: response.customerKey
})