I don't think you understand what | means. Do you really want to channel the text output of the su command into the id command? id reads no input, it just prints!
This will log you in as ldaprole, run something, then give you a prompt: $ ssh -t localhost 'sudo su - ldaprole -c "id ; exec bash"'
The -c tells su to run the given command after it. We're telling it to run id, then run a shell... Running a shell is crucial because without it, ssh and su will both consider themselves out of input and return without waiting.
Substitute your shell of choice for bash. Absolute paths preferred.
Actually i am not allowed to run with "-c", it says permission denied. and i believe it is not there in the sudo list. Do you know any other alternative for this.
I suggest you request that your Sysadmin "does the needful", because sudo will consume arguments passed and check whether they correspond to your allowed entries in the sudoers file.