I have several sites (Asp.Net) that I would like to have a single sign on for...
I would like a user to visit Site1 and have Site1 contact a central single sign-on server (SSS).
The SSS would then determine that the user was not logged on (Not sure how) and would redirect the user to a Logon screen (Still on the SSS).
If authenticated, the user would be redirected back to Site1.
Site1 would treat this arrival as new and would likely ask the SSS if the user was logged on. This time the SSS would suggest that the user in question was indeed logged on. And so Site1 could store this fact in it's session for future reference (perhaps with some suitable timeout)
Site1 would contain a link to Site2 which the user might choose to follow.
Arrival at Site2 should trigger an attempt by Site2 to authenticate the user.
How can I identify the user arriving on Site2 as the same user who already visited Site1 and discover that they have already been authenticated in order that they need not have to log in a second time?
Note: The SSS needs to be a private system where I control the account creation. So I'm afraid I can't be relying on external OpenID servers
Update: I am unable to guarantee at this time that Site1, Site2 and SSS would be within the same domain... So I don't think cookies will cut it.