We are not using AD/LDAP. But i’m trying to understand how this should work. I assume you will pull your users and groups from LDAP? And you are asking how to add contact in client (say Spark?).
I think in Spark you should add contacts as user@example.com. But in Login screen you should specify server as virtual.example.com or maybe just virtual. Try different approaches.