One device/application enrolls in multiple controllers

Oh, sure. You do this via the 'management' api. It's the API that allows you to automate the model. Adding identities, adding services, policies etc. You can read about the management api here Edge Management API Reference | OpenZiti. You can get to the live docs at https://<your-controller>:<port>/edge/management/v1/docs if you want to explore the API further.

You can see a basic usage of this with the go-based quickstart test (and much more detailed use in the edge tests) here https://github.com/openziti/ziti/blob/release-next/quickstart/test/quickstart_test.go as an example.

That what you're looking for?