Securing FIWARE Architectures
Jason Fox, Senior Technical Evangelist
FIWARE Foundation
Learning Goals
What are Identity Management and Access Control?
Which FIWARE components will you need?
What are Authentication and Authorization?
How do they differ?
What is OAuth2? What flows are supported?
What is a PEP Proxy? What does it do?
What is a PDP and when will I need one?
What terms such as RBAC, PBAC and XACML mean and how are
they used?
1
FIWARE Catalogue
2
2
Data/API
Management
Publication
Monetization
Core Context Management
(Context Broker)
Context
Processing, Analysis, Visualization
Interface to
IoT, Robotics and third party systems
Deployment
tools
2
Development of
Context-aware applications
(Orion, STH-Comet,
Cygnus, QuantumLeap, Draco)
Connection to the
Internet of Things
(IDAS, OpenMTC)
Real-time
processing of
context events
(Perseo)
Handling authorization
and access control to
APIs
(Keyrock, Wilma,
AuthZForce, APInf )
Publication and
Monetization of Context
Information
(CKAN extensions, Data/API
Biz Framework, IDRA)
Creation of
Application Dashboards
(Wirecloud)
Real-time
Processing of media
streams
(Kurento)
Business Intelligence
(Knowage)
Connection to robots
(Fast RTPS,Micro XRCE-DDS)
Big Data
Context Analysis
(Cosmos)
Cloud Edge
(FogFlow)
Documents exchange
(Domibus)
IAM Generic Enablers
Identity & Access Control Management
3
● Keyrock – Identity Management
● Wilma – PEP Proxy
● AuthZForce – Authorization PDP
Keyrock
Main features
4
Web Interface and Rest API for managing Identity
● Users, devices and groups management
● OAuth 2.0 - based Single Sign On
● Application - scoped roles and permissions management
● Support for local and remote PAP/PDP
● JSON Web Tokens (JWT) and Permanent Tokens support
● MySQL / PostgreSQL and external DB driver
● European eID authentication compatibility (CEF eIDAS)
Keyrock : Identity Management
5
● Application - A securable FIWARE application consisting of a
series of microservices
● User - Any human actor interacting with a FIWARE
Application
● Organization - A group of users who can be assigned a series
of rights. Organization Role - An association allowing certain
users to administer all rights
● PEP Proxy - A proxy for use between generic enablers challenging the rights of a user.
● IoT Agent - A proxy between IoT Sensors and the Context Broker
● Role - A descriptive bucket for a set of permissions
assignable to either a single user or an organization.
● Permission - An ability to do something on a
resource within the system
Other Actors
RBAC
Keyrock : Identity Manager
6
● Offers GUI-based or API-based interaction to
administrate users, roles and permissions.
● Allows admins to associate users to roles,
roles to applications etc.
● The API is a simple REST API enabling simple
CRUD actions via the usual HTTP Verbs
● Simple Policy Decision Point (PDP) also
available
OAuth 2 : Common Grant Types
7
User Credentials Grant
● A User wants to log into an application
via a web-app client
● The web-app client is absolutely trusted
Authorization Code Grant
● Application doesn’t need to store or use
passwords directly
● Just needs to confirm who the user is
from a trusted source
OAuth 2.0 is the industry-standard protocol for
authorization https://oauth.net/2/ several
common grant types defined
OAuth 2 : Common Grant Types
8
Implicit Grant
● Retrieves access token directly
● Simplified form, used by some
client side applications
Client Credentials Grant
● No user involved
● Used when the application
itself, not the user needs access
Refresh Token
● Exchange a token for a new one
9
PEP Proxy for securing service backends
● Basic and complex AC policies support
● OAuth 2.0 Access Tokens support
● JSON Web Tokens (JWT) support
● Custom PDP configuration
● Integrated with API Management tools
o APInf & API Umbrella
o Kong
Wilma
Main features
Wilma : PEP Proxy
10
● Offers a Policy Execution Point (PEP) to
protect other microservices
● Request must provide X-Auth-Token
header signifying who (or what) is making
the request.
○ Token is obtained via an OAuth Flow
● PEP Proxy passes information on to a
Policy Decision Point (such a Keyrock) to
make a permit/deny decision on the
request.
● Keyrock PDP adjudicates based on
authentication or Role-based Access
Control RBAC
11
PAP and PDP Server for managing complex AC policies
● XACML-3.0 standard-compliant
● Cloud-ready RESTful ABAC framework with XML optimization
● Multi-tenant REST API for PDP and PAP
● Standards:
o OASIS: XACML 3.0 + Profiles (REST, RBAC, Multiple Decision)
o ISO: Fast Infoset
● Extensible to attribute providers (PIP), functions, etc.
AuthZForce
Main features
Authzforce : Policy-based Access control
12
● PEP Proxy passes information on to a
Policy Decision Point to make a
permit/deny decision on the request.
○ Keyrock declines to adjudicate
○ Authzforce used to make final decision
● Authzforce is an XACML Server offering
Policy-Based Access control PBAC:
○ Policies written in XML
○ Policies can be complex
○ Policies can be altered on the fly
● Use Authzforce for fine grained access
control.
XACML - Defining Complex Access Policies
13
● XACML policies are split into a hierarchy:
○ <PolicySet>
■ <Policy>
● <Rule>
● Each <Rule> within a <Policy> is
evaluated as to whether it should grant
access to a resource
● The overall <Policy> result is defined by
the result of all <Rule> elements processed
in turn.
● Separate <Policy> results are then
evaluated against each other using
combining algorithms define which
<Policy> wins in case of conflict. A <Rule> element consists of a <Target> and a <Condition>.
14
Identity and AC Management
OAuth 2.0 flow
15
Identity and AC Management
Accessing GEs and services
OAuth2 flow
Request
+ token
Check auth
16
Identity and AC Management
Accessing GEs and services
● Level 1: Authentication
● Level 2: Basic Authorization
● Level 3: Advanced Authorization
17
Identity and AC Management
Accessing GEs and services
● Level 1: Authentication
o Check if a user has been authenticated
● Level 2: Basic Authorization
● Level 3: Advanced Authorization
18
Identity and AC Management
Level 1: Authentication
IAM Infrastructure
IdM
Service Application
Service Backend
PEP
OAuth2 flow
Request
+ token
Check token
19
Identity and AC Management
Accessing GEs and services
● Level 1: Authentication
● Level 2: Basic Authorization
o Checks if a user has permissions to access a resource
o HTTP verb + resource path
● Level 3: Advanced Authorization
20
Identity and AC Management
Level 2: Basic Authorization
IAM Infrastructure
IdM
PAP
PDP
Service Application
Service Backend
PEP
OAuth2 flow
Request
+ token
Check token
21
Identity and AC Management
Accessing GEs and services
● Level 1: Authentication
● Level 2: Basic Authorization
● Level 3: Advanced Authorization
o Custom XACML policies
22
Identity and AC Management
Level 3: Advanced Authorization
IAM Infrastructure
IdP
Service Application
Service Backend
PEP
OAuth2 flow
Request
+ token
Check token
PAP
Policies DB
PDP
Check auth
23
● A JSON Web Token (JWT) is a JSON
object defined in RFC 7519 as a safe way
to represent a set of information
between two parties.
● The token is composed of a header, a
payload, and a signature.
Identity and AC Management
JSON Web Tokens
Encoded
Decoded
eID Integration
CEF eIDAS
24
● eIDAS (electronic IDentification, Authentication and trust Services) is an EU
regulation to enable secure and seamless electronic interactions between
businesses, citizens and public authorities.
● Access to European services by national eID
eIDAS
country 1
eIDAS
country 2
eIDAS
country 3
Service
User
country 2
eID
eID Integration
FIWARE Identity Gateway
25
● Integration of FIWARE Security Framework with eIDAS
● Every application registered in Keyrock can be linked to a eIDAS node
o By an OAuth 2.0 – SAML2 gateway
● Users can then authenticate using their national eID
o AC policies based on user eIDAS profile
● Transparent for applications providers
eID Integration
FIWARE Identity Gateway
26
IAM Infrastructure
IdP
Service Application
Oauth 2.0 requests
access-token
User info request
eIDAS
eIDAS
node 1
IdP 1
eIDAS
node 2
IdP 2
…
SAML flow
Authentication
Data Usage Control
27
● Security Framework and Data Usage
Control
o Ensures data sovereignty
o Regulates what is allowed to happen
with the data (future usage).
● Integration with Big Data and Processing
GEs
Summary: Terms
Identity Management ensures that only the right individuals get access to resources
• Usernames, passwords
• Roles and permissions
• etc...
Access Control is the selective restriction of access to resources
Authentication is a mechanism to confirm you are who you claim to be.
i.e. Who are you?
Authorization is a mechanism to ensure you have permission to access a resource
i.e Is X allowed to do Y to Z?
Authorization can be either Role Based (RBAC) or Policy Based (PBAC)
When attempting to gain access you pass the PEP - Policy Execution Point
You are either granted or denied access by a PDP - Policy Decision Point
Administrators can set up rules using a PAP - Policy Administration Point
28
Summary: FIWARE Generic Enablers
Keyrock - Identity Management to know who can do what
• GUI based or API based
• Supports human and machine users (such as IoT Agents)
• Flexible Role-based administration
• Multi-Tenant
• OAuth2 Compliant
• Simple PDP - Authentication or RBAC Authorization
Wilma PEP Proxy - Gatekeeper to confirm permissions prior to access
• User identified via a header within the request
• Links to either Keyrock or Authzforce
• Code can be extended for advanced scenarios
Authzforce - Adjudicator to either permit or deny when given information
• XACML based ruleset can be modified on the fly
• Used in advanced scenarios PBAC Authorization
Alternatives are available e.g. Keystone, Steelskin, IDSA Security
• Always use the most appropriate tools for your use-case
29
Security GEs documentation
30
● FIWARE Catalogue
o https://www.fiware.org/developers/catalogue
● FIWARE Academy
o https://fiware-academy.readthedocs.io/en/latest/index.html
● Identity Management – Keyrock
o Repo: https://github.com/ging/fiware-idm
● PEP Proxy – Wilma
o Repo: https://github.com/ging/fiware-pep-proxy
● Authorization PDP – AuthZForce
o Repo: https://github.com/authzforce/server
Thank you!
http://fiware.org
Follow @FIWARE on Twitter

