Во-первых я понимаю, что OpenId для аутентификации, и OAuth для авторизации, и в отличие от других вопросов на сайте я не спрашиваю, который должен использоваться, для которого, но ли кто-либо может советовать решению для моей проблемы.
Я хочу позволить пользователям входить в мой сайт через свой LinkedIn/Твиттер/¦ккаунт в Facebook, однажды вошел в систему, говорят через LinkedIn, они могли также затем авторизовать свой аккаунт в Твиттере и аккаунт в Facebook как дополнительный метод входа в систему. Это позволило бы пользователю проходить проверку подлинности через любой из трех, но заканчивать с их учетной записью пользователя на моем сайте как конечный результат.
Я также хочу использовать авторизацию, которую они предоставили для получения деталей рядового пользователя (рис./имя профиля и т.д.) и обновления статуса сообщения.
Я не хочу просить, чтобы пользователь для входа в систему с их учетной записью через открытый затем разрешил ту же учетную запись снова через OAuth позволять моему сайту публиковать к их сервисному каналу и иметь, чтобы сделать это для каждого из этих 3 сервисов.
Какие-либо идеи или проблемы к этой проблеме?
Если вы используете ASP.NET MVC, DotNetOpenAuth - отличное решение для поддержки сайтов OpenID / OAuth. StackOverflow использует его, и они довольно разборчивы в отношении кода, который используют на сайте.
Интеграция OpenID с DotNetOpenAuth довольно проста. Я не пробовал OAuth, но не ожидаю, что он будет менее качественным.
К сожалению, Facebook не поддерживает OpenID / OAuth, поэтому для этого нужно использовать другое решение. Я использую Facebook Developer Toolkit от Clarity Consulting. Работает, хотя к качеству кода у меня есть определенные претензии; к сожалению, лучше пока не нашел. (Примечание: если кто-то знает лучшую альтернативу, обязательно дайте мне знать)
Базовая интеграция Facebook Connect с Facebook Developer Toolkit также относительно проста. Однако их объектная модель несколько испорчена из-за их попытки оставаться как можно ближе к API Facebook, поэтому шаблоны HTTP API сильно просачиваются. Тем не менее, он работает.
Обновление: Теперь, когда Facebook объявил о поддержке OAuth 2.0, DotNetOpenAuth может оказаться лучшим решением.
Я не хочу просить пользователя войти в систему со своей учетной записью через openId, а затем снова авторизовать ту же учетную запись через oauth, чтобы мой сайт мог публиковаться в их служебном фиде, и делать это для каждой из трех служб. .
Боюсь, вам придется подключать учетную запись пользователя к каждой из трех служб по отдельности. Какую платформу вы используете для создания своего приложения? Если это Ruby, то перспективным выглядит гем, подобный OmniAuth .