Code Monkey home page Code Monkey logo

boost's Introduction

Boost IDS/FiWare Connector

Bridging the gap between IDS and FiWare.

Boost IDS/FiWare Connector is a distributed system to enable IDS and FiWare services to securely exchange data. In somewhat more detail, Boost is a mesh architecture to intercept incoming/outgoing HTTP messages directed to/originating from mesh services and transparently carry out a security workflow so that the functionality of existing HTTP services can be augmented with IDS and FiWare security without requiring any changes to the services themselves. The solution is based on the Istio Mixer architecture whereby an out-of-process Mixer extension (adapter) and Envoy filter collaborate to examine incoming/outgoing traffic and perform security tasks.

This software has been developed by Martel Innovate in collaboration with the FiWare Foundation as part of the Boost 4.0 EU initiative.

Note. Semantic overload. Within this repository's code and documentation, the term "Boost" refers to the Boost IDS/FiWare Connector rather than the Boost 4.0 EU initiative. For example, the "Boost" in "Boost software architecture" or "Boost mesh" should be understood as "Boost IDS/FiWare Connector".

Documentation

The overview section of the software architecture document is the best starting point to learn about Boost: it is a short read but presents the fundamental ideas clearly with the help of diagrams. The reader interested in gaining a deeper understanding of the architecture is invited to consider the entire software architecture document. A hands-on tutorial demonstrates every Boost feature through progressively more complex scenarios and exemplifies mesh deployment and operations.

Features at a glance

Currently the system can

  • Intercept HTTP requests targeting any mesh service.
  • Validate IDS header payload through configurable RSA infrastructure and deny access or forward requests to the target service according to validation outcome.
  • Additionally turn on AuthZ access control so that past IDS header validation, the adapter also
    • validates KeyRock JWTs (through configurable shared secrets) and denies access if validation fails; otherwise
    • asks AuthZ to authorise the request and then denies access or forwards the request to the target service according to AuthZ's decision.
  • Do mTLS with a configured DAPS server to get an ID token. (Keys and certificates are configurable too.)
  • Insert the ID token into the service response, again using the IDS header mechanism, with a configurable JSON payload.
  • Intercept HTTP requests originating from a mesh service and insert the DAPS ID token.
  • Cache security operations and data to reduce service latency, with configurable expiry of AuthZ decisions.

A mesh demo configuration profile is provided too, featuring

  • Orion, MongoDB and httpbin services—httpbin is very useful for testing.
  • Mock DAPS server—again, useful for testing.
  • Ingress/egress routing and telemetry.
  • Routing of AuthZ requests to FiWare's Rancher instance.
  • Mesh dashboards—Kiali & Grafana.

Note that the demo profile is not suitable for high-availability and/or heavy-load scenarios as MongoDB and Orion are not replicated and data are volatile—i.e. there is no persistent storage. However, as it stands, the demo profile is an excellent starting point from which mesh administrators can easily derive an Istio configuration to suit their specific needs.

Project status

After several development cycles, including extensive testing and product hardening, a beta implementation of the Boost architecture is now available with all core features fully developed and ready for early adopters.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.