More Related Content

PPTX
FIWARE Wednesday Webinars - How to Secure FIWARE Architectures
PDF
FIWARE Identity Management and Access Control
PDF
FIWARE Training: Identity Management and Access Control
PDF
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
PDF
FIWARE Identity Management and Access Control
PDF
FIWARE Global Summit - Identity Management and Access Control
PDF
FIWARE Global Summit - Identity Management and Access Control
PDF
apidays Helsinki & North 2023 - API authorization with Open Policy Agent, And...
FIWARE Wednesday Webinars - How to Secure FIWARE Architectures
FIWARE Identity Management and Access Control
FIWARE Training: Identity Management and Access Control
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Identity Management and Access Control
FIWARE Global Summit - Identity Management and Access Control
FIWARE Global Summit - Identity Management and Access Control
apidays Helsinki & North 2023 - API authorization with Open Policy Agent, And...

Similar to Securing FIWARE Architectures (20)

PDF
Distributed Authorization with Open Policy Agent.pdf
PDF
Opa in the api management world
PDF
API Security with OAuth2.0.
PPTX
Cryptzone AppGate Technical Architecture
PPTX
From Cisco ACS to ISE
PPTX
API Security in a Microservice Architecture
PDF
AAA Protocol
PDF
Beyond RAG Partitions: Per-User, Per-Chunk Access Policy
PDF
UMA for ACE
PPTX
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
PDF
PDF
FIWARE Global Summit - Keyrock: Protecting Microservices
PPTX
Fairaccess
PDF
Introduction to Gravitational Teleport
PDF
Implementing Microservices Security Patterns & Protocols with Spring
PPTX
Cloud Identity Management
PPTX
Microservices security - jpmc tech fest 2018
PPT
Securing RESTful API
PPTX
An Authentication and Authorization Architecture for a Microservices World
PPTX
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
Distributed Authorization with Open Policy Agent.pdf
Opa in the api management world
API Security with OAuth2.0.
Cryptzone AppGate Technical Architecture
From Cisco ACS to ISE
API Security in a Microservice Architecture
AAA Protocol
Beyond RAG Partitions: Per-User, Per-Chunk Access Policy
UMA for ACE
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
FIWARE Global Summit - Keyrock: Protecting Microservices
Fairaccess
Introduction to Gravitational Teleport
Implementing Microservices Security Patterns & Protocols with Spring
Cloud Identity Management
Microservices security - jpmc tech fest 2018
Securing RESTful API
An Authentication and Authorization Architecture for a Microservices World
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...

