SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Identity Manager
2
Identity Manager
3
Account
OAuth 2.0
4
OAuth 2.0
Login with
OAuth 2.0
▪ Mechanism to provide applications access to restricted resources
without sharing credentials.
• Applications use access tokens, issued by OAuth providers (e.g.
FIWARE), to access resources.
• OAuth 2.0 specification is designed for use with HTTP.
▪ Roles:
• Resource Owner: Entity capable of granting access to a protected
resource (e.g. end-user)
• Resource Server: Server hosting protected resources.
• Client: Application making protected resource requests on behalf of
the resource owner.
• Authorization Server: The server issuing access tokens to the client.
OAuth 2.0 Architecture
Authorization Code Grant
OAuth Provider
account.lab.fiware.org
Using OAuth2
Authorization Code Grant
Using OAuth2
Authorization Code Grant
Using OAuth2
Authorization Code Grant
Using OAuth2
Authorization Code Grant
OAuth 2.0 Architecture
Implicit Grant
OAuth Provider
account.lab.fiware.org
OAuth 2.0 Architecture
Resource Owner Password Credentials Grant
OAuth Provider
account.lab.fiware.org
OAuth 2.0 Architecture
Client Credentials Grant
OAuth Provider
account.lab.fiware.org
OAuth 2.0 Libraries
▪ http://oauth.net/2/
• PHP, Cocoa, iOS, Java, Ruby, Javascript, Python.
▪ Example using Node.js
• https://github.com/ging/oauth2-example-client
15
OAuth2 credentials in FIWARE Account
Getting protected user info
17
Web App Account
OAuth2 requests flow
access-token
OAuthLibrary
Request user info using access-token
GET /user?access_token={token}
Web Applications and GEs
18
Generic Enabler
Account
Request+
access-token
Oauth2 flows
access-token
OK + user info (roles)
Web App OAuthLibrary
access_token
GET https://GE_URL HTTP/1.1
Host: GE_hostname
X-Auth-Token: access_token
Securing your back-end
19
Back-end
Apps
Account
Request+
access-token
Web App OauthLibrary
PEP Proxy
access-token
OK + user info (roles)
Oauth2 flows
access_token
GET https://PEP_PROXY HTTP/1.1
Host: PEP_PROXY_hostname
X-Auth-Token: access_token
PEP Proxy in FIWARE Lab Account
Securing your back-end
▪ Level 1: Authentication
• Check if a user has a FIWARE account
▪ Level 2: Basic Authorization
• Checks if a user has permissions to access a resource
• HTTP verb + resource path
▪ Level 3: Advanced Authorization
• Custom XACML policies
Level 1: Authentication
22
Back-end
Apps
Account
Request+
access-token
Web App OauthLibrary
PEP Proxy
access-token
OK + user info (roles)
Oauth2 flows
access_token
Level 2: Basic Authorization
23
Back-end
Apps
Account
Request+
access-token
Web App OauthLibrary
PEP Proxy
access-token
OK + user info
Oauth2 flows
access_token
Authz PDP
GE
XACML <Request>:
roles + verb + path
OK
Basic RBAC policies in
XACML
(simple role permissions)
Level 2: Basic Authorization
Level 3: Advanced Authorization
25
Back-end
Apps
Account
Request+
access-token
Web App OauthLibrary
PEP Proxy extension
Oauth2 flows
access_token
Auth PDP
GE
access-token
OK + user info
XACML <Request>:
roles + verb + path
OK
More generic ABAC
policies in XACML
(custom XACML Rules)
Level 3: Advanced Authorization
IoT Authentication
▪ Context Broker
• IoT Management
• Publish / subscribe model
□ Context producers
□ Context consumers
▪Sensors Authentication
• Sensor registration in IdM applications
• Each sensor has its own account
□ Token creation and validation
IoT Authentication
28
Context Broker
Account
OK + user info (roles)
Context
Producer /
Consumer
access-token
update / query
Token creation
IoT Sensors in FIWARE Account
Security GEs
▪ Identity Management – Keyrock
▪ Authorization PDP – AuthZForce
▪ PEP Proxy - Wilma
Security GEs – IdM - KeyRock
▪ Keystone + Horizon +Extensions
▪ APIs
• OAuth2
• Keystone v3
• SCIM 2.0
▪ Source Code
• https://github.com/ging/fi-ware-idm
▪ Documentation
• http://catalogue.fiware.org/enablers/identity-management-keyrock
▪ FIWARE OAuth2 Demo:
• https://github.com/ging/oauth2-example-client
31
Security GEs – PEP Proxy - Wilma
▪ Policy Enforcement Point
▪ Compatible with OAuth2 and Keystone tokens
▪ Source code:
• https://github.com/ging/fi-ware-pep-proxy
▪ Documentation
• http://catalogue.fiware.org/enablers/pep-proxy-wilma
▪ Global instance
32
Security GEs – Authorization PDP – AuthZForce (1/2)
▪ Single Open Spec (Authorization PDP GE) & Open Source
implementation (GEri Authzforce) of 100% XACML-3.0 standard-
compliant and cloud-ready RESTful ABAC framework with XML
optimization
▪ Multi-tenant REST API for PDP(s)/PAP(s)
▪ Standards:
• OASIS: XACML 3.0 + Profiles (REST, RBAC, Multiple Decision)
• ISO: Fast Infoset
▪ Extensible: attribute providers (PIP), functions, etc.
▪ PDP clustering
33
By 2020, the majority of enterprises will use ABAC as the dominant mechanism
to protect critical assets, up from less than five percent today. (Gartner, 2013)
IBAC
ABAC
RBAC
Security GEs – Authorization PDP – AuthZForce (2/2)
▪ FIWARE catalogue: https://catalogue.fiware.org/enablers/authorization-pdp-authzforce
▪ FIWARE Lab image: authzforce-5.4.1
▪ Authorization PDP GE’s APIary: http://docs.authorizationpdp.apiary.io/#
▪ AuthzForce (GEri) source code:
• API spec in WADL: https://github.com/authzforce/rest-api-model
• Implementation: https://github.com/authzforce/server/
▪ AuthzForce distribution
• Ubuntu/Debian-like: .deb / others: .tar.gz on Maven Central:
http://central.maven.org/maven2/org/ow2/authzforce/authzforce-ce-server-dist/
• Docker: https://hub.docker.com/r/fiware/authzforce-ce-server/
▪ Global instance for testing: https://az.lab.fiware.org/authzforce-ce/
▪ Documentation: http://catalogue.fi-ware.org/enablers/access-control-tha-implementation/documentation
34
Thank you!
http://fiware.org
Follow @FIWARE on Twitter
RBAC vs. ABAC
▪ Role explosion example:
• Roles in a bank: Teller, Supervisor, Branch director
• Many bank agencies: Paris, London, Berlin
• What about Teller in Paris, Teller in London, Teller in Berlin, Supervisor in Paris,
Supervisor in London…? → 9 roles!
▪ RBAC ☹ / ABAC ☺: Doctor-patient and patient-record relationships
• Doctor may only access medical records of his/her own patients
If resource.type = ‘MEDICAL_RECORD’
AND action.id in {‘read’,’write’}
AND user.id = medical_record.doctor_id, then Permit
• A patient may only access medical records about him/herself
If resource.type = ‘MEDICAL_RECORD’
AND action.id =‘read’
AND user.id = medical_record.patient_id, then Permit
▪ RBAC ☹ / ABAC ☺: Dynamic separation of duties
• User may approve purchase order only if not assigned to him/herself (approver ≠
assignee)
• ABAC-style (deny unless permit):
If resource.type = ‘PURCHASE_ORDER’
AND action.id = ‘approve’
AND user.id ≠ purchase_order.assignee, then Permit
XACML Policy Language
XACML Request
XACML Request
….
Category subject
Category x Attribute Y
Attribute Type
(string, date, integer, …)
Category resource
Category action
Attribute
Y
Attribute Value
(romain, 1970-01-01,
…)
Attribute ID
(subject-id, subject-role,
…)
Category n
XACML v3.0 vs. v2.0: upgrade!
▪ More advanced and flexible Target matching capabilities
▪ Custom attribute categories (limited to Resource, Action,
Environment and a few Subject categories in v2.0)
▪ Dynamic Obligations using variables evaluated at runtime (limited to
static values in v2.0) from request context after possible
transformations by XACML functions
▪ Obligations in Rules (limited to Policies and PolicySets in v2.0)
FIWARE ABAC Architecture

