1 логин клиента для 2 веб-приложений с индивидуальной аутентификацией для входа и базами данных, возможно, больше - PullRequest
0 голосов
/ 19 февраля 2020

Как сделать так, чтобы 2 отдельных серверных приложения служили одним сайтом, каждое из которых обрабатывало разные запросы, в идеале 1 встроенное в другое, и разделяло сеанс после входа пользователя в систему?

В настоящее время существует один сделанный на заказ веб-сайт / Приложение CMS (приложение 1) мало чем отличается от блога с формой входа и регистрацией. Он использует oauth для подключения к API для базы данных в отдельном приложении. Сообщения блога публикуются c на веб-сайте, клиенты заходят на основной сайт и могут загружать сообщения и просматривать свои редакционные изменения, получать отзывы и многое другое, прежде чем публикация может быть опубликована, а администратор использует CMS для доступа к тому, что отправлено клиенты и управляйте сообщениями, включая прокси для пользователей, если это необходимо для внесения изменений.

Теперь у меня есть другое веб-приложение (приложение 2), которое заменяет некоторые функции в исходной CMS. Он имеет собственную CMS и интерфейс, логин и пользователей, которые хранятся в его базе данных.

Мне нужен способ объединить их обоих, чтобы клиенты входили в приложение 1, а когда они переходили к своему сообщению, создавая / редактируя, они без проблем использовали приложение 2, без дополнительного входа в систему, все с использованием исходного пользователя приложения авт. Администратор может посещать оба приложения CMS, в идеале также с одним логином.

Сначала я подумал, что мне нужно другое приложение / служба для управления аутентификацией и в качестве шлюза для страниц других приложений, обслуживающих страницы?

Я вижу много информации о едином входе, но, похоже, это больше связано с использованием внешней учетной записи для доступа к моему сайту "вход через Facebook".

Какой шаблон инфраструктуры и кода будет применим в этом случае? Все приложения построены на PHP, размещены на Linux.

1 Ответ

0 голосов
/ 19 февраля 2020

Single Sign-On (SSO) - это то, что вы хотите, вы на правильном пути. Ознакомьтесь с такими протоколами, как SAML или OpenID Connect, выберите тот, который вам удобнее и имеет поддержку в вашем наборе инструментов, внедрите небольшой тестовый набор и go оттуда. У SAML с PHP есть действительно хороший набор инструментов: simpleSAML php

С SAML у вас есть сервис провайдера идентификации, который аутентифицирует пользователей, скажем, через форму входа и внутреннего пользователя база данных и один или несколько поставщиков услуг. Каждый поставщик услуг - это приложение, которое пользуется преимуществами единого входа. Поставщик удостоверений может быть реализован в виде отдельного приложения / службы или может быть встроен в одно из ваших приложений, скорее всего, в приложение 1. Приложение 2 будет поставщиком услуг. Предполагая, что вы реализовали все это правильно, ваши пользователи смогут щелкнуть ссылку в приложении 1, которая помещает их в приложение 2 без повторной аутентификации.

...