2014-02-12 3 views
2
.

. В нашей архитектуре у нас есть диспетчер идентификации и доступа (CA SiteMinder®) и приложение Java EE в Jboss 5. Это приложение (потенциально многие другие) имеет связанную с наличием политику доступности (т.е. -end должен быть доступен с 9:00 до 18:00, а веб-службы должны быть всегда доступны). Правильнее было бы поставить эту политику в IAM или на стороне приложения (т. Е. Реализовать фильтр сервлета)? Или ни одно из двух не является правильным местом для размещения такого рода политики, и я должен рассмотреть другой слой, который будет помещен в середину?Управление доступностью приложений. Лучшая практика.

примечание: вызов веб-сервисов не проходит через IAM.

+0

Я не думаю, что есть правильный ответ. Лично я бы сам реализовал его в фильтре, так как это позволило бы мне легче протестировать конфигурацию ... Но вы уже доверяете SiteMinder, поэтому можете добавить немного больше. – Augusto

+0

Спасибо @Augusto. Проблема с подходом к файлу будет заключаться в том, что политики доступа будут распространяться во всех приложениях, а изменение политики (например, для существующего пользователя) приведет к изменению нескольких конфигураций для нескольких приложений. – loscuropresagio

ответ

0

Было бы полезно лучше понять ваши требования к доступности, но в любом случае, вот мое мнение.

Что касается архитектуры приложения, я считаю, что security и availability должны быть двух различных требований. Поэтому я буду реализовывать их отдельно. С точки зрения архитектора это похоже на принцип объектно-ориентированного проектирования Single-Responsibility, в котором отдельные компоненты объектно-ориентированной программной системы одновременно имеют только одну ответственность.

Сохраняя две проблемы разделения гарантирует, что:

  1. Удобство - Они оба могут быть разработаны, реализованы, испытаны и легко поддерживать. Я мог бы писать автоматические тесты для каждого отдельно, не беспокоясь о проводке между ними.
  2. Расширяемость - Расширение любого из решений индивидуально будет проще, потому что будет меньше зависимости от других частей системы. Например, если приложение перерастает в несколько модулей или типов компонентов, каждый из которых имеет свои нюансы доступности, только одно из решений необходимо будет изменить.
  3. Lock-in - Реализация ваших требований к доступности в Site Minder может заблокировать вас этим продуктом. У вас будет еще одно соображение в будущем, если вы хотите перейти от Site Minder.
  4. Воздействие на существующий код - Вы упомянули, что вызовы веб-сервисов в настоящее время не проходят через IAM. Реализация вашего решения доступности с использованием IAM может повлиять на этот аспект приложения.
Смежные вопросы