Weitere ähnliche Inhalte

Was ist angesagt?

OpenId Connect Protocol
OpenId Connect ProtocolOpenId Connect Protocol
OpenId Connect ProtocolMichael Furman
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak Abhishek Koserwal
 
OAuth2 Protocol with Grails Spring Security
OAuth2 Protocol with Grails Spring SecurityOAuth2 Protocol with Grails Spring Security
OAuth2 Protocol with Grails Spring SecurityNexThoughts Technologies
 
Identity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityIdentity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityRyan Dawson
 
Keycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler WebinarKeycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler Webinarmarcuschristie
 
Hashitalks 2021 - How the Dynamic Duo of Vault and Puppet Tame SSL Certificates
Hashitalks 2021 - How the Dynamic Duo of Vault and Puppet Tame SSL CertificatesHashitalks 2021 - How the Dynamic Duo of Vault and Puppet Tame SSL Certificates
Hashitalks 2021 - How the Dynamic Duo of Vault and Puppet Tame SSL CertificatesNick Maludy
 
Spring security oauth2
Spring security oauth2Spring security oauth2
Spring security oauth2axykim00
 
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...Ioan Eugen Stan
 
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA Will Tran
 
OpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for BeginnersOpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for BeginnersSalesforce Developers
 
