SlideShare a Scribd company logo
Integrating Apache Camel
with Apache Syncope
Dr. Colm Ó hÉigeartaigh, Talend.
Speaker Introduction
Introducing Apache
Syncope
●
Apache Syncope is an Open Source
system for managing digital
identities in enterprise
environments.
●
Top Level Project @ Apache since
11/2012.
●
Currently 20 committers and 11
PMC members.
●
Latest release: 2.0.1 “Jazz”.
Apache Syncope basics
Architecture
Deployment Options
Persistence
Connectors
●
Maven
archetype
●
Standalone
●
.deb files
●
UI installer
Installation Options
●
Apache Syncope features a rich
REST API based on Apache CXF,
e.g
– List users (JSON):
/syncope/rest/users
– Get authenticated user:
/syncope/rest/users/self
– List groups (JSON):
/syncope/rest/groups
REST API
●
The REST API supports search via
FIQL, e.g.
– Get the user called “verdi”:
syncope/rest/users?
fiql=username==verdi
– See which users were created
since January 01 2016:
syncope/rest/users?
fiql=creationDate=ge=2016-01-
01
REST API search
●
A powerful Java client library is also
available.
Java Client Library
●
Apache Syncope leverages Apache
CXF to generate both WADL and
SWAGGER documents
●
WADL is accessible via the URI
"/syncope/rest/?_wadl".
●
Swagger documentation is also
available via Swagger UI:
“/syncope/swagger/”
REST API documentation
●
Multi-tenancy support via
“Domains”.
●
New Console Layout
●
Support for “Internet of Things”
●
Support for “Realms”.
●
End-user UI.
●
Improved documentation.
●
Apache Camel provisioning engine
New Features in Syncope 2.0.0
The new Apache Camel
Provisioning Engine
●
What if you want to perform some
action when something changes in
Apache Syncope?
●
One option is to poll the REST API of
Apache Syncope.
●
Let’s look at an example using the Java
DSL of Apache Camel to get the “total
count” of users in Syncope.
Polling the REST API
Polling the REST API
●
However, there are obvious
disadvantages to this approach.
– Excessive resource consumption
– Impossible to perform an action immediately on a
change in Syncope
– Impossible to make a provisioning change in
Syncope dependent on the action that you are
performing.
●
We need a better approach!
Polling the REST API
●
A new provisioning manager is available
in Apache Syncope 2.0.0 based on
Apache Camel.
●
Contributed by Giacomo Lamonaco from
Tirasa.
●
USP of Apache Syncope: We can easily
integrate routing rules to any kind of
endpoint with identity management!
Camel Provisioning Manager
●
Natural fit: Open-source integration
framework at Apache
●
XML (Spring) DSL available
●
Flexible and easy to use
routing/mediation rules
●
Supports a huge range of messaging
components
●
Easy to create custom Camel
components.
Why Apache Camel?
●
A set of Camel routes are available by
default which are invoked when the
User, Groups and Any Objects in
question are changed in some way.
●
This allows the administrator to plug in
custom logic on any of these state
changes.
●
The routes can be viewed and edited in
the Admin Console.
Camel Provisioning Manager
Create User Route
Camel Provisioning Manager
●
A new "propagate" Camel component is
available in Syncope 2.0.0.
●
Example: <to
uri="propagate:<propagateType>?
anyTypeKind=<anyTypeKind>&options"/
>
●
PropagateType: create, update, delete,
provision, deprovision, status, suspend,
confirmPasswordReset.
●
AnyTypeKind: USER, GROUP, ANY.
Examples
Example 1
●
Use Case: Send an email to an
administrator when a User is created,
with some details about the created
User in the email.
●
We’ll use mailtrap.io as a test email
server.
●
Extra Jars needed in Syncope:
javax.mail, camel-mail
New “createUser” route
Example 2
●
Use Case: Audit when a user changes a
password.
●
Apache Syncope stores users in internal
storage in a table called "SyncopeUser".
●
Previous passwords associated with the
User are stored in another table (note
no Timestamp):
Example 2
●
The administrator wants a stronger
audit trail…
●
We’ll edit the Camel route to store the
password + Timestamp to a file
associated with that user.
●
For simplicity we won’t salt + hash the
password :-)
●
No additional jars required
New “updateUser” route
Example 3
●
Use Case: Gather information about new
users and process it dynamically
●
Example: Age + location of new users.
●
Decouple applications from Syncope by
using a message solution (Apache
ActiveMQ).
●
When new users are created, we will
modify the default Camel route to send
a message to two queues corresponding
to the age and location of the user.
Example 3
●
We need to copy some jars from Apache
ActiveMQ into Syncope.
●
Also, add the following to the Tomcat lib
directory (called
"camelRoutesContext.xml"):
New “createUser” route
Thank you!
Questions?

