2011-07-21 2 views
4

Какая наилучшая/правильная технология для совместного использования логина между двумя сайтами.Обмениваться аутентификацией между двумя веб-сайтами

У меня есть веб-сайт A и некоторые веб-сайты B. Оба типа принадлежат одной и той же компании, но B работает на территории заказчика. Я бы хотел, чтобы пользователи входили в B, а по какой-то причине перенаправлялись на A, им не нужно снова входить в систему, и они могут работать со своей учетной записью в A.

Конечно, компания будет сделать логины для каждого пользователя «B». Проблема в том, что пользователь может инициировать логин в A или B.

Будет ли OAuth делать? Или OpenID будет более подходящим?

Другой вариант - передать маркер GUID в строке GET с временем сортировки, чтобы жить и действителен только для IP-адреса запрашивающего, но он не уверен, что пользователь будет обращаться к веб-сайтам через один и тот же шлюз.

Thanks

+0

Ваш пример использования - это типичные сценарии SSO, которые обсуждались во многих сообщениях на этом сайте, но точное решение для каждого сообщения зависит от количества факторов: какова ваша инфраструктура приложения, какая архитектура вашего развертывания, язык, который вы предпочитаете и т. Д. ... один из сообщений я могу указать на [link] (http://stackoverflow.com/questions/6002519/simple-sso-using-custom-authentication-cas-or-some-oauth-or-openid-server/6054485 # 6054485) – ag112

ответ

8

OAuth - это именно то, что вам нужно. OpenID предлагает обнаружение, которое полезно только тогда, когда пользователь выбирает, кто должен аутентифицироваться (а не ваш вариант использования). Кроме того, OpenID намного сложнее и является гибким протоколом.

В вашем сценарии сервер A - это сервер OAuth (или сервер авторизации в OAuth 2.0), а сервер B - клиент. Есть много способов реализовать это, но я предлагаю вам начать с поиска (и попытки) реализации Facebook OAuth 2.0. Это даст вам хорошее представление о том, что происходит, и о некоторых расширениях (например, дисплее), которые делают его более удобным для пользователя.

+0

«OpenID - это умирающий протокол». Любая поддержка для этого требования? –

+0

Любая альтернатива? – vtortola

+0

@andre OpenID не видел каких-либо серьезных усыновлений в течение 3 лет, организация, стоящая за ним, полностью дисфункциональна, так как ее самые активные члены (и некоторые основатели) больше не участвуют. В принципе, OpenID настолько непригоден, что большинство сайтов предпочитают использовать Facebook и Twitter (а иногда и Google) и просто подключаться напрямую к ним. –

2

Вы говорите о едином входе. Ли компания, которая владеет веб-сайтом A, обеспечивает удаленный вход в свой api?

Вам необходимо убедиться в том, что информация о входе в систему зашифрована, когда она передана на веб-сайт A. Последний единственный вход, который я создал, потребовал от меня передать имя пользователя AD, зашифрованное через RSA, и хеширование с помощью MD5. У третьей стороны была база данных имени пользователя AD и их пароль на стороннем сайте. Когда пользователь щелкнул ссылку, их зашифрованная информация была отправлена ​​в лог-ави третьей стороны, а третья сторона перенаправила их на страницу приветствия с завершением процесса регистрации.

Если вы строите один входной API самостоятельно, так как у вас есть контроль над сайтом A, OAuth является респектабельным выбором. Это довольно легко ввести в действие.

Смежные вопросы