разделение ресурсов и пользователей - PullRequest
2 голосов
/ 13 января 2011

Я строю систему на основе пружин, в которой требование состоит в том, чтобы пользователи группы A находились на одном наборе машин, а пользователи группы B - на другом наборе машин.Серверы для группы A будут хранить данные только для пользователей этих групп и одинаковы для другой группы.В настоящее время я предполагаю службу аутентификации / перенаправления (служба входа в систему), которая будет перенаправлять пользователей на нужные серверы.Таким образом, все пользователи могут прийти на login.example.com и быть перенаправлены на a.example.com и b.example.com

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

Я искал OAuth и некоторые "хакерские" способы сделать это, но хотел бы знать, как эта проблемаобрабатывается другими.

Ответы [ 2 ]

1 голос
/ 13 января 2011

Если у вас есть архитектура, в которой у вас есть отдельные веб-серверы и серверы приложений, вы можете использовать функции балансировки нагрузки вашего веб-сервера для направления пользователей на соответствующий сервер приложений.

Балансировка нагрузки может выполняться для различных свойств HTTP-запроса (это зависит от используемого вами программного обеспечения для балансировки нагрузки), таких как HTTP-заголовок, параметр запроса и т. Д. Если вы балансируете значение заголовка, это позволяет вам использовать cookie, чтобы определить, на какой сервер приложений направлен пользователь.

1 голос
/ 13 января 2011

Это мое предложение (вы могли бы сделать это по-другому) Поскольку вы можете назначить пользователя любому из этих серверов, я предполагаю

  1. Вам нужна центральная база данных для хранения ваших пользователей / паролей.
  2. В этой базе данных пользователей вам понадобится еще одна таблица для определения членства каждого пользователя
  3. Используйте Spring Security для аутентификации пользователя. (здесь вы можете использовать разные механизмы аутентификации)
  4. на каждом сервере добавьте файл свойств, который определяет номер сервера (ID)
  5. вставьте этот ресурс в ваш весенний контекст
  6. пользовательская декларативная авторизация в вашем коде, чтобы удостовериться, что пользователь принадлежит к той же группе, что и идентификатор сервера, указанный в пункте 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...