Web API 2 Token Based Authentication
Web API 2 Token Based AuthenticationWeb API 2 Token Based Authentication
Web API 2 Token Based Authenticationjeremysbrown
 
Spring4 security oauth2
Spring4 security oauth2Spring4 security oauth2
Spring4 security oauth2Sang Shin
 
Openid & Oauth: An Introduction
Openid & Oauth: An IntroductionOpenid & Oauth: An Introduction
Openid & Oauth: An IntroductionSteve Ivy
 
How to Install and Configure your own Identity Manager GE
How to Install and Configure your own Identity Manager GEHow to Install and Configure your own Identity Manager GE
How to Install and Configure your own Identity Manager GEFederico Fernández Moreno
 
CIS 2015 Extreme OpenID Connect - John Bradley
CIS 2015 Extreme OpenID Connect - John BradleyCIS 2015 Extreme OpenID Connect - John Bradley
CIS 2015 Extreme OpenID Connect - John BradleyCloudIDSummit
 
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET CoreVladimir Bychkov
 
Introduction to vault
Introduction to vaultIntroduction to vault
Introduction to vaultHenrik Høegh
 
Spring4 security oauth2
Spring4 security oauth2Spring4 security oauth2
Spring4 security oauth2axykim00
 
OpenID vs OAuth - Identity on the Web
OpenID vs OAuth - Identity on the WebOpenID vs OAuth - Identity on the Web
OpenID vs OAuth - Identity on the WebRichard Metzler
 

Was ist angesagt? (20)

OpenId Connect Protocol
OpenId Connect ProtocolOpenId Connect Protocol
OpenId Connect Protocol
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak
 
OAuth2 Protocol with Grails Spring Security
OAuth2 Protocol with Grails Spring SecurityOAuth2 Protocol with Grails Spring Security
OAuth2 Protocol with Grails Spring Security
 
Identity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityIdentity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibility
 
UMA for ACE
UMA for ACEUMA for ACE
UMA for ACE
 
Keycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler WebinarKeycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler Webinar
 
Hashitalks 2021 - How the Dynamic Duo of Vault and Puppet Tame SSL Certificates
Hashitalks 2021 - How the Dynamic Duo of Vault and Puppet Tame SSL CertificatesHashitalks 2021 - How the Dynamic Duo of Vault and Puppet Tame SSL Certificates
Hashitalks 2021 - How the Dynamic Duo of Vault and Puppet Tame SSL Certificates
 
Spring security oauth2
Spring security oauth2Spring security oauth2
Spring security oauth2
 
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
 
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
 
OpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for BeginnersOpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for Beginners
 
Web API 2 Token Based Authentication
Web API 2 Token Based AuthenticationWeb API 2 Token Based Authentication
Web API 2 Token Based Authentication
 
Spring4 security oauth2
Spring4 security oauth2Spring4 security oauth2
Spring4 security oauth2
 
Openid & Oauth: An Introduction
Openid & Oauth: An IntroductionOpenid & Oauth: An Introduction
Openid & Oauth: An Introduction
 
How to Install and Configure your own Identity Manager GE
How to Install and Configure your own Identity Manager GEHow to Install and Configure your own Identity Manager GE
How to Install and Configure your own Identity Manager GE
 
CIS 2015 Extreme OpenID Connect - John Bradley
CIS 2015 Extreme OpenID Connect - John BradleyCIS 2015 Extreme OpenID Connect - John Bradley
CIS 2015 Extreme OpenID Connect - John Bradley
 
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
 