More Related Content

What's hot (20)

PPTX
A site in 15 minutes with yii
Andy Kelk
 
PDF
ExtJS: La piattaforma vincente (multiple screens)
Eugenio Minardi
 
PDF
What is IBM Bluemix , Une nouvelle façon de coder , dans le cloud
Patrick Bouillaud
 
PPTX
Serverless Computing With Azure Functions
Jaliya Udagedara
 
PDF
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Software
 
PPTX
Build your own dev tools with salesforce cli plugin generator
Mohith Shrivastava
 
PPTX
Moka .Net Study Week 01
Aliencube Consulting
 
PPTX
Introduction to ASP.NET
Rajkumarsoy
 
PDF
CloudStack-UI at the JAX London Сonference
Olga Nikienko
 
PPTX
WEB SERVER
avinashdevnani
 
PPTX
Introduction to ASP.NET 5
mbaric
 
PPTX
Azure cloud for the web frontend developers
Maxim Salnikov
 
PPTX
Indore mule soft meetup 3
Kirti Gurjar
 
PDF
ExtJS: La piattaforma vincente
Eugenio Minardi
 
PPTX
CI CD Daridabad MuleSoft meetup
Amit Singh
 
PPTX
Share point 2013 and sql server 2012 what to choose
Alexander Meijers
 
PPT
Flask - Python microframework
André Mayer
 
PPTX
Modular Salesforce Application Development Using DX
Mohith Shrivastava
 
