SlideShare a Scribd company logo
1 of 31
Download to read offline
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 OverviewGunnar 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 2015Strannik_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 yiiAndy 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
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5mbaric
 
PortalGuard Product Tour
PortalGuard Product TourPortalGuard Product Tour
PortalGuard Product TourPortalGuard
 
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 EngineerNicole Szigeti
 
Serverless Computing With Azure Functions
Serverless Computing With Azure FunctionsServerless Computing With Azure Functions
Serverless Computing With Azure FunctionsJaliya 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-KonsoleAlfresco 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 cloudPatrick Bouillaud
 
Deploying JEE to Heroku
Deploying JEE to HerokuDeploying JEE to Heroku
Deploying JEE to HerokuBogdan 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 ProgrammersSummation 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 CloudBogdan Marian
 
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 developersMaxim 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 InfrastructuresMisagh 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 СonferenceOlga Nikienko
 
Learning C# iPad Programming
Learning C# iPad ProgrammingLearning C# iPad Programming
Learning C# iPad ProgrammingRich 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 BluemixAndrew 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 Platformandyinthecloud
 
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 2019Microsoft 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
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101Sander Knape
 
London-MuleSoft-Meetup-April-19-2023
London-MuleSoft-Meetup-April-19-2023London-MuleSoft-Meetup-April-19-2023
London-MuleSoft-Meetup-April-19-2023AnuragSharma900
 
Дмитрий Хоревич "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 ProductionSteve 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 apiYonni Mendes
 
Introduction to Apigility
Introduction to ApigilityIntroduction to Apigility
Introduction to ApigilityEngineor
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakayaMbakaya 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 coupleAlexandre Marreiros
 
Innomatic Platform architecture overview
Innomatic Platform architecture overviewInnomatic Platform architecture overview
Innomatic Platform architecture overviewAlex 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

Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptkinjal48
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageSales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageDista
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsJaydeep Chhasatia
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Jonathan Katz
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxJoão Esperancinha
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorShane Coughlan
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIIvo Andreev
 
React 19: Revolutionizing Web Development
React 19: Revolutionizing Web DevelopmentReact 19: Revolutionizing Web Development
React 19: Revolutionizing Web DevelopmentBOSC Tech Labs
 
New ThousandEyes Product Features and Release Highlights: March 2024
New ThousandEyes Product Features and Release Highlights: March 2024New ThousandEyes Product Features and Release Highlights: March 2024
New ThousandEyes Product Features and Release Highlights: March 2024ThousandEyes
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.Sharon Liu
 

Recently uploaded (20)

Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.ppt
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageSales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
 
Salesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptxSalesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptx
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptx
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS Calculator
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AI
 
React 19: Revolutionizing Web Development
React 19: Revolutionizing Web DevelopmentReact 19: Revolutionizing Web Development
React 19: Revolutionizing Web Development
 
New ThousandEyes Product Features and Release Highlights: March 2024
New ThousandEyes Product Features and Release Highlights: March 2024New ThousandEyes Product Features and Release Highlights: March 2024
New ThousandEyes Product Features and Release Highlights: March 2024
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
 

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.