Introduction to vault
Introduction to vaultIntroduction to vault
Introduction to vault
 
Spring4 security oauth2
Spring4 security oauth2Spring4 security oauth2
Spring4 security oauth2
 
OpenID vs OAuth - Identity on the Web
OpenID vs OAuth - Identity on the WebOpenID vs OAuth - Identity on the Web
OpenID vs OAuth - Identity on the Web
 

Ähnlich wie Adding identity management and access control to your app

FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...FIWARE
 
Adding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your ApplicationAdding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your ApplicationFernando Lopez Aguilar
 
FIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE
 
FIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFIWARE
 
OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth - Don’t Throw the Baby Out with the Bathwater OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth - Don’t Throw the Baby Out with the Bathwater Apigee | Google Cloud
 
ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2Rodrigo Cândido da Silva
 
Mobile Authentication - Onboarding, best practices & anti-patterns
Mobile Authentication - Onboarding, best practices & anti-patternsMobile Authentication - Onboarding, best practices & anti-patterns
Mobile Authentication - Onboarding, best practices & anti-patternsPieter Ennes
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET CoreNETUserGroupBern
 
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"Andreas Falk
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...CA API Management
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
How to authenticate users in your apps using FI-WARE Account - Introduction
How to authenticate users in your apps using FI-WARE Account - IntroductionHow to authenticate users in your apps using FI-WARE Account - Introduction
How to authenticate users in your apps using FI-WARE Account - IntroductionJavier Cerviño
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuthWei-Tsung Su
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Atlassian
 

Ähnlich wie Adding identity management and access control to your app (20)

FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
 
Adding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your ApplicationAdding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your Application
 
FIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access Control
 
FIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFIWARE Identity Management and Access Control
FIWARE Identity Management and Access Control
 
OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth - Don’t Throw the Baby Out with the Bathwater OAuth - Don’t Throw the Baby Out with the Bathwater
OAuth - Don’t Throw the Baby Out with the Bathwater
 
Oauth2.0
Oauth2.0Oauth2.0
Oauth2.0
 
Id fiware upm-dit
Id fiware  upm-ditId fiware  upm-dit
Id fiware upm-dit
 
Api security
Api security Api security
Api security
 
ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2
 
Mobile Authentication - Onboarding, best practices & anti-patterns
Mobile Authentication - Onboarding, best practices & anti-patternsMobile Authentication - Onboarding, best practices & anti-patterns
Mobile Authentication - Onboarding, best practices & anti-patterns
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET Core
 
Externalized Spring Boot App Configuration
Externalized  Spring Boot App ConfigurationExternalized  Spring Boot App Configuration
Externalized Spring Boot App Configuration
 
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
 
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...Understanding Identity in the World of Web APIs – Ronnie Mitra,  API Architec...
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
How to authenticate users in your apps using FI-WARE Account - Introduction
How to authenticate users in your apps using FI-WARE Account - IntroductionHow to authenticate users in your apps using FI-WARE Account - Introduction
How to authenticate users in your apps using FI-WARE Account - Introduction
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
 
FIware Identity Manager
FIware Identity ManagerFIware Identity Manager
FIware Identity Manager
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 

Mehr von Álvaro Alonso González

KeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREKeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREÁlvaro Alonso González
 
Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresÁlvaro Alonso González
 
Lesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portalLesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portalÁlvaro Alonso González
 
Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure Álvaro Alonso González
 
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.Álvaro Alonso González
 
Cloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal OverviewCloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal OverviewÁlvaro Alonso González
 
Cloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an InstanceCloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an InstanceÁlvaro Alonso González
 
Setting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Setting Up your Cloud Environment using the FIWARE Lab Cloud PortalSetting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Setting Up your Cloud Environment using the FIWARE Lab Cloud PortalÁlvaro Alonso González
 

Mehr von Álvaro Alonso González (20)

KeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREKeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
 
Curso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzadosCurso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzados
 
Curso AngularJS - 6. formularios
Curso AngularJS - 6. formulariosCurso AngularJS - 6. formularios
Curso AngularJS - 6. formularios
 
Curso AngularJS - 5. rutas
Curso AngularJS - 5. rutasCurso AngularJS - 5. rutas
Curso AngularJS - 5. rutas
 
