SlideShare a Scribd company logo
Apache Syncope IdM 2.0
Enduser UI
Andrea Patricelli, Software Engineer, Tirasa s.r.l
Apache Syncope
committer since 2013
→ PMC member in
October 2016
➔ Apache Syncope dev since 1.1.X release
➔ Apache Syncope Enduser UI
➔ Syncope Docker
https://github.com/andrea-patricelli/syncope-docker
About me
Agenda
Introduction to the IdM world
Who is the end user and why a console
Enduser UI: from 1.0 to 2.0
How we made it
Innovations brought
Future perspectives
What's IdM about?
● Data records that contains a collection
of data about a person
● “Data record” → Account
● “A person” → Identity
● The joint effort of business
● Identity Stores
○ Storage of user information
● Provisioning
○ Synchronize account data across identity stores and a
broad range of data formats, models, meanings and
purposes
● Access Management
○ Security mechanisms that take place when a user is
accessing a specific system or functionality
IdM technologies
IdM in practice: before...
IdM in practice: ...after!
Apache Syncope
● Inception by Tirasa in 2010
● Entered ASF incubator in February 2012
● Graduated as TLP in November 2012
● Active community
○ 18 committers, 6 contributors
○ ~200 mailing list subscribers, stable traffic
○ 37 releases
Who is the end user
“Users whose identities are stored into Apache Syncope IdM, but that are not
directly involved into other identities (administration) management flow. They
interact with Apache Syncope IDM only to manage their own profile.
The set of the operations provided to end users can be addressed as self-
management.”
➔ Intuitive and Easy-to-use admin console developed
with Apache Wicket.
➔ Complete frontend interface of all Apache Syncope
features.
➔ Role-based access to the console features:
user can access to console sections only if provided
with determined entitlements associated
to admin specified roles.
Once upon a time the Console 1.X...
And “simple” end users?
Console 1.X for self-management
Introduced since Apache Syncope 1.0.0
Self-management as integrating part of the Console.
Enabled/Disabled through Apache Syncope properties, accessible from the same
Console.
★ Self-registration
★ Self-update
★ Password reset
Once upon a time the Enduser UI 1.X
Isn’t this enough?
The need for a more dedicated tool was raising
➔ Need to have an application completely separated from the Console.
➔ Self-management operations must be unrelated to the Core.
➔ Enduser UI should be an highly customizable component, though you can use it as-
is.
➔ You can provide it with Syncope or not (i.e enable or disable self-management
features).
➔ Enduser UI should also provide a certain level of configurability (we will clarify
later...)
Yes but...
A client-side application very near to the end-user would bring (generally
speaking) some not negligible advantages:
★ Parsed by the user’s browser.
★ Reacts to user input.
★ Can be seen and edited by the user in full.
★ Cannot store anything that lasts beyond a page refresh (except cookies).
★ Cannot read files off of a server directly, must communicate
via HTTP requests.
Why not a client-side JS application?
It would have guaranteed all requirements needed
High customizability
Decoupling of the self-management features from the Console and the
Core.
Modularization of self-management features
Better fit to customers needs about frontend console appearance
From Apache Syncope architectural POV
Enduser console 2.0: how we thought it...
...how we made it
AngularJS Frontend
Development challenges
It was not sunshine and rainbows…
Integration AngularJS → Apache Wicket little explored
E2E testing integration with Maven lifecycle
EndUser UI and Admin console: sometimes similar
requirements but distinct implementations because of
different technologies
Main functional requirements...
➔ Login page simple and linear like admin Console one
➔ Wizard-like form
➔ Form validation with custom messages
➔ Session and authentication management
➔ Integration Tests suite, integrated into Maven lifecycle
➔ User Self create/update
…and not functional
➔ Highly customizable interface
➔ Easy to use
➔ Enduser console should be a “proposal”, from which the customer
can start to develop his own UI
➔ Should implement all the functionalities required to self-
management → not incomplete.
➔ Follow admin console evolution and replicate some core
Enduser UI innovations: Usage
★ Interactive and intelligent breadcrumb
★ Configurable wizard panels, possibility to add/remove
them
★ Configurable validation
★ Configurable Password strength validator
★ Easy to configure i18n
“playgound zone” at syncope-vm.apache.org:9080/syncope-enduser
Enduser UI innovations: Security
★ Authentication delegated to Apache Syncope
★ XSRF-token validation
★ Captcha validation before submitting form
★ Possibility to integrate with Google re-Captcha
★ Possibility to enable/disable security features
Enduser UI innovations: Testing
★ IT made with ProtractorJS
★ Maven-driven build process
★ Tests executed in a real browser, simulating user interaction
→ ProtractorJS is and e2e testing framework for web-based
application written in AngularJS
ProtractorJS workflow
Apache Maven to run them all!
And now, is it over?
Enduser UI will follow Apache Syncope evolution, they are indissolubly related,
but (at the same time) it will ever follow a parallel flow.
➔ Social registration (Google, Facebook, LinkedIn)
➔ Deploy on lightweight containers (Payara) VS full JS backend
➔ AngularJS 2.0 support
➔ Google re-Captcha easy enabling
➔ HTML templating → custom themes
Enduser UI future perspectives
Questions?

