Hi - stuff happens on both ends.
The local system writes a record to the database to say that a user is jumping to the remote site, then redirects the user there.
On the remote site, it calls back to the local site to ask if the user _really_ wanted to jump. The local site checks the database for that record it wrote previously and returns yes/no, along with the user's data if required by the remote site to set up their account/update their info.
Then the remote site dumps the user into a normal user account. From then on, all interaction happens on the remote site with that user account, until logout.