Curso AngularJS - 4. filtros y servicios
Curso AngularJS - 4. filtros y serviciosCurso AngularJS - 4. filtros y servicios
Curso AngularJS - 4. filtros y servicios
 
Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladores
 
Curso AngularJS - 1. introducción
Curso AngularJS - 1. introducciónCurso AngularJS - 1. introducción
Curso AngularJS - 1. introducción
 
Curso AngularJS - 2. conceptos básicos
Curso AngularJS - 2. conceptos básicosCurso AngularJS - 2. conceptos básicos
Curso AngularJS - 2. conceptos básicos
 
Lesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portalLesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portal
 
Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure
 
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
 
Keyrock - Lesson 1. Introduction
Keyrock - Lesson 1. IntroductionKeyrock - Lesson 1. Introduction
Keyrock - Lesson 1. Introduction
 
Cloud Portal - Lesson 5. Advanced tasks
Cloud Portal - Lesson 5. Advanced tasksCloud Portal - Lesson 5. Advanced tasks
Cloud Portal - Lesson 5. Advanced tasks
 
Cloud Portal - Lesson 4. Managing Storage
Cloud Portal - Lesson 4. Managing StorageCloud Portal - Lesson 4. Managing Storage
Cloud Portal - Lesson 4. Managing Storage
 
Cloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal OverviewCloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal Overview
 
Cloud Portal - Lesson 1. Introduction
Cloud Portal - Lesson 1. IntroductionCloud Portal - Lesson 1. Introduction
Cloud Portal - Lesson 1. Introduction
 
Cloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an InstanceCloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an Instance
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
 
Introducción al Protocolo OAuth 2.0
Introducción al Protocolo OAuth 2.0Introducción al Protocolo OAuth 2.0
Introducción al Protocolo OAuth 2.0
 
Setting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Setting Up your Cloud Environment using the FIWARE Lab Cloud PortalSetting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Setting Up your Cloud Environment using the FIWARE Lab Cloud Portal
 

Kürzlich hochgeladen

08448380779 Call Girls In Shahdara Women Seeking Men
08448380779 Call Girls In Shahdara Women Seeking Men08448380779 Call Girls In Shahdara Women Seeking Men
08448380779 Call Girls In Shahdara Women Seeking MenDelhi Call girls
 
Top 10 Traditional Indian Handicrafts.pptx
Top 10 Traditional Indian Handicrafts.pptxTop 10 Traditional Indian Handicrafts.pptx
Top 10 Traditional Indian Handicrafts.pptxdishha99
 
BERMUDA Triangle the mystery of life.pptx
BERMUDA Triangle the mystery of life.pptxBERMUDA Triangle the mystery of life.pptx
BERMUDA Triangle the mystery of life.pptxseribangash
 
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779Delhi Call girls
 
Genesis 1:6 || Meditate the Scripture daily verse by verse
Genesis 1:6  ||  Meditate the Scripture daily verse by verseGenesis 1:6  ||  Meditate the Scripture daily verse by verse
Genesis 1:6 || Meditate the Scripture daily verse by versemaricelcanoynuay
 
char Dham yatra, Uttarakhand tourism.pptx
char Dham yatra, Uttarakhand tourism.pptxchar Dham yatra, Uttarakhand tourism.pptx
char Dham yatra, Uttarakhand tourism.pptxpalakdigital7
 
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...Apsara Of India
 
DARK TRAVEL AGENCY presented by Khuda Bux
DARK TRAVEL AGENCY presented by Khuda BuxDARK TRAVEL AGENCY presented by Khuda Bux
DARK TRAVEL AGENCY presented by Khuda BuxBeEducate
 
08448380779 Call Girls In Chirag Enclave Women Seeking Men
08448380779 Call Girls In Chirag Enclave Women Seeking Men08448380779 Call Girls In Chirag Enclave Women Seeking Men
08448380779 Call Girls In Chirag Enclave Women Seeking MenDelhi Call girls
 
💕📲09602870969💓Girl Escort Services Udaipur Call Girls in Chittorgarh Haldighati
💕📲09602870969💓Girl Escort Services Udaipur Call Girls in Chittorgarh Haldighati💕📲09602870969💓Girl Escort Services Udaipur Call Girls in Chittorgarh Haldighati
💕📲09602870969💓Girl Escort Services Udaipur Call Girls in Chittorgarh HaldighatiApsara Of India
 
Hire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
Hire 💕 8617697112 Champawat Call Girls Service Call Girls AgencyHire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
Hire 💕 8617697112 Champawat Call Girls Service Call Girls AgencyNitya salvi
 
