Наш бизнес-пример заключается в том, что у нас есть четыре-пять сервисов, развернутых как веб-приложения java spring. Эти сервисы имеют пользователей / клиентов, полученных либо в процессе регистрации, либо от некоторых существующих запущенных приложений, представленных как остальные сервисы. Мы намерены создать единый портал, который предоставит пользователям возможность использовать одну учетную запись / учетные данные для непосредственного входа во многие службы.
При внутреннем подходе мы предполагаем наличие индивидуальной таблицы клиентов для каждой услуги. И общая таблица входа в систему для всех сервисов, чей идентификатор помечен / сопоставлен как внешний ключ в отдельной таблице клиентов каждой услуги.
Также к некоторым услугам можно получить доступ без регистрации, в этом случае мы получаем данные через идентификатор учетной записи клиента из какой-либо третьей службы покоя и сохраняем их в отдельной таблице служб / приложений клиента и в общей таблице входа в систему, если она еще не существует.
Для услуг, требующих регистрации, мы сохраняем учетные данные клиента в таблице входа в систему, если ее нет; а также в таблице клиентов службы / приложений с общим отображением таблицы входа в систему.
Но нам нужен безопасный портал с отслеживанием сеанса, тайм-аут сеанса, такой же, как Single Sign On
С некоторыми исследованиями мы сузили подход к реализации вышеупомянутого сценария с помощью единого входа или Oauth2, который применим к ней.
Для получения более подробной информации см. Ссылку (https://stormpath.com/blog/oauth-is-not-sso).
Может кто-нибудь предложить, какой подход SSO или Oauth2 применим для нашего бизнес-сценария?
если SSO, какой лучший SSO с открытым исходным кодом для Java-приложений Spring?
если OAuth2, что будет действовать как клиентское приложение, сервер авторизации, владелец ресурса и сервер ресурса? Как у нас есть сервисы (Java-приложения) в качестве клиентских приложений, размещенных в Common Application / Portal? будет ли общая таблица входа действовать как владелец ресурса?