Обмен аутентификацией между двумя сайтами - PullRequest
6 голосов
/ 21 июля 2011

Каков наилучший / правильный метод для разделения входа на два сайта.

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

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

Будет ли OAuth делать? Или OpenID подойдет больше?

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

Спасибо

Ответы [ 2 ]

8 голосов
/ 26 июля 2011

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

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

2 голосов
/ 21 июля 2011

Вы говорите о единой регистрации.Предоставляет ли компания, владеющая веб-сайтом A, удаленный вход в свои API?

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

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

...