08448380779 Call Girls In Chhattarpur Women Seeking Men
08448380779 Call Girls In Chhattarpur Women Seeking Men08448380779 Call Girls In Chhattarpur Women Seeking Men
08448380779 Call Girls In Chhattarpur Women Seeking MenDelhi Call girls
 
best weekend places near delhi where you should visit.pdf
best weekend places near delhi where you should visit.pdfbest weekend places near delhi where you should visit.pdf
best weekend places near delhi where you should visit.pdftour guide
 
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday SafarisKibera Holiday Safaris Safaris
 
How to Get Unpublished Flight Deals and Discounts?
How to Get Unpublished Flight Deals and Discounts?How to Get Unpublished Flight Deals and Discounts?
How to Get Unpublished Flight Deals and Discounts?FlyFairTravels
 
Study Consultants in Lahore || 📞03094429236
Study Consultants in Lahore || 📞03094429236Study Consultants in Lahore || 📞03094429236
Study Consultants in Lahore || 📞03094429236Sherazi Tours
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Shahdara Women Seeking Men
08448380779 Call Girls In Shahdara Women Seeking Men08448380779 Call Girls In Shahdara Women Seeking Men
08448380779 Call Girls In Shahdara Women Seeking Men
 
Top 10 Traditional Indian Handicrafts.pptx
Top 10 Traditional Indian Handicrafts.pptxTop 10 Traditional Indian Handicrafts.pptx
Top 10 Traditional Indian Handicrafts.pptx
 
BERMUDA Triangle the mystery of life.pptx
BERMUDA Triangle the mystery of life.pptxBERMUDA Triangle the mystery of life.pptx
BERMUDA Triangle the mystery of life.pptx
 
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
 
Genesis 1:6 || Meditate the Scripture daily verse by verse
Genesis 1:6  ||  Meditate the Scripture daily verse by verseGenesis 1:6  ||  Meditate the Scripture daily verse by verse
Genesis 1:6 || Meditate the Scripture daily verse by verse
 
char Dham yatra, Uttarakhand tourism.pptx
char Dham yatra, Uttarakhand tourism.pptxchar Dham yatra, Uttarakhand tourism.pptx
char Dham yatra, Uttarakhand tourism.pptx
 
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
 
DARK TRAVEL AGENCY presented by Khuda Bux
DARK TRAVEL AGENCY presented by Khuda BuxDARK TRAVEL AGENCY presented by Khuda Bux
DARK TRAVEL AGENCY presented by Khuda Bux
 
Rohini Sector 18 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 18 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 18 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 18 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
08448380779 Call Girls In Chirag Enclave Women Seeking Men
08448380779 Call Girls In Chirag Enclave Women Seeking Men08448380779 Call Girls In Chirag Enclave Women Seeking Men
08448380779 Call Girls In Chirag Enclave Women Seeking Men
 
💕📲09602870969💓Girl Escort Services Udaipur Call Girls in Chittorgarh Haldighati
💕📲09602870969💓Girl Escort Services Udaipur Call Girls in Chittorgarh Haldighati💕📲09602870969💓Girl Escort Services Udaipur Call Girls in Chittorgarh Haldighati
💕📲09602870969💓Girl Escort Services Udaipur Call Girls in Chittorgarh Haldighati
 
Call Girls In Munirka 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In Munirka 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In Munirka 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In Munirka 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
Hire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
Hire 💕 8617697112 Champawat Call Girls Service Call Girls AgencyHire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
Hire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
 
Call Girls Service !! Indirapuram!! @9999965857 Delhi 🫦 No Advance VVVIP 🍎 S...
Call Girls Service !! Indirapuram!! @9999965857 Delhi 🫦 No Advance  VVVIP 🍎 S...Call Girls Service !! Indirapuram!! @9999965857 Delhi 🫦 No Advance  VVVIP 🍎 S...
Call Girls Service !! Indirapuram!! @9999965857 Delhi 🫦 No Advance VVVIP 🍎 S...
 
08448380779 Call Girls In Chhattarpur Women Seeking Men
08448380779 Call Girls In Chhattarpur Women Seeking Men08448380779 Call Girls In Chhattarpur Women Seeking Men
08448380779 Call Girls In Chhattarpur Women Seeking Men
 
Call Girls 🫤 Connaught Place ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ...
Call Girls 🫤 Connaught Place ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ...Call Girls 🫤 Connaught Place ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ...
Call Girls 🫤 Connaught Place ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ...
 
