- Forrester
- Gartner
- WSO2 это
- Готовые решения WSO2
- Управление API
- Интеграция
- Идентификация и управление доступом
- Умная аналитика
- Интернет вещей (IoT)
- Ключевые продукты WSO2
- Для каких задач подходит WSO2
- Web-приложение WSO2 — добавляем шину
- Навигационные полоски
- Для чего нужна интеграционная шина
- Реализация Proxy Service-а
- Изменения в Веб-Приложении
- Интеграция XACML в Proxy Service
- Передача авторизационной информации из веб-приложения
- Добавляем Entitlement медиатор в Proxy Service
- Добавляем правила доступа в WSO2 IS
- Добавляем обработку ошибок
- Обработка ошибок DSS
- WSO2: Настройка прокси к сервису с аутентификацией по логину и паролю
- Задача
- Решение
- Дополнительно
- Нерешённые вопросы
- 🔍 Видео
Видео:Цифровизация вашей компании при помощи WSO2 API Manager 4.0Скачать
Forrester
По 24 критериям были выбраны 11 поставщиков интеграционных решений. В отчете подробно проанализировано и оценено, как каждый из них помогает пользователям выстроить корпоративную архитектуру.
Видео:Интеграционная шина - обмен данными между подразделениями предприятияСкачать
Gartner
В исследовании Гартнера рассматриваются 4 поставщика решений, используемых в IoT. В отчете они рассматриваются с точки зрения предоставляемых способов интеграции, корреляции и анализа различных источников данных.
Видео:Интеграционная шина предприятия. Структура правила экспортаСкачать
WSO2 это
Комплексная платформа
WSO2 предлагает комплексное решение, состоящее из более чем 20 продуктов, закрывающих весь спектр задач от интеграции и управления API до аналитики и управления правами доступа. Архитектура решения позволяет использовать только те продукты, которые необходимы для решения ваших задач.
100% Open-Source
Все продукты WSO2 распространяются под лицензией с полностью открытым исходным кодом. Это позволяет вам использовать продукты без каких-либо лицензионных платежей. Никаких черных ящиков — вы можете провести аудит или выполнить модификацию любых элементов.
Решение, которому доверяют
WSO2 используют ведущие компании мира. Такие гиганты как eBay, Cisco, Boeing доверили продуктам WSO2 решение критически-важных задач.
Сквозная интеграция
Все продукты компании WSO2 построены на одной платформе — Carbon, что обеспечивает сквозную интеграцию и единый подход к развертыванию и управлению всеми подсистемами комплекса.
Облачное решение
Вы можете развернуть компоненты WSO2 как в инфраструктуре своей организации, так и в частном, публичном или гибридном облаке. Поддержка облачных технологий заложена в основу архитектуры решений WSO2.
Видео:023 - WSO2 EI - Pass Parameter to EndpointСкачать
Готовые решения WSO2
Каждое решение состоит из отдельных элементов. Вы можете спроектировать собственную систему, используя компоненты WSO2 как кубики построения Enterprise-архитектуры.
Управление API
WSO2 API Manager — это корпоративное решение, поддерживающее публикацию API, управление жизненным циклом, разработку приложений, управление доступом, ограничение скорости и аналитику в интегрированном комплексе.
Интеграция
WSO2 Enterprise Integrator — мощная интеграционная шина. Она обеспечивает обмен и преобразование данных между системами, SaaS-приложениями, сервисами и API. Решение включает ESB, брокер сообщений, сервер приложений, сервер служб данных, сервер исполнения бизнес-процессов и платформу для размещения микросервисов msf4j.
Идентификация и управление доступом
WSO2 Identity Server эффективно выполняет сложную задачу управления идентификацией, безопасностью и конфиденциальностью для корпоративных приложений, сервисов и API.
Умная аналитика
Интеллектуальный и высокоэффективный анализ продуктовых данных в реальном времени. WSO2 Data Analytics Server позволяет обрабатывать данные, идентифицировать шаблоны и реагировать в течение милисекунд.
Интернет вещей (IoT)
Теперь мобильные устройства и бытовая электроника могут быть частью вашего бизнеса.
WSO2 IoT Server позволяет подключаться и управлять своими устройствами. Можно управлять приложениями, настройками безопасности и данными, предусмотрена визуализация данных со счетчиков.
Видео:What is WSO2 Enterprise IntegratorСкачать
Ключевые продукты WSO2
Видео:Опыт внедрения ESB интеграционной шины в ПАО «Газпром Нефть» Михаил ХаритоновСкачать
Для каких задач подходит WSO2
При каких типах архитектуры используется WSO2?
Мультикомпонентная архитектура, где требуются коммуникации между разными системами.
Какое количество систем можно подключить? Какие ограничения есть?
Какое количество транзакций может осуществлять система?
Транзакций могут быть миллионы в день. При необходимости в кластер просто добавляются ноды.
Что с настройкой доступа групп и конкретных пользователей?
Есть возможность сделать RBAC — Role Based Access Control.
Насколько сложно настроить и запустить такую кучу компонентов?
Все компоненты построены на одной платформе — Carbon. Поэтому всё программирование можно свести к работе с админкой — всё можно создать через неё. Все настройки тщательно и подробно описаны в документации.
Читайте также: Давление в шинах ява 360
Какова совокупная стоимость продукта? Что входит в стоимость?
В стоимость входит:
1. Саппорт первого уровня на русском
2. Поддержка WSO2 на уровне 24 на 7
3. Периодические патчи с исправлениями
4. Периодические патчи безопасности
Видео:WSO2 Live Dashboard DemoСкачать
Web-приложение WSO2 — добавляем шину
Видео:[Russian] Changing the IT landscape of Bank ZENIT with WSO2, WSO2 WebinarСкачать
Навигационные полоски
В прошлых постах серсии мы рассмотрели:
Теперь рассмотрим как реализовать проверку прав доступа на уровне доступа к данным. Для этого мы будем использовать интеграционную шину WSO2 ESB.
Видео:How to use Payload factory mediator wso2 EI 6.6.0 By ESB Intergration Part IIСкачать
Для чего нужна интеграционная шина
По идее, сам сервер WSO2 DSS имеет возмоность авторизовать доступ к сервисам — зачем нам промежуточный слой? На самом деле в данном случае — это просто пример. Но, при разработке сложных корпортативных информационных систем является правилом хорошего тона избегать прямого взаимодействия между системами. Иначе возникает интеграционное спаггети.
Использование шины позволяет упорядочить и централизовать все взаимодействие между системами, реализовав его в единой системе — интеграционной шине. Это позволяет разделить потребителей сервисов от их реализации. В нашем случае подобное разделение позволит, например, в будующем заменить сервис работы с базой (для хранения информации о пациентах) на какую-нибудь внутреннюю медецинскую систему, да еще работающую по собственному протоколу. Все изменения по взаимодействию с системой будут реализованы на строне шины, со сторону потребителя информации (нашего веб-приложения) ничего не изменится.
Одно из основных назначений шины — это реализация Proxy Service — в нашем случае это будет сервис между веб-приложением и WSO2 DSS на котором будет реализована авторизация запросов.
Видео:WSO2 Enterprise Integrator #1 - Components, Architecture, and FeaturesСкачать
Реализация Proxy Service-а
Для реализации будем использвать WSO2 ESB 4.9.0 — скачать можно с сайта WSO2. Установка шины описана в одном из предыдущих постов — она штатная.
Не забываем прописать Offset=3 в repository/conf/carbon.xml — таким образом сервер не будет конфликтовать с другими серверами WSO2 использующимися в примере. Соответсвенно панель администратора будет доступна по адресу: https://144.76.92.85:9446/carbon
Далее для создания простейшего Proxy Service:
- входим в админку (admin/admin)
- Main -> Manage -> Services -> Add -> Proxy Service
- Выбираем Pass Through Proxy
- Для создания сервиса нам надо знать исходный End-Point — для этого заходим в админку WSO2 DSS, идем в сервисы, кликаем на нашем сервисе и копируем URL end-point-а ( в нашем случае https://localhost:9445/services/WSO2HealthIT/) :
- В WSO2 ESB при создании сервиса указываем имя: WSO2HealthITProxy и его end-point
- Кликаем Create — простейший Proxy Service готов.
Видео:019 - WSO2 EI - Sequence TemplateСкачать
Изменения в Веб-Приложении
В нашем приложении мы захардкодили URL сервиса в двух местах:
- QueryPatientDetailServlet.java — переменная dataServiceEP
- RegisterPatientServlet.java — DSSServerURL
Заменим обе переменные на новый URL : http://localhost:8283/services/WSO2HealthITProxy (который теперь указывает на шину).
Деплоим приложение — проверяем что все продолжает работать. При этом в админке шины в информации о нашем proxy service-е мы можем увидеть, что работа идет именно через него (через статистику)
Видео:013 - WSO2 EI - Enrich MediatorСкачать
Интеграция XACML в Proxy Service
Как мы помним — штатным средством для описания прав доступа является протокол XACML — дальше мы научим шину управляеть доступом к сервису используя этот протокол.
Читайте также: Размер шин для короллы 150
Передача авторизационной информации из веб-приложения
Но для начала необходимо передать информацию о пользователе из приложения в шину. Для этого вносим изменения в классы QueryPatientDetailServlet и RegisterPatientServlet и инициализацию сервиса — добавляем информацию о пользователе в header-ы запроса
В дальнейшем ESB получит эти данные из заголовка и будет знать, «кто» вызвал сервис.
Добавляем Entitlement медиатор в Proxy Service
Теперь вносим изменения в наш Proxy Service. Кликаем Edit на странице сервиса.
Можно использовать графический редактор, но на практике проще использовать XML-редактор (Switch to Source View в редакторе).
Для начала нам надо получить пользователя из заголовка:
Далее добавляем сам сервис
Итак — аналогично EntitlementFilter в веб-приложении мы обращаемся к WSO2 IS ( https://localhost:9444/services ) запрашивая информацию может ли указанный пользователь выполнять текущую операцию или нет.
- onReject — мы генерируем ошибку (makefault) которую потом обработаем в веб-приложении.
- onAccept — мы передаем управление в исходный сервис
В out-sequence нам надо убрать заголовки запроса (относящиеся к безопасности и просто отправить ответ):
Добавляем правила доступа в WSO2 IS
Теперь надо добавить правиа доступа в WSO2 IS — аналогично тому, как мы это делали в свое время для веб-приложения
Логинимся в WSO2 IS (admin/admin) и далее Administration -> Add New Entitlement Policy -> write policy in XML
Берем dssOperationsProxy из исходников (https://github.com/akakunin/wso-health-tutorial/blob/3.0.x/is/dssOperationsPolicy.xml), сохраняем, далее «Publish to my PDP» и далее идем в Policy View и включаем Policy.
Не останавливаясь сейчас на формате XACML, в данном XML мы описали следующие правила:
Permissions user has | Access URL | Allow/ Deny |
---|---|---|
read | .*/WSO2HealthITProxy/patientDetailsByNumber | Allow |
read | .*/WSO2HealthITProxy/registerPatient | Deny |
write | .*/WSO2HealthITProxy/patientDetailsByNumber | Allow |
write | .*/WSO2HealthITProxy/registerPatient | Allow |
Видео:How to use DBLookup Mediator wso2 EI 6.6.0 By ESB Intergration Part IСкачать
Добавляем обработку ошибок
Последним шагом будет обработка ошибок.
Обработка ошибок DSS
Наш Proxy Service «оборачивает» вызов к DSS. Если «что-то пойдет не так» то в сервисе будет вызван faultSequence. По этому, в наш сервис необходимо добавить
Так же необходимо будет создать в ESB Sequence: Manage -> Sequences -> Add Sequence с именем wso2HealthITFaultHandler и кодом из репозитория: https://github.com/akakunin/wso-health-tutorial/blob/3.0.x/esb/wso2HealthITFaultHandler.xml )
Как итог — если с возникнет какая-либо ошибка ( на стороне DSS или например ошибка доступа) клиент в веб-приложении получит SoapFault Exception. Соотвественно везде где мы обращаемся к сервису нам необходимо добавить обработку Exception-а:
- В QueryPatientDetailServlet надо добавить следующий обработчик:
- RegisterPatientServlet — просто поймать Exception
Как итог данного упражнения, мы добавили шину для связи между сервисами данных и веб-приложением, в которой реализовали проверку прав доступа и обработку ошибок.
Видео:Error handling with WSO2 Enterprise Service BusСкачать
WSO2: Настройка прокси к сервису с аутентификацией по логину и паролю
Задача
Есть приложение, которое может запрашивать данные по определённому протоколу и есть сервис, который может отдавать данные, но по другому протоколу и требует авторизации по логину и паролю.
В приложении нет учётных данных необходимых для доступа к сервису. Необходимо подружить приложение и сервис.
Решение
Использовать шину: WSO2 Enterprise Service Bus, на которой настроить прокси-сервис.
Используем WSO2 ESB версии 4.7.0.
Создаём политики
Так как целевой сервис защищён по стандарту WS-Security, то и доступ к нему будем настраивать по всей строгости стандарта.
Политики создаются как ресурсы в локальном репозитории, в интерфейсе: Manage — Service Bus — Local Entries — Add Local Entries — Add In-lined XML Entry.
Политика для исходящих сообщений
Здесь и в дальнейшем имена могут даваться произвольные, но буду акцентировать на них внимание, потому что через них будут связываться все артефакты в одно целое
Указываем имя: service-policy
Указываем политику:
Основной частью в этой политике является указание имени пользователя целевого сервиса и класса, который в нашем случае просто подставит необходимый пароль, класс s.e.r.PasswordCallBackHandler:
Пакуем в jar и кладём в WSO2_HOME/repository/components/lib/.
Рестартуем WSO2.
Политика для входящих сообщений
Указываем имя: empty-policy.
Указываем политику:
Создаём Address Endpoint
Указываем имя: my-endpoint.
Указываем адрес сервиса.
В дополнительный опциях отмечаем использование WS-Security и указываем политики для исходящих и входящих сообщений созданные ранее.
Исходник Endpoint’а:
Создаём XSLT-преобразование сообщений
XSLT-преобразования создаются там же где и политики: Manage — Service Bus — Local Entries — Add Local Entries — Add In-lined XML Entry.
Преобразование входящего сообщения
Нам необходимо привести запрос нашего приложения к виду, который понимает сервис:
Указываем имя: in-xslt
Указываем преобразование:
Преобразование в исходящее сообщение
Нам нужно ответ сервиса привести к виду, понятному для приложения. Шаг идентичен шагу для входящего сообщения, только имя: out-xslt.
Создаём Proxy Service
В UI: Manage — Service — Add — Proxy Service — Custom Proxy
Указываем имя: external-service. По этому имени будет доступен ваш сервис на шине, например: localhost:8280/services/external-service.
В нашем случае снимаем отметку с протокола https.
Дальше переключаемся в режим исходно кода (switch to source view) и приводим содержимое приблизительно к следующему:
Тут указаны две последовательности для входящего и исходящего сообщения, обе начинаются с соответствующего преобразования и затем посылают сообщение в нужном направлении.
Дополнительно
Чтобы следить за тем, во что превращает наша прокси сообщения, использовал fiddler
Прокси пробрасывает заголовок Action пришедшие из приложения, а сервис ругается?
Добавляем медиаторы в последовательность прокси сервиса, удаляем заголовок Action:
Прокси возвращает данные в некорректной кодировке?
Указываем кодировку, в которой возвращаем сообщения:
Ответ сервиса состоит из нескольких частей?
WSO2 по умолчанию считает что ответ должен состоять из одной части, поэтому передают на преобразование то что находится по пути: s11:Body/child::*[position()=1] | s12:Body/child::*[position()=1], как результат мы можем трансформировать только первую часть, чтобы это исправить меняем вызов преобразователя в сервисе:
… и учитываем это в преобразователе:
Нерешённые вопросы
Пришлось настраивать две политики безопасности
Есть ощущение что можно обойтись одной, но с единой политикой выходила ошибка, о том, что ответ сервиса не содержит заголовков безопасности. А он действительно их не содержит. Чтоб это обойти пришлось писать пустую политику для ответа.
Не найдено встроенного решения для хранения учётных данных стороннего сервиса
Неуклюжее решение с классом для хранения пароля очевидный костыль, который нужно заменить подходящим решением, либо встроенным, либо велосипедом.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
- Правообладателям
- Политика конфиденциальности
Автоподбор © 2023
Информация, опубликованная на сайте, носит исключительно ознакомительный характер🔍 Видео
How to configuration analytics EI WSO2Скачать
011 - WSO2 EI - Filter MediatorСкачать
001 - WSO2 - Enterprise IntegratorСкачать