More Related Content

What's hot

ASP.NET MVC 4 Overview
ASP.NET MVC 4 OverviewASP.NET MVC 4 Overview
ASP.NET MVC 4 Overview
Gunnar Peipman
 
Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015
Strannik_2013
 
A site in 15 minutes with yii
A site in 15 minutes with yiiA site in 15 minutes with yii
A site in 15 minutes with yii
Andy Kelk
 
Asp.net identity dot netconf
Asp.net identity dot netconfAsp.net identity dot netconf
Asp.net identity dot netconfrustd
 
ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)
Eugenio Minardi
 
ASP.NET: Present and future
ASP.NET: Present and futureASP.NET: Present and future
ASP.NET: Present and future
Hrvoje Hudoletnjak
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
mbaric
 
PortalGuard Product Tour
PortalGuard Product TourPortalGuard Product Tour
PortalGuard Product Tour
PortalGuard
 
Microsoft asp.net identity security
Microsoft asp.net identity  securityMicrosoft asp.net identity  security
Microsoft asp.net identity securityrustd
 
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support EngineerSupport Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Nicole Szigeti
 
Mini-Training Owin Katana
Mini-Training Owin KatanaMini-Training Owin Katana
Mini-Training Owin Katana
Betclic Everest Group Tech Team
 
Serverless Computing With Azure Functions
Serverless Computing With Azure FunctionsServerless Computing With Azure Functions
Serverless Computing With Azure Functions
Jaliya Udagedara
 
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-KonsoleAlfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Software
 
What is IBM Bluemix , Une nouvelle façon de coder , dans le cloud
What is IBM Bluemix , Une nouvelle façon de coder , dans le cloudWhat is IBM Bluemix , Une nouvelle façon de coder , dans le cloud
What is IBM Bluemix , Une nouvelle façon de coder , dans le cloud
Patrick Bouillaud
 
Deploying JEE to Heroku
Deploying JEE to HerokuDeploying JEE to Heroku
Deploying JEE to Heroku
Bogdan Marian
 
Hire laravel-php-developers- Hire Laravel Programmers
Hire laravel-php-developers- Hire Laravel ProgrammersHire laravel-php-developers- Hire Laravel Programmers
Hire laravel-php-developers- Hire Laravel Programmers
Summation IT
 
Creating a CI/CD Pipeline for a Java EE Application in the Cloud
Creating a CI/CD Pipeline for a Java EE Application in the CloudCreating a CI/CD Pipeline for a Java EE Application in the Cloud
Creating a CI/CD Pipeline for a Java EE Application in the Cloud
Bogdan Marian
 
Lap Around ASP.NET MVC 5
Lap Around ASP.NET MVC 5Lap Around ASP.NET MVC 5
Lap Around ASP.NET MVC 5
Lohith Goudagere Nagaraj
 
Azure cloud for the web frontend developers
Azure cloud for the web frontend developersAzure cloud for the web frontend developers
Azure cloud for the web frontend developers
Maxim Salnikov
 

What's hot (20)

ASP.NET MVC 4 Overview
ASP.NET MVC 4 OverviewASP.NET MVC 4 Overview
ASP.NET MVC 4 Overview
 
Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015Spring Boot. Boot up your development. JEEConf 2015
Spring Boot. Boot up your development. JEEConf 2015
 
A site in 15 minutes with yii
A site in 15 minutes with yiiA site in 15 minutes with yii
A site in 15 minutes with yii
 
Asp.net identity dot netconf
Asp.net identity dot netconfAsp.net identity dot netconf
Asp.net identity dot netconf
 
JavaCro'15 - Secure Web Services Development - Askar Akhmerov
JavaCro'15 - Secure Web Services Development - Askar AkhmerovJavaCro'15 - Secure Web Services Development - Askar Akhmerov
JavaCro'15 - Secure Web Services Development - Askar Akhmerov
 
ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)
 