best weekend places near delhi where you should visit.pdf
best weekend places near delhi where you should visit.pdfbest weekend places near delhi where you should visit.pdf
best weekend places near delhi where you should visit.pdf
 
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
 
How to Get Unpublished Flight Deals and Discounts?
How to Get Unpublished Flight Deals and Discounts?How to Get Unpublished Flight Deals and Discounts?
How to Get Unpublished Flight Deals and Discounts?
 
Study Consultants in Lahore || 📞03094429236
Study Consultants in Lahore || 📞03094429236Study Consultants in Lahore || 📞03094429236
Study Consultants in Lahore || 📞03094429236
 

Adding identity management and access control to your app

  • 1.
  • 6. OAuth 2.0 ▪ Mechanism to provide applications access to restricted resources without sharing credentials. • Applications use access tokens, issued by OAuth providers (e.g. FIWARE), to access resources. • OAuth 2.0 specification is designed for use with HTTP. ▪ Roles: • Resource Owner: Entity capable of granting access to a protected resource (e.g. end-user) • Resource Server: Server hosting protected resources. • Client: Application making protected resource requests on behalf of the resource owner. • Authorization Server: The server issuing access tokens to the client.
  • 7. OAuth 2.0 Architecture Authorization Code Grant OAuth Provider account.lab.fiware.org
  • 12. OAuth 2.0 Architecture Implicit Grant OAuth Provider account.lab.fiware.org
  • 13. OAuth 2.0 Architecture Resource Owner Password Credentials Grant OAuth Provider account.lab.fiware.org
  • 14. OAuth 2.0 Architecture Client Credentials Grant OAuth Provider account.lab.fiware.org
  • 15. OAuth 2.0 Libraries ▪ http://oauth.net/2/ • PHP, Cocoa, iOS, Java, Ruby, Javascript, Python. ▪ Example using Node.js • https://github.com/ging/oauth2-example-client 15
  • 16. OAuth2 credentials in FIWARE Account
  • 17. Getting protected user info 17 Web App Account OAuth2 requests flow access-token OAuthLibrary Request user info using access-token GET /user?access_token={token}
  • 18. Web Applications and GEs 18 Generic Enabler Account Request+ access-token Oauth2 flows access-token OK + user info (roles) Web App OAuthLibrary access_token GET https://GE_URL HTTP/1.1 Host: GE_hostname X-Auth-Token: access_token
  • 19. Securing your back-end 19 Back-end Apps Account Request+ access-token Web App OauthLibrary PEP Proxy access-token OK + user info (roles) Oauth2 flows access_token GET https://PEP_PROXY HTTP/1.1 Host: PEP_PROXY_hostname X-Auth-Token: access_token
  • 20. PEP Proxy in FIWARE Lab Account
  • 21. Securing your back-end ▪ Level 1: Authentication • Check if a user has a FIWARE account ▪ Level 2: Basic Authorization • Checks if a user has permissions to access a resource • HTTP verb + resource path ▪ Level 3: Advanced Authorization • Custom XACML policies
  • 22. Level 1: Authentication 22 Back-end Apps Account Request+ access-token Web App OauthLibrary PEP Proxy access-token OK + user info (roles) Oauth2 flows access_token
  • 23. Level 2: Basic Authorization 23 Back-end Apps Account Request+ access-token Web App OauthLibrary PEP Proxy access-token OK + user info Oauth2 flows access_token Authz PDP GE XACML <Request>: roles + verb + path OK Basic RBAC policies in XACML (simple role permissions)
  • 24. Level 2: Basic Authorization
  • 25. Level 3: Advanced Authorization 25 Back-end Apps Account Request+ access-token Web App OauthLibrary PEP Proxy extension Oauth2 flows access_token Auth PDP GE access-token OK + user info XACML <Request>: roles + verb + path OK More generic ABAC policies in XACML (custom XACML Rules)
  • 26. Level 3: Advanced Authorization
  • 27. IoT Authentication ▪ Context Broker • IoT Management • Publish / subscribe model □ Context producers □ Context consumers ▪Sensors Authentication • Sensor registration in IdM applications • Each sensor has its own account □ Token creation and validation
  • 28. IoT Authentication 28 Context Broker Account OK + user info (roles) Context Producer / Consumer access-token update / query Token creation
  • 29. IoT Sensors in FIWARE Account
  • 30. Security GEs ▪ Identity Management – Keyrock ▪ Authorization PDP – AuthZForce ▪ PEP Proxy - Wilma
  • 31. Security GEs – IdM - KeyRock ▪ Keystone + Horizon +Extensions ▪ APIs • OAuth2 • Keystone v3 • SCIM 2.0 ▪ Source Code • https://github.com/ging/fi-ware-idm ▪ Documentation • http://catalogue.fiware.org/enablers/identity-management-keyrock ▪ FIWARE OAuth2 Demo: • https://github.com/ging/oauth2-example-client 31
  • 32. Security GEs – PEP Proxy - Wilma ▪ Policy Enforcement Point ▪ Compatible with OAuth2 and Keystone tokens ▪ Source code: • https://github.com/ging/fi-ware-pep-proxy ▪ Documentation • http://catalogue.fiware.org/enablers/pep-proxy-wilma ▪ Global instance 32
  • 33. Security GEs – Authorization PDP – AuthZForce (1/2) ▪ Single Open Spec (Authorization PDP GE) & Open Source implementation (GEri Authzforce) of 100% XACML-3.0 standard- compliant and cloud-ready RESTful ABAC framework with XML optimization ▪ Multi-tenant REST API for PDP(s)/PAP(s) ▪ Standards: • OASIS: XACML 3.0 + Profiles (REST, RBAC, Multiple Decision) • ISO: Fast Infoset ▪ Extensible: attribute providers (PIP), functions, etc. ▪ PDP clustering 33 By 2020, the majority of enterprises will use ABAC as the dominant mechanism to protect critical assets, up from less than five percent today. (Gartner, 2013) IBAC ABAC RBAC
  • 34. Security GEs – Authorization PDP – AuthZForce (2/2) ▪ FIWARE catalogue: https://catalogue.fiware.org/enablers/authorization-pdp-authzforce ▪ FIWARE Lab image: authzforce-5.4.1 ▪ Authorization PDP GE’s APIary: http://docs.authorizationpdp.apiary.io/# ▪ AuthzForce (GEri) source code: • API spec in WADL: https://github.com/authzforce/rest-api-model • Implementation: https://github.com/authzforce/server/ ▪ AuthzForce distribution • Ubuntu/Debian-like: .deb / others: .tar.gz on Maven Central: http://central.maven.org/maven2/org/ow2/authzforce/authzforce-ce-server-dist/ • Docker: https://hub.docker.com/r/fiware/authzforce-ce-server/ ▪ Global instance for testing: https://az.lab.fiware.org/authzforce-ce/ ▪ Documentation: http://catalogue.fi-ware.org/enablers/access-control-tha-implementation/documentation 34
  • 36. RBAC vs. ABAC ▪ Role explosion example: • Roles in a bank: Teller, Supervisor, Branch director • Many bank agencies: Paris, London, Berlin • What about Teller in Paris, Teller in London, Teller in Berlin, Supervisor in Paris, Supervisor in London…? → 9 roles! ▪ RBAC ☹ / ABAC ☺: Doctor-patient and patient-record relationships • Doctor may only access medical records of his/her own patients If resource.type = ‘MEDICAL_RECORD’ AND action.id in {‘read’,’write’} AND user.id = medical_record.doctor_id, then Permit • A patient may only access medical records about him/herself If resource.type = ‘MEDICAL_RECORD’ AND action.id =‘read’ AND user.id = medical_record.patient_id, then Permit ▪ RBAC ☹ / ABAC ☺: Dynamic separation of duties • User may approve purchase order only if not assigned to him/herself (approver ≠ assignee) • ABAC-style (deny unless permit): If resource.type = ‘PURCHASE_ORDER’ AND action.id = ‘approve’ AND user.id ≠ purchase_order.assignee, then Permit
  • 38. XACML Request XACML Request …. Category subject Category x Attribute Y Attribute Type (string, date, integer, …) Category resource Category action Attribute Y Attribute Value (romain, 1970-01-01, …) Attribute ID (subject-id, subject-role, …) Category n
  • 39. XACML v3.0 vs. v2.0: upgrade! ▪ More advanced and flexible Target matching capabilities ▪ Custom attribute categories (limited to Resource, Action, Environment and a few Subject categories in v2.0) ▪ Dynamic Obligations using variables evaluated at runtime (limited to static values in v2.0) from request context after possible transformations by XACML functions ▪ Obligations in Rules (limited to Policies and PolicySets in v2.0)