developing for next gen identity services
DESCRIPTION
Presented by Jonathan Scudder, OpenAM Architect and Jacke Feasel, UI Lead, ForgeRockTRANSCRIPT
2013 Open Stack Identity Summit - France
Developing for Next Gen
Identity Services
Jake Feasal, UI LeadJonathan Scudder, OpenAM Architect
Once upon a time...
Open Source
Simple API
Growth
ScaleWell understood technology
Roll-out
Commonality
Integration
Product ‘suite’
Common REST API
• Open Source
• REST (JSON, SCIM++)
• ROA
• JASPIC
ROA + REST + JASPIC
• Resources vs services• Users, Groups, Realms, Sessions, Tokens...
• Granular control
• Standard set of operations
• Flexible authentication and authorization
Create
Read
Update
Delete
Patch
Action
Query
ForgeRock developers
API strategy - stack
Problem
Too many different complicated UI Frameworks
Roots from sun
Big company UI strategy churn
Developers learning new frameworks
Customers are locked in
Simple modifications overly complex
Leads to heavyweight API just for the UI
Legacy User Interfaces
YUI/Click
Jato
JSF/Ice Faces
JSP Admin
Java Swing
Open Identity Stack UI Model
“Single-Page Web App” style
Single UI model for all products
Built on ForgeRock REST (CREST)
Common UIs for:
User management
Registration and Self Service
Login and Password Reset
Build on shared services for Authentication
ForgeRock UI Library Stack
jQuery (General utility) + jQuery UI (Widgets)
Backbone.js + Require.js (Modular MVC Architecture)
Handlebars.js (Templating)
Underscore.js (General utility)
Less.js (CSS preprocessor)
Built on ForgeRock REST and Common Services
Caters to the web developers of today
Two different models for ForgeRock UIs
Admin and Configuration
Used primarily by Administrators
UI not typically customized
Configuration for product services
Dynamically rendered based on server JSON schema
REST APIs for custom applications
Adding new services dynamically rendered
Customers not expected to modify more than CSS
End User
Primarily seen by end users Simple HTML Templates
Read in by Javascript and embedded in the UI
Rendered with site wide styles/CSS
Simple syntax for embedding dynamic values
Separates bus logic from display
Simple to modify without breaking the UI
Easy to patch and upgrade
Q & A
Logo of Presenter Company HERE