More from FIWARE (20)

PPTX
Behm_Herne_NeMo_akt.pptx
PDF
Katharina Hogrebe Herne Digital Days.pdf
PPTX
Christoph Mertens_IDSA_Introduction to Data Spaces.pptx
PPTX
Behm_Herne_NeMo.pptx
PPTX
Evangelists + iHubs Promo Slides.pptx
PPTX
Lukas Künzel Smart City Operating System.pptx
PPTX
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptx
PPTX
Dennis Wendland_The i4Trust Collaboration Programme.pptx
PPTX
Ulrich Ahle_FIWARE.pptx
PPTX
Aleksandar Vrglevski _FIWARE DACH_OSIH.pptx
PDF
Water Quality - Lukas Kuenzel.pdf
PPTX
Cameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptx
PPTX
FiWareSummit.msGIS-Data-to-Value.2023.06.12.pptx
PPTX
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptx
PPTX
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....
PDF
Abdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdf
PDF
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdf
PPTX
HTAG_Skalierung_Plattform_lokal_final_versand.pptx
PPTX
WE_LoRaWAN _ IoT.pptx
PPTX
EU Opp_Clara Pezuela - German chapter.pptx
Behm_Herne_NeMo_akt.pptx
Katharina Hogrebe Herne Digital Days.pdf
Christoph Mertens_IDSA_Introduction to Data Spaces.pptx
Behm_Herne_NeMo.pptx
Evangelists + iHubs Promo Slides.pptx
Lukas Künzel Smart City Operating System.pptx
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptx
Dennis Wendland_The i4Trust Collaboration Programme.pptx
Ulrich Ahle_FIWARE.pptx
Aleksandar Vrglevski _FIWARE DACH_OSIH.pptx
Water Quality - Lukas Kuenzel.pdf
Cameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptx
FiWareSummit.msGIS-Data-to-Value.2023.06.12.pptx
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptx
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....
Abdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdf
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdf
HTAG_Skalierung_Plattform_lokal_final_versand.pptx
WE_LoRaWAN _ IoT.pptx
EU Opp_Clara Pezuela - German chapter.pptx