ASP.NET: Present and future
ASP.NET: Present and futureASP.NET: Present and future
ASP.NET: Present and future
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
 
PortalGuard Product Tour
PortalGuard Product TourPortalGuard Product Tour
PortalGuard Product Tour
 
Microsoft asp.net identity security
Microsoft asp.net identity  securityMicrosoft asp.net identity  security
Microsoft asp.net identity security
 
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support EngineerSupport Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
 
Mini-Training Owin Katana
Mini-Training Owin KatanaMini-Training Owin Katana
Mini-Training Owin Katana
 
Serverless Computing With Azure Functions
Serverless Computing With Azure FunctionsServerless Computing With Azure Functions
Serverless Computing With Azure Functions
 
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-KonsoleAlfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
 
What is IBM Bluemix , Une nouvelle façon de coder , dans le cloud
What is IBM Bluemix , Une nouvelle façon de coder , dans le cloudWhat is IBM Bluemix , Une nouvelle façon de coder , dans le cloud
What is IBM Bluemix , Une nouvelle façon de coder , dans le cloud
 
Deploying JEE to Heroku
Deploying JEE to HerokuDeploying JEE to Heroku
Deploying JEE to Heroku
 
Hire laravel-php-developers- Hire Laravel Programmers
Hire laravel-php-developers- Hire Laravel ProgrammersHire laravel-php-developers- Hire Laravel Programmers
Hire laravel-php-developers- Hire Laravel Programmers
 
Creating a CI/CD Pipeline for a Java EE Application in the Cloud
Creating a CI/CD Pipeline for a Java EE Application in the CloudCreating a CI/CD Pipeline for a Java EE Application in the Cloud
Creating a CI/CD Pipeline for a Java EE Application in the Cloud
 
Lap Around ASP.NET MVC 5
Lap Around ASP.NET MVC 5Lap Around ASP.NET MVC 5
Lap Around ASP.NET MVC 5
 
Azure cloud for the web frontend developers
Azure cloud for the web frontend developersAzure cloud for the web frontend developers
Azure cloud for the web frontend developers
 

Similar to Apache Syncope 2.0 Enduser UI

Building Open Source Identity Infrastructures
Building Open Source Identity InfrastructuresBuilding Open Source Identity Infrastructures
Building Open Source Identity Infrastructures
Misagh Moayyed
 
CloudStack-UI at the JAX London Сonference
CloudStack-UI at the JAX London СonferenceCloudStack-UI at the JAX London Сonference
CloudStack-UI at the JAX London Сonference
Olga Nikienko
 
Learning C# iPad Programming
Learning C# iPad ProgrammingLearning C# iPad Programming
Learning C# iPad Programming
Rich Helton
 
Creating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixCreating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM Bluemix
Andrew Ferrier
 
Dreamforce 2017 - Up close and personal with Lightning Experience as Platform
Dreamforce 2017 - Up close and personal with Lightning Experience as PlatformDreamforce 2017 - Up close and personal with Lightning Experience as Platform
Dreamforce 2017 - Up close and personal with Lightning Experience as Platform
andyinthecloud
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019
Microsoft 365 Developer
 
London MuleSoft Meetup
London MuleSoft Meetup London MuleSoft Meetup
London MuleSoft Meetup
Akshata Sawant
 
What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)
Entando
 
aneka.pptx
aneka.pptxaneka.pptx
aneka.pptx
kenilpatel65
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
Sander Knape
 
Windows8.1overviewnetponto
Windows8.1overviewnetpontoWindows8.1overviewnetponto
Windows8.1overviewnetponto
Alexandre Marreiros
 
London-MuleSoft-Meetup-April-19-2023
London-MuleSoft-Meetup-April-19-2023London-MuleSoft-Meetup-April-19-2023
London-MuleSoft-Meetup-April-19-2023
AnuragSharma900
 
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Tanya Denisyuk
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
Steve Hogg
 
Tutorial: extending the zend server ui and web api
Tutorial: extending the zend server ui and web apiTutorial: extending the zend server ui and web api
Tutorial: extending the zend server ui and web api
Yonni Mendes
 
Introduction to Apigility
Introduction to ApigilityIntroduction to Apigility
Introduction to Apigility
Engineor
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakaya
Mbakaya Kwatukha
 
ASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a couple
Alexandre Marreiros
 
Innomatic Platform architecture overview
Innomatic Platform architecture overviewInnomatic Platform architecture overview
Innomatic Platform architecture overview
Alex Pagnoni
 

