Как обычно применяются права при использовании механизма CEP?
Я создаю систему, в которой механизм CEP выглядит хорошо подходящим (мне нужно определить временные шаблоны между событиями в нескольких потоках). Обнаруженные события должны отображаться для конечных пользователей в приложении WPF, но не все пользователи имеют право видеть все события.
Как это обычно обрабатывается при использовании механизма CEP? Нужен ли мне дополнительный уровень обслуживания между приложением пользовательского интерфейса и механизмом CEP или это можно сделать в самом механизме CEP?
1 ответ
Я не уверен, что есть "обычный" ответ на этот вопрос во всех движках CEP. Двигатели CEP действительно не одинаковы в услугах, которые они предоставляют.
Вы пометили этот вопрос как "streambase", так что я могу поговорить об этом. Среда выполнения StreamBase CEP поддерживает аутентификацию пользователей при создании клиентского подключения к серверу для удаления кортежей из выходных потоков. Люди обычно подключают это к своему локальному серверу LDAP или AD.
Тем не менее, во время выполнения StreamBase CEP отсутствует механизм авторизации / прав доступа для каждого кортежа, по крайней мере, в текущем выпуске (7.3).
Таким образом, когда пользователи StreamBase хотят применять права для каждого набора, мы обычно советуем им встроить их на уровне приложений или использовать какую-то другую доступную инфраструктуру. Например, вместо использования собственных подключений StreamBase Client, используйте адаптер для чего-то вроде TIBCO EMS или IBM MQSeries и используйте разрешения для каждой темы / очереди для ограничения доступа. Или в качестве другого примера: пусть сервер StreamBase отправляет токен обратно аутентифицированному пользователю после подключения и использует этот токен в качестве ключа для проверки прав на стороне клиента по LDAP с использованием перехватчика очереди.
Или, как вы говорите, используйте свой собственный уровень сервисов.
На бирже компонентов StreamBase есть еще один пример "Службы прав бедных". Выполните поиск по запросу "StreamBase Entitlements". При этом используется база данных в памяти или JDBC для хранения пользователей, ролей и разрешений, а также применение их на стороне сервера с эффективным механизмом проверки разрешений во время выполнения. Но нет никаких строгих ограничений времени выполнения для соединений с этим; это всего лишь пример реализации функциональных возможностей с хорошим интерфейсом. Клиенты добровольно уважают ограничения, что, вероятно, не то, что вы просили.
Раскрытие информации / отказ от ответственности. Я являюсь сотрудником TIBCO Software, Inc. Мнения, высказанные здесь, принадлежат мне, а не компании TIBCO.