Было бы полезно лучше понять ваши требования к доступности, но в любом случае, вот мое мнение.
Что касается архитектуры приложения, я считаю, что security
и availability
должны быть двух различных требований. Поэтому я буду реализовывать их отдельно. С точки зрения архитектора это похоже на принцип объектно-ориентированного проектирования Single-Responsibility
, в котором отдельные компоненты объектно-ориентированной программной системы одновременно имеют только одну ответственность.
Сохраняя две проблемы разделения гарантирует, что:
- Удобство - Они оба могут быть разработаны, реализованы, испытаны и легко поддерживать. Я мог бы писать автоматические тесты для каждого отдельно, не беспокоясь о проводке между ними.
- Расширяемость - Расширение любого из решений индивидуально будет проще, потому что будет меньше зависимости от других частей системы. Например, если приложение перерастает в несколько модулей или типов компонентов, каждый из которых имеет свои нюансы доступности, только одно из решений необходимо будет изменить.
- Lock-in - Реализация ваших требований к доступности в Site Minder может заблокировать вас этим продуктом. У вас будет еще одно соображение в будущем, если вы хотите перейти от Site Minder.
- Воздействие на существующий код - Вы упомянули, что вызовы веб-сервисов в настоящее время не проходят через IAM. Реализация вашего решения доступности с использованием IAM может повлиять на этот аспект приложения.
Я не думаю, что есть правильный ответ. Лично я бы сам реализовал его в фильтре, так как это позволило бы мне легче протестировать конфигурацию ... Но вы уже доверяете SiteMinder, поэтому можете добавить немного больше. – Augusto
Спасибо @Augusto. Проблема с подходом к файлу будет заключаться в том, что политики доступа будут распространяться во всех приложениях, а изменение политики (например, для существующего пользователя) приведет к изменению нескольких конфигураций для нескольких приложений. – loscuropresagio