Я разработчик веб-приложения - назовем его "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, где извлекается токен.Соответствующий пользователь входит в систему, и токен затем уничтожается.
Очевидно, что нужно разобраться с некоторыми деталями, но это общая картина.
Я хотел бы знать, есликак правило, это жизнеспособное решение.Если так, то что, если что-то нужно настроить?Если нет, каковы альтернативы?