Recently uploaded (20)

PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
STKI Israel Market Study 2025 version august
PPTX
Modernising the Digital Integration Hub
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PPTX
The various Industrial Revolutions .pptx
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PPT
What is a Computer? Input Devices /output devices
PPTX
TEXTILE technology diploma scope and career opportunities
DOCX
search engine optimization ppt fir known well about this
PDF
CloudStack 4.21: First Look Webinar slides
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
Credit Without Borders: AI and Financial Inclusion in Bangladesh
Enhancing plagiarism detection using data pre-processing and machine learning...
Flame analysis and combustion estimation using large language and vision assi...
Improvisation in detection of pomegranate leaf disease using transfer learni...
Module 1.ppt Iot fundamentals and Architecture
STKI Israel Market Study 2025 version august
Modernising the Digital Integration Hub
Benefits of Physical activity for teenagers.pptx
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
A review of recent deep learning applications in wood surface defect identifi...
sustainability-14-14877-v2.pddhzftheheeeee
The various Industrial Revolutions .pptx
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
What is a Computer? Input Devices /output devices
TEXTILE technology diploma scope and career opportunities
search engine optimization ppt fir known well about this
CloudStack 4.21: First Look Webinar slides
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
Taming the Chaos: How to Turn Unstructured Data into Decisions
NewMind AI Weekly Chronicles – August ’25 Week III