Similar to Apache Syncope 2.0 Enduser UI (20)

Building Open Source Identity Infrastructures
Building Open Source Identity InfrastructuresBuilding Open Source Identity Infrastructures
Building Open Source Identity Infrastructures
 
CloudStack-UI at the JAX London Сonference
CloudStack-UI at the JAX London СonferenceCloudStack-UI at the JAX London Сonference
CloudStack-UI at the JAX London Сonference
 
Learning C# iPad Programming
Learning C# iPad ProgrammingLearning C# iPad Programming
Learning C# iPad Programming
 
Creating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixCreating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM Bluemix
 
Dreamforce 2017 - Up close and personal with Lightning Experience as Platform
Dreamforce 2017 - Up close and personal with Lightning Experience as PlatformDreamforce 2017 - Up close and personal with Lightning Experience as Platform
Dreamforce 2017 - Up close and personal with Lightning Experience as Platform
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019
 
London MuleSoft Meetup
London MuleSoft Meetup London MuleSoft Meetup
London MuleSoft Meetup
 
What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)
 
Apache Syncope and Tirasa
Apache Syncope and TirasaApache Syncope and Tirasa
Apache Syncope and Tirasa
 
aneka.pptx
aneka.pptxaneka.pptx
aneka.pptx
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
 
Windows8.1overviewnetponto
Windows8.1overviewnetpontoWindows8.1overviewnetponto
Windows8.1overviewnetponto
 
London-MuleSoft-Meetup-April-19-2023
London-MuleSoft-Meetup-April-19-2023London-MuleSoft-Meetup-April-19-2023
London-MuleSoft-Meetup-April-19-2023
 
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
Tutorial: extending the zend server ui and web api
Tutorial: extending the zend server ui and web apiTutorial: extending the zend server ui and web api
Tutorial: extending the zend server ui and web api
 
Introduction to Apigility
Introduction to ApigilityIntroduction to Apigility
Introduction to Apigility
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakaya
 
ASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a couple
 
Innomatic Platform architecture overview
Innomatic Platform architecture overviewInnomatic Platform architecture overview
Innomatic Platform architecture overview
 

Recently uploaded

Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 

Recently uploaded (20)

Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 

