OpenID предоставляет некоторые приятные функции, но, к сожалению, междоменное поведение, которое вы ищете, не то, что вы найдете в стандартной реализации OpenID. Один из основных принципов разработки OpenID заключается в том, что провайдер не раскрывает какую-либо информацию о пользователе без его явного согласия *, и поэтому любой уважаемый провайдер OpenID никогда не сообщит mysite-news.com, что вы уже вошли в mysite-blog. .com без запроса подтверждения пользователя.
[С технической точки зрения, здесь происходит то, что mysite-news.com и mysite-blog.com концептуально находятся в одной и той же «области безопасности», но OpenID идентифицирует области по шаблонам URL, и, поскольку они включены разные домены они не совпадают.]
И это не дает вам того опыта, который вам нужен. Есть несколько предыдущих ответов, которые отлично описывают тип системы, которая вам нужна:
Короче говоря, вы будете настраивать своего рода службу аутентификации на login.mysite.com для ответа на запросы от mysite-news.com и mysite-blog.com. Есть еще несколько способов, которыми вы можете воспользоваться OpenID в этом.
Описанный поток перенаправления на вход в систему и возврат подписанного токена - именно то, что делает OpenID. Таким образом, вы по-прежнему можете использовать реализацию OpenID для управления всеми подписанными токенами и защиты воспроизведения: ваши клиентские сайты просто пропускают начальную часть «обнаружения» OpenID и всегда перенаправляют пользователей к поставщику login.mysite.com. И login.mysite.com пропускает шаг «доверяю ли я mysite-blog.com», потому что это провайдер специального назначения, у которого может быть свой собственный белый список сайтов, с которым он всегда работает. OpenID был бы здесь просто закулисным, пользователи никогда бы не узнали, что OpenID каким-то образом был вовлечен.
login.mysite.com, в свою очередь, может использовать OpenID, чтобы попросить пользователей пройти аутентификацию на своем провайдере OpenID (будь то Google или Yahoo или такой специалист, как myOpenID). Оттуда это будет выглядеть как стандартный вход в OpenID, и вы получите все преимущества, недостатком является то, что ваша цепочка перенаправления входа становится немного длиннее (и соответственно медленнее). Это перерывы.
Удачи. Это вопрос, который возникает довольно часто, и мне еще предстоит найти действительно замечательную справочную реализацию, на которую я могу указать людям, поэтому, если вы найдете что-то хорошее, вернитесь и сообщите нам.
Наконец, обязательная ссылка на сценарий Матасано Чаргена по теме .
[*] недавнее фиаско в Google Buzz - хорошее напоминание о том, что происходит, когда вы удивляете пользователей тем, с кем обмениваются их информацией.