Securing FIWARE Architectures

  • 1. Securing FIWARE Architectures Jason Fox, Senior Technical Evangelist FIWARE Foundation
  • 2. Learning Goals What are Identity Management and Access Control? Which FIWARE components will you need? What are Authentication and Authorization? How do they differ? What is OAuth2? What flows are supported? What is a PEP Proxy? What does it do? What is a PDP and when will I need one? What terms such as RBAC, PBAC and XACML mean and how are they used? 1
  • 3. FIWARE Catalogue 2 2 Data/API Management Publication Monetization Core Context Management (Context Broker) Context Processing, Analysis, Visualization Interface to IoT, Robotics and third party systems Deployment tools 2 Development of Context-aware applications (Orion, STH-Comet, Cygnus, QuantumLeap, Draco) Connection to the Internet of Things (IDAS, OpenMTC) Real-time processing of context events (Perseo) Handling authorization and access control to APIs (Keyrock, Wilma, AuthZForce, APInf ) Publication and Monetization of Context Information (CKAN extensions, Data/API Biz Framework, IDRA) Creation of Application Dashboards (Wirecloud) Real-time Processing of media streams (Kurento) Business Intelligence (Knowage) Connection to robots (Fast RTPS,Micro XRCE-DDS) Big Data Context Analysis (Cosmos) Cloud Edge (FogFlow) Documents exchange (Domibus)
  • 4. IAM Generic Enablers Identity & Access Control Management 3 ● Keyrock – Identity Management ● Wilma – PEP Proxy ● AuthZForce – Authorization PDP
  • 5. Keyrock Main features 4 Web Interface and Rest API for managing Identity ● Users, devices and groups management ● OAuth 2.0 - based Single Sign On ● Application - scoped roles and permissions management ● Support for local and remote PAP/PDP ● JSON Web Tokens (JWT) and Permanent Tokens support ● MySQL / PostgreSQL and external DB driver ● European eID authentication compatibility (CEF eIDAS)
  • 6. Keyrock : Identity Management 5 ● Application - A securable FIWARE application consisting of a series of microservices ● User - Any human actor interacting with a FIWARE Application ● Organization - A group of users who can be assigned a series of rights. Organization Role - An association allowing certain users to administer all rights ● PEP Proxy - A proxy for use between generic enablers challenging the rights of a user. ● IoT Agent - A proxy between IoT Sensors and the Context Broker ● Role - A descriptive bucket for a set of permissions assignable to either a single user or an organization. ● Permission - An ability to do something on a resource within the system Other Actors RBAC
  • 7. Keyrock : Identity Manager 6 ● Offers GUI-based or API-based interaction to administrate users, roles and permissions. ● Allows admins to associate users to roles, roles to applications etc. ● The API is a simple REST API enabling simple CRUD actions via the usual HTTP Verbs ● Simple Policy Decision Point (PDP) also available
  • 8. OAuth 2 : Common Grant Types 7 User Credentials Grant ● A User wants to log into an application via a web-app client ● The web-app client is absolutely trusted Authorization Code Grant ● Application doesn’t need to store or use passwords directly ● Just needs to confirm who the user is from a trusted source OAuth 2.0 is the industry-standard protocol for authorization https://oauth.net/2/ several common grant types defined
  • 9. OAuth 2 : Common Grant Types 8 Implicit Grant ● Retrieves access token directly ● Simplified form, used by some client side applications Client Credentials Grant ● No user involved ● Used when the application itself, not the user needs access Refresh Token ● Exchange a token for a new one
  • 10. 9 PEP Proxy for securing service backends ● Basic and complex AC policies support ● OAuth 2.0 Access Tokens support ● JSON Web Tokens (JWT) support ● Custom PDP configuration ● Integrated with API Management tools o APInf & API Umbrella o Kong Wilma Main features
  • 11. Wilma : PEP Proxy 10 ● Offers a Policy Execution Point (PEP) to protect other microservices ● Request must provide X-Auth-Token header signifying who (or what) is making the request. ○ Token is obtained via an OAuth Flow ● PEP Proxy passes information on to a Policy Decision Point (such a Keyrock) to make a permit/deny decision on the request. ● Keyrock PDP adjudicates based on authentication or Role-based Access Control RBAC
  • 12. 11 PAP and PDP Server for managing complex AC policies ● XACML-3.0 standard-compliant ● Cloud-ready RESTful ABAC framework with XML optimization ● Multi-tenant REST API for PDP and PAP ● Standards: o OASIS: XACML 3.0 + Profiles (REST, RBAC, Multiple Decision) o ISO: Fast Infoset ● Extensible to attribute providers (PIP), functions, etc. AuthZForce Main features
  • 13. Authzforce : Policy-based Access control 12 ● PEP Proxy passes information on to a Policy Decision Point to make a permit/deny decision on the request. ○ Keyrock declines to adjudicate ○ Authzforce used to make final decision ● Authzforce is an XACML Server offering Policy-Based Access control PBAC: ○ Policies written in XML ○ Policies can be complex ○ Policies can be altered on the fly ● Use Authzforce for fine grained access control.
  • 14. XACML - Defining Complex Access Policies 13 ● XACML policies are split into a hierarchy: ○ <PolicySet> ■ <Policy> ● <Rule> ● Each <Rule> within a <Policy> is evaluated as to whether it should grant access to a resource ● The overall <Policy> result is defined by the result of all <Rule> elements processed in turn. ● Separate <Policy> results are then evaluated against each other using combining algorithms define which <Policy> wins in case of conflict. A <Rule> element consists of a <Target> and a <Condition>.
  • 15. 14 Identity and AC Management OAuth 2.0 flow
  • 16. 15 Identity and AC Management Accessing GEs and services OAuth2 flow Request + token Check auth
  • 17. 16 Identity and AC Management Accessing GEs and services ● Level 1: Authentication ● Level 2: Basic Authorization ● Level 3: Advanced Authorization
  • 18. 17 Identity and AC Management Accessing GEs and services ● Level 1: Authentication o Check if a user has been authenticated ● Level 2: Basic Authorization ● Level 3: Advanced Authorization
  • 19. 18 Identity and AC Management Level 1: Authentication IAM Infrastructure IdM Service Application Service Backend PEP OAuth2 flow Request + token Check token
  • 20. 19 Identity and AC Management Accessing GEs and services ● Level 1: Authentication ● Level 2: Basic Authorization o Checks if a user has permissions to access a resource o HTTP verb + resource path ● Level 3: Advanced Authorization
  • 21. 20 Identity and AC Management Level 2: Basic Authorization IAM Infrastructure IdM PAP PDP Service Application Service Backend PEP OAuth2 flow Request + token Check token
  • 22. 21 Identity and AC Management Accessing GEs and services ● Level 1: Authentication ● Level 2: Basic Authorization ● Level 3: Advanced Authorization o Custom XACML policies
  • 23. 22 Identity and AC Management Level 3: Advanced Authorization IAM Infrastructure IdP Service Application Service Backend PEP OAuth2 flow Request + token Check token PAP Policies DB PDP Check auth
  • 24. 23 ● A JSON Web Token (JWT) is a JSON object defined in RFC 7519 as a safe way to represent a set of information between two parties. ● The token is composed of a header, a payload, and a signature. Identity and AC Management JSON Web Tokens Encoded Decoded
  • 25. eID Integration CEF eIDAS 24 ● eIDAS (electronic IDentification, Authentication and trust Services) is an EU regulation to enable secure and seamless electronic interactions between businesses, citizens and public authorities. ● Access to European services by national eID eIDAS country 1 eIDAS country 2 eIDAS country 3 Service User country 2 eID
  • 26. eID Integration FIWARE Identity Gateway 25 ● Integration of FIWARE Security Framework with eIDAS ● Every application registered in Keyrock can be linked to a eIDAS node o By an OAuth 2.0 – SAML2 gateway ● Users can then authenticate using their national eID o AC policies based on user eIDAS profile ● Transparent for applications providers
  • 27. eID Integration FIWARE Identity Gateway 26 IAM Infrastructure IdP Service Application Oauth 2.0 requests access-token User info request eIDAS eIDAS node 1 IdP 1 eIDAS node 2 IdP 2 … SAML flow Authentication
  • 28. Data Usage Control 27 ● Security Framework and Data Usage Control o Ensures data sovereignty o Regulates what is allowed to happen with the data (future usage). ● Integration with Big Data and Processing GEs
  • 29. Summary: Terms Identity Management ensures that only the right individuals get access to resources • Usernames, passwords • Roles and permissions • etc... Access Control is the selective restriction of access to resources Authentication is a mechanism to confirm you are who you claim to be. i.e. Who are you? Authorization is a mechanism to ensure you have permission to access a resource i.e Is X allowed to do Y to Z? Authorization can be either Role Based (RBAC) or Policy Based (PBAC) When attempting to gain access you pass the PEP - Policy Execution Point You are either granted or denied access by a PDP - Policy Decision Point Administrators can set up rules using a PAP - Policy Administration Point 28
  • 30. Summary: FIWARE Generic Enablers Keyrock - Identity Management to know who can do what • GUI based or API based • Supports human and machine users (such as IoT Agents) • Flexible Role-based administration • Multi-Tenant • OAuth2 Compliant • Simple PDP - Authentication or RBAC Authorization Wilma PEP Proxy - Gatekeeper to confirm permissions prior to access • User identified via a header within the request • Links to either Keyrock or Authzforce • Code can be extended for advanced scenarios Authzforce - Adjudicator to either permit or deny when given information • XACML based ruleset can be modified on the fly • Used in advanced scenarios PBAC Authorization Alternatives are available e.g. Keystone, Steelskin, IDSA Security • Always use the most appropriate tools for your use-case 29
  • 31. Security GEs documentation 30 ● FIWARE Catalogue o https://www.fiware.org/developers/catalogue ● FIWARE Academy o https://fiware-academy.readthedocs.io/en/latest/index.html ● Identity Management – Keyrock o Repo: https://github.com/ging/fiware-idm ● PEP Proxy – Wilma o Repo: https://github.com/ging/fiware-pep-proxy ● Authorization PDP – AuthZForce o Repo: https://github.com/authzforce/server