Apache Syncope 2.0 Enduser UI

  • 1. Apache Syncope IdM 2.0 Enduser UI Andrea Patricelli, Software Engineer, Tirasa s.r.l
  • 2. Apache Syncope committer since 2013 → PMC member in October 2016 ➔ Apache Syncope dev since 1.1.X release ➔ Apache Syncope Enduser UI ➔ Syncope Docker https://github.com/andrea-patricelli/syncope-docker About me
  • 3. Agenda Introduction to the IdM world Who is the end user and why a console Enduser UI: from 1.0 to 2.0 How we made it Innovations brought Future perspectives
  • 4. What's IdM about? ● Data records that contains a collection of data about a person ● “Data record” → Account ● “A person” → Identity ● The joint effort of business
  • 5. ● Identity Stores ○ Storage of user information ● Provisioning ○ Synchronize account data across identity stores and a broad range of data formats, models, meanings and purposes ● Access Management ○ Security mechanisms that take place when a user is accessing a specific system or functionality IdM technologies
  • 6. IdM in practice: before...
  • 7. IdM in practice: ...after!
  • 8. Apache Syncope ● Inception by Tirasa in 2010 ● Entered ASF incubator in February 2012 ● Graduated as TLP in November 2012 ● Active community ○ 18 committers, 6 contributors ○ ~200 mailing list subscribers, stable traffic ○ 37 releases
  • 9. Who is the end user “Users whose identities are stored into Apache Syncope IdM, but that are not directly involved into other identities (administration) management flow. They interact with Apache Syncope IDM only to manage their own profile. The set of the operations provided to end users can be addressed as self- management.”
  • 10. ➔ Intuitive and Easy-to-use admin console developed with Apache Wicket. ➔ Complete frontend interface of all Apache Syncope features. ➔ Role-based access to the console features: user can access to console sections only if provided with determined entitlements associated to admin specified roles. Once upon a time the Console 1.X...
  • 12. Console 1.X for self-management Introduced since Apache Syncope 1.0.0 Self-management as integrating part of the Console. Enabled/Disabled through Apache Syncope properties, accessible from the same Console. ★ Self-registration ★ Self-update ★ Password reset
  • 13. Once upon a time the Enduser UI 1.X
  • 15. The need for a more dedicated tool was raising ➔ Need to have an application completely separated from the Console. ➔ Self-management operations must be unrelated to the Core. ➔ Enduser UI should be an highly customizable component, though you can use it as- is. ➔ You can provide it with Syncope or not (i.e enable or disable self-management features). ➔ Enduser UI should also provide a certain level of configurability (we will clarify later...) Yes but...
  • 16. A client-side application very near to the end-user would bring (generally speaking) some not negligible advantages: ★ Parsed by the user’s browser. ★ Reacts to user input. ★ Can be seen and edited by the user in full. ★ Cannot store anything that lasts beyond a page refresh (except cookies). ★ Cannot read files off of a server directly, must communicate via HTTP requests. Why not a client-side JS application?
  • 17. It would have guaranteed all requirements needed High customizability Decoupling of the self-management features from the Console and the Core. Modularization of self-management features Better fit to customers needs about frontend console appearance From Apache Syncope architectural POV
  • 18. Enduser console 2.0: how we thought it...
  • 21. Development challenges It was not sunshine and rainbows… Integration AngularJS → Apache Wicket little explored E2E testing integration with Maven lifecycle EndUser UI and Admin console: sometimes similar requirements but distinct implementations because of different technologies
  • 22. Main functional requirements... ➔ Login page simple and linear like admin Console one ➔ Wizard-like form ➔ Form validation with custom messages ➔ Session and authentication management ➔ Integration Tests suite, integrated into Maven lifecycle ➔ User Self create/update
  • 23. …and not functional ➔ Highly customizable interface ➔ Easy to use ➔ Enduser console should be a “proposal”, from which the customer can start to develop his own UI ➔ Should implement all the functionalities required to self- management → not incomplete. ➔ Follow admin console evolution and replicate some core
  • 24. Enduser UI innovations: Usage ★ Interactive and intelligent breadcrumb ★ Configurable wizard panels, possibility to add/remove them ★ Configurable validation ★ Configurable Password strength validator ★ Easy to configure i18n “playgound zone” at syncope-vm.apache.org:9080/syncope-enduser
  • 25. Enduser UI innovations: Security ★ Authentication delegated to Apache Syncope ★ XSRF-token validation ★ Captcha validation before submitting form ★ Possibility to integrate with Google re-Captcha ★ Possibility to enable/disable security features
  • 26. Enduser UI innovations: Testing ★ IT made with ProtractorJS ★ Maven-driven build process ★ Tests executed in a real browser, simulating user interaction → ProtractorJS is and e2e testing framework for web-based application written in AngularJS
  • 28. Apache Maven to run them all!
  • 29. And now, is it over?
  • 30. Enduser UI will follow Apache Syncope evolution, they are indissolubly related, but (at the same time) it will ever follow a parallel flow. ➔ Social registration (Google, Facebook, LinkedIn) ➔ Deploy on lightweight containers (Payara) VS full JS backend ➔ AngularJS 2.0 support ➔ Google re-Captcha easy enabling ➔ HTML templating → custom themes Enduser UI future perspectives

Editor's Notes

  1. Console is a complete and ready-to-use application
  2. We considered all possible solutions, also the one to vary a bit from the actual Console architecture and technology.
  3. Why Apache Wicket Well known Apache framework Very easy creation of Web Application and RESTful resources Already used in Syncope, no need of new imports or new technologies, we had the solution at home
  4. Why AngularJS? Mvc done right: Most frameworks implement MVC by asking you to split your app into MVC components, then require you to write code to string them up together again Well documented Well known to us, we did not start from scratch. Previously experienced Data models are POJO: Data models in Angular are plain old JavaScript objects (POJO) and don’t require extraneous getter and setter functions Directives: Directives are Angular’s way of bringing additional functionality to HTML ProtractorJS: easy to use end-to-end test framework for AngularJS applications
  5. Highly customizable interface: appearance, enable/disable functionalities, etc.
  6. Actual catpcha implementation made with Wicket
  7. As we can see more requirements are involved As you can understand, Protractor needs a sort of environment to be prepared and made available, including dependency resolution, on-the-fly during the Apache Syncope (Maven-driven) build process! PortractorJS runs on top of NodeJS, that needs to be installed upfront. Moreover, Protractor requires a webdriver, acting as a mediator to access browsers API; we have finally chosen the implementation provided by Selenium.
  8. Maven installs PhantomJS, Node and Protractor (pre-integration-test): once everything has been set up, end-to-end tests are finally executed (integration-test). When application is up and running (embedded mode), e2e tests can be re-executed without need of restarting anything, speeding up the test development process. Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.