PPTX
Salesforce UI API (TDXGG'18)
Rahul Malhotra
 
PDF
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Nicole Szigeti
 
A site in 15 minutes with yii
Andy Kelk
 
ExtJS: La piattaforma vincente (multiple screens)
Eugenio Minardi
 
What is IBM Bluemix , Une nouvelle façon de coder , dans le cloud
Patrick Bouillaud
 
Serverless Computing With Azure Functions
Jaliya Udagedara
 
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Software
 
Build your own dev tools with salesforce cli plugin generator
Mohith Shrivastava
 
Moka .Net Study Week 01
Aliencube Consulting
 
Introduction to ASP.NET
Rajkumarsoy
 
CloudStack-UI at the JAX London Сonference
Olga Nikienko
 
WEB SERVER
avinashdevnani
 
Introduction to ASP.NET 5
mbaric
 
Azure cloud for the web frontend developers
Maxim Salnikov
 
Indore mule soft meetup 3
Kirti Gurjar
 
ExtJS: La piattaforma vincente
Eugenio Minardi
 
CI CD Daridabad MuleSoft meetup
Amit Singh
 
Share point 2013 and sql server 2012 what to choose
Alexander Meijers
 
Flask - Python microframework
André Mayer
 
Modular Salesforce Application Development Using DX
Mohith Shrivastava
 
Salesforce UI API (TDXGG'18)
Rahul Malhotra
 
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Nicole Szigeti
 

Viewers also liked (20)

PPTX
Introduction to Apache Camel
Claus Ibsen
 
ODP
Classic middleware integration for your IoT Gateways integration
Aurélien Pupier
 
ODP
Apache Syncope and Tirasa
Francesco Chicchiriccò
 
PDF
Open Source Identity Management
Radovan Semancik
 
PPTX
IDM Reconciliation
Aidy Tificate
 
PDF
Integration with Camel
Josué Neis
 
ODP
Open source identity management 20121106 - apache con eu
Francesco Chicchiriccò
 
PDF
Developing Microservices with Apache Camel, by Claus Ibsen
Judy Breedlove
 
ODP
Apache Syncope Identity Manager 20120623 confsl
Francesco Chicchiriccò
 
PPTX
Apache camel
Marut Singh
 
PDF
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Bilgin Ibryam
 
PPT
Simplify your integrations with Apache Camel
Kenneth Peeples
 
ODP
Springboot and camel
Deepak Kumar
 
ODP
Developing Microservices with Apache Camel
Claus Ibsen
 
ODP
Microservices with Apache Camel
Claus Ibsen
 
PDF
Fuse integration-services
Christian Posta
 
PPTX
Integrating Microservices with Apache Camel
Christian Posta
 
PPTX
Overview of ESB at Azilen Tech Meetup
Azilen Technologies Pvt. Ltd.
 
PDF
Apache Camel - The integration library
Claus Ibsen
 
PPTX
ApacheCon EU 2016 - Apache Camel the integration library
Claus Ibsen
 
Introduction to Apache Camel
Claus Ibsen
 
Classic middleware integration for your IoT Gateways integration
Aurélien Pupier
 
Apache Syncope and Tirasa
Francesco Chicchiriccò
 
Open Source Identity Management
Radovan Semancik
 
IDM Reconciliation
Aidy Tificate
 
Integration with Camel
Josué Neis
 
Open source identity management 20121106 - apache con eu
Francesco Chicchiriccò
 
Developing Microservices with Apache Camel, by Claus Ibsen
Judy Breedlove
 
Apache Syncope Identity Manager 20120623 confsl
Francesco Chicchiriccò
 
Apache camel
Marut Singh
 
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Bilgin Ibryam
 
Simplify your integrations with Apache Camel
Kenneth Peeples
 
Springboot and camel
Deepak Kumar
 
Developing Microservices with Apache Camel
Claus Ibsen
 
Microservices with Apache Camel
Claus Ibsen
 
Fuse integration-services
Christian Posta
 
Integrating Microservices with Apache Camel
Christian Posta
 
Overview of ESB at Azilen Tech Meetup
Azilen Technologies Pvt. Ltd.
 
Apache Camel - The integration library
Claus Ibsen
 
ApacheCon EU 2016 - Apache Camel the integration library
Claus Ibsen
 
Ad

Similar to Integrating Apache Camel with Apache Syncope (20)

ODP
Apache Syncope: an Apache Camel Integration Proposal
Giacomo Lamonaco
 
ODP
Getting Started with Apache Camel at DevNation 2014
Claus Ibsen
 
PDF
Introduction to Apache Camel.pdf
Knoldus Inc.
 
PPTX
Essential Camel Components
Christian Posta
 
PDF
Getting started with Apache Camel - jDays 2013
Claus Ibsen
 
PDF
Apache Camel Introduction & What's in the box
Claus Ibsen
 
PPTX
Apache Camel framework Presentation and selection of apache camel for various...
chetansharma041
 
PDF
Apache Camel - Stéphane Kay - April 2011
JUG Lausanne
 
PDF
Introduction to Apache Camel
Knoldus Inc.
 
PDF
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
José Román Martín Gil
 
PDF
Introduction To Apache Camel
Knoldus Inc.
 
PDF
Introduction of Apache Camel
Knoldus Inc.
 
ODP
Microservices with apache_camel_barcelona
Claus Ibsen
 
PDF
Apache Camel with Spring boot
Knoldus Inc.
 
PDF
Apache Camel with Spring boot
Knoldus Inc.
 
ODP
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Claus Ibsen
 
PDF
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Claus Ibsen
 
PDF
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Matt Raible
 
ODP
01 apache camel-intro
RedpillLinpro
 
ODP
Getting started with Apache Camel - May 2013
Claus Ibsen
 
Apache Syncope: an Apache Camel Integration Proposal
Giacomo Lamonaco
 
Getting Started with Apache Camel at DevNation 2014
Claus Ibsen
 
Introduction to Apache Camel.pdf
Knoldus Inc.
 
Essential Camel Components
Christian Posta
 
Getting started with Apache Camel - jDays 2013
Claus Ibsen
 
Apache Camel Introduction & What's in the box
Claus Ibsen
 
Apache Camel framework Presentation and selection of apache camel for various...
chetansharma041
 
Apache Camel - Stéphane Kay - April 2011
JUG Lausanne
 
Introduction to Apache Camel
Knoldus Inc.
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
José Román Martín Gil
 
Introduction To Apache Camel
Knoldus Inc.
 
Introduction of Apache Camel
Knoldus Inc.
 
Microservices with apache_camel_barcelona
Claus Ibsen
 
Apache Camel with Spring boot
Knoldus Inc.
 
Apache Camel with Spring boot
Knoldus Inc.
 
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Claus Ibsen
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Claus Ibsen
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Matt Raible
 
01 apache camel-intro
RedpillLinpro
 
Getting started with Apache Camel - May 2013
Claus Ibsen
 
Ad

Recently uploaded (20)

PDF
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
PDF
Salesforce CRM Services.VALiNTRY360
VALiNTRY360
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PDF
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
PDF
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
PDF
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
Revolutionizing Code Modernization with AI
KrzysztofKkol1
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
PPTX
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
PPTX
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
PDF
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
Salesforce CRM Services.VALiNTRY360
VALiNTRY360
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Revolutionizing Code Modernization with AI
KrzysztofKkol1
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 

Integrating Apache Camel with Apache Syncope

  • 1. Integrating Apache Camel with Apache Syncope Dr. Colm Ó hÉigeartaigh, Talend.
  • 4. ● Apache Syncope is an Open Source system for managing digital identities in enterprise environments. ● Top Level Project @ Apache since 11/2012. ● Currently 20 committers and 11 PMC members. ● Latest release: 2.0.1 “Jazz”. Apache Syncope basics
  • 10. ● Apache Syncope features a rich REST API based on Apache CXF, e.g – List users (JSON): /syncope/rest/users – Get authenticated user: /syncope/rest/users/self – List groups (JSON): /syncope/rest/groups REST API
  • 11. ● The REST API supports search via FIQL, e.g. – Get the user called “verdi”: syncope/rest/users? fiql=username==verdi – See which users were created since January 01 2016: syncope/rest/users? fiql=creationDate=ge=2016-01- 01 REST API search
  • 12. ● A powerful Java client library is also available. Java Client Library
  • 13. ● Apache Syncope leverages Apache CXF to generate both WADL and SWAGGER documents ● WADL is accessible via the URI "/syncope/rest/?_wadl". ● Swagger documentation is also available via Swagger UI: “/syncope/swagger/” REST API documentation
  • 14. ● Multi-tenancy support via “Domains”. ● New Console Layout ● Support for “Internet of Things” ● Support for “Realms”. ● End-user UI. ● Improved documentation. ● Apache Camel provisioning engine New Features in Syncope 2.0.0
  • 15. The new Apache Camel Provisioning Engine
  • 16. ● What if you want to perform some action when something changes in Apache Syncope? ● One option is to poll the REST API of Apache Syncope. ● Let’s look at an example using the Java DSL of Apache Camel to get the “total count” of users in Syncope. Polling the REST API
  • 18. ● However, there are obvious disadvantages to this approach. – Excessive resource consumption – Impossible to perform an action immediately on a change in Syncope – Impossible to make a provisioning change in Syncope dependent on the action that you are performing. ● We need a better approach! Polling the REST API
  • 19. ● A new provisioning manager is available in Apache Syncope 2.0.0 based on Apache Camel. ● Contributed by Giacomo Lamonaco from Tirasa. ● USP of Apache Syncope: We can easily integrate routing rules to any kind of endpoint with identity management! Camel Provisioning Manager
  • 20. ● Natural fit: Open-source integration framework at Apache ● XML (Spring) DSL available ● Flexible and easy to use routing/mediation rules ● Supports a huge range of messaging components ● Easy to create custom Camel components. Why Apache Camel?
  • 21. ● A set of Camel routes are available by default which are invoked when the User, Groups and Any Objects in question are changed in some way. ● This allows the administrator to plug in custom logic on any of these state changes. ● The routes can be viewed and edited in the Admin Console. Camel Provisioning Manager
  • 23. Camel Provisioning Manager ● A new "propagate" Camel component is available in Syncope 2.0.0. ● Example: <to uri="propagate:<propagateType>? anyTypeKind=<anyTypeKind>&options"/ > ● PropagateType: create, update, delete, provision, deprovision, status, suspend, confirmPasswordReset. ● AnyTypeKind: USER, GROUP, ANY.
  • 25. Example 1 ● Use Case: Send an email to an administrator when a User is created, with some details about the created User in the email. ● We’ll use mailtrap.io as a test email server. ● Extra Jars needed in Syncope: javax.mail, camel-mail
  • 27. Example 2 ● Use Case: Audit when a user changes a password. ● Apache Syncope stores users in internal storage in a table called "SyncopeUser". ● Previous passwords associated with the User are stored in another table (note no Timestamp):
  • 28. Example 2 ● The administrator wants a stronger audit trail… ● We’ll edit the Camel route to store the password + Timestamp to a file associated with that user. ● For simplicity we won’t salt + hash the password :-) ● No additional jars required
  • 30. Example 3 ● Use Case: Gather information about new users and process it dynamically ● Example: Age + location of new users. ● Decouple applications from Syncope by using a message solution (Apache ActiveMQ). ● When new users are created, we will modify the default Camel route to send a message to two queues corresponding to the age and location of the user.
  • 31. Example 3 ● We need to copy some jars from Apache ActiveMQ into Syncope. ● Also, add the following to the Tomcat lib directory (called "camelRoutesContext.xml"):