Вход через одноразовый токен - PullRequest
0 голосов
/ 25 октября 2018

Я разработчик веб-приложения - назовем его "foo.com".Клиент хочет использовать наш сервис, что будет означать создание учетных записей пользователей для его сотрудников.У клиента уже есть собственный сайт, на который его сотрудники заходят - назовем его «bar.com».

Когда сотрудник входит в систему bar.com, он увидит ссылку на foo.com и, нажав ее, войдет в систему без необходимости вводить отдельные учетные данные foo.com.

Это основное требование.Мое первоначальное предположение состояло в том, что я смогу использовать какой-либо SSO на основе SAML, но это невозможно.Фактически, механизм входа в систему bar.com не может быть затронут или использован каким-либо образом.Все, что я могу сделать, это предположить, что пользователь уже прошел аутентификацию и вошел в систему на bar.com и начал с нее.

Это мое предлагаемое решение: foo.com предоставляет bar.com ключ API.Когда пользователь bar.com входит в систему, бэкэнд bar.com отправляет запрос на foo.com, используя ключ API и электронную почту пользователя, например:

GET 'https://foo.com/api/generate_login_url?api_key=123&email=jim@bar.com

foo.com ищет пользователя, генерируеттокен и отвечает URL-адресом, который включает этот токен:

https://foo.com?token=xyz123

bar.com теперь отображает эту ссылку в пользовательском интерфейсе.При щелчке он переходит на foo.com, где извлекается токен.Соответствующий пользователь входит в систему, и токен затем уничтожается.

Очевидно, что нужно разобраться с некоторыми деталями, но это общая картина.

Я хотел бы знать, есликак правило, это жизнеспособное решение.Если так, то что, если что-то нужно настроить?Если нет, каковы альтернативы?

...