SlideShare a Scribd company logo
Topic: Selecting a User Store technology for the WSO2 Identity Server User Store
Unless there are alternate suggestions, we’ll meet as per the timeline below to discuss and
decide on the User Store technology to be used in the WSO2 Identity Server. It is my opinion
that we should use a MySQL based User Store over the default LDAP accessed Directory
Server configuration. The meeting invite will contain the Confluence link for related
documentation. Please try to have any input you want considered added to the Confluence
directory before the Kick-off Meeting. We’ll discuss any contributions and make a final decision
by Friday December 5. After the decision is made, a Position Paper will be created to document
the criteria and factors considered for the IdM User Store decision.
This is an important Architectural consideration; the WSO2 IS User Store is a critical component
that must meet critical availability and scalability capability. The tight coupling of Authentication
and Authorization of user session and all requests in all components makes it important that the
team understands and that there is consensus on the decision for the chosen technology (or I’d
have already made the decision).
It is important to reach a decision on December 5 to meet the estimates for the work to
implement the User Store solution so as to not impact work based on the current backlog
prioritizations.
Timeline:
Kick-off Meeting:Monday, December 1 (Time TBD)
Deadline for Comments and Responses:Wednesday, December 3 EOD
Final Decision: Friday, December 5 12:00 to 2:00pm meeting (we’ll break as soon as decision
is made)
Background:
When implementing an Identity Management solution, such as WSO2 Identity Server or any of
the other many products in the Identity Management (IdM) vertical, very often the default
configuration for the user store is a Directory Server accessed via LDAP. While Directory
Server were an excellent choice in the past for IdM User Data stores, they are a poor choice for
many environments today and this choice results in significant additional effort (and cost) but
also has many other disadvantages when compared to User Stores using a Relational
Databases.
This document captures some of the decision points of uses a Directory Server (such as
OpenLDAP) compared to a Relational Database solution for an IdM User Store both at small
scale and especially at large scale that must meet critical availability and scalability SLAs.
LDAP and Directory Servers originated in the 1970’s and both their design and implementation
hampers not enables, the agility, scalability availability and utility of applications using them for
many reasons; some of which are:
 LDAP is designed for optimal usage in high read-to-write ratio situation; 10:1 or 100:1 is
most often quoted as optimal for LDAP based directories. For any Password Policy that
tracks the results of attempted authentications (which are a feature of all IdM solutions),
the Directory Server must update once for every authentication attempt. Idle and
maximum (a.k.a. soft and hard) timeouts are another required feature that usually
require frequent updates. Many systems also persist session information, including “last
accessed” information in the user store. The application will use the User Store in ways
that are recognized as less than optimal.
 LDAP is an access protocol (LDAP = Lightweight Directory Access Protocol) not a data
store. LDAP data stores use some storage technology, usually a RDBMS like an
embedded small scale Open Source database like H2 or Postgres in a black-box
configuration. DevOps must support this application and the additional backup, restore,
sizing, HA and other Operational needs through the tools provided and very often need
to purchase additional licenses to support the Directory Server User Store. This can be
a significant challenge if the storage engine used for the User Store is not already
supported by DevOps. There are additional recurring costs in for the labor to maintain
and possible licensing costs for this additional component. It is best to choose a store
engine that we have in house expertise and already support.
 Customization of the Data Store for LDAP based Directory Servers is complex and often
not a skill companies have in-house as it is not a common function anymore. Arguably
you can Google how to extend a Directory schema and get examples of how to do it. I
would not want to extend a schema for other applications in this manner. This often
leads to applications reusing existing attributes instead of creating appropriately named
attributes (like reusing the “stateOrProvence” attribute for a data element not explicitly
accommodated in the default directory schema). This is a poor practice that should be
avoided.
 LDAP adds an additional layer of abstraction and latency to your application but doesn’t
offer any advantage for his extra complexity and overhead. Applications such as WSO2
Identity Server can access a JDBC based datastore (directly) or an LDAP datastore.
 LDAP Connection Pooling support is non-existent or is very limited; this is an important
scalability and performance concern. No architect would design an application that had
to create a new database connection every time it needed to access the database.
Establishing a new connection is VERY resource intensive and a huge source of
application latency. Establishing a connection usually takes longer than the query you
establish the connection to run. The ability to effectively utilize connection pools is a
vital point to consider.
 LDAP is not a transactional protocol. Generally, IdM functions (user provisioning for
example) are closely coupled to other database transactions and the ability to have
changes to the IdM user store and other schemas participate in transactions are
important. Not having transactions means rollbacks of an update require a
compensating transaction to “undo” the update. It is sometimes difficult or impossible to
back-out an update via a compensating transaction.
 LDAP and Directory Servers do not have DRI, locking, or check constraints even if the
relational database the LDAP implementation is built on supports them.
 Directory Server data has limited Data Typing. There are Strings, Numbers (Integer
only numbers actually), Time, Telephone Numbers, Boolean, Binary, Distinguished
Name and Bit Strings data types in directory servers. Decimal (and all non-integer
numeric) data and complex types (objects) must be stored as a string or
serialized/deserialized and explicitly cast if used in any application (SQL, Java Visual
basic…). And there are limits on searchability and indexability (and indexing in general);
especially for non-native data types. Relational database (like Oracle) datatypes map to
Java SQL datatypes without any casts.
 LDAP has no equivalent structure to stored procedures (and packages). It is desirable
to have the SQL for data input and output abstracted from the calling applications to
minimize the risk and impact to existing applications of future changes to the User
DataStore. Decoupling the release cycles of the database and Business logic as much
as possible is a more agile approach. Generally Java applications use Prepared
Statements so this may be a less important point, but it does eliminate implementation
options.
 A Directory Server has minimal Error Handling internally and externally error handlers
must be coded and implanted in all code that calls into the Directory Server. Relational
databases’ Error Handling allows for better and more consistent exception handling,
resolution, and logging and encapsulates these functions from the calling application.
 Data access is vital. When developing or in production, I frequently need to query the
user store. There are no MySQL Workbench, Toad or other similar products for LDAP
based directories. I remember how difficult it was developing using only SQL*Plus;
better tools really does produce better end results. I use Eclipse or IntelliJ now; I do not
write Java classes in Notepad.
Many of the items above if taken alone may not be persuasive, but taken in total and compared
to the list of advantages (are there any?) of using a Directory Server, I can’t come to any
conclusion other than Relational Database over Directory Server for an IdM User Store in the
context of application.

More Related Content

What's hot

Building Data Warehouse in SQL Server
Building Data Warehouse in SQL ServerBuilding Data Warehouse in SQL Server
Building Data Warehouse in SQL Server
Antonios Chatzipavlis
 
Dreamforce14 Multi Org Collaboration Architecture
Dreamforce14  Multi Org Collaboration ArchitectureDreamforce14  Multi Org Collaboration Architecture
Dreamforce14 Multi Org Collaboration Architecture
Richard Clark
 
ETL with WSO2 Enterprise Middleware Platform
ETL with WSO2 Enterprise Middleware Platform ETL with WSO2 Enterprise Middleware Platform
ETL with WSO2 Enterprise Middleware Platform WSO2
 
Exploring Data Integration Capabilities of the WSO2 Platform
Exploring Data Integration Capabilities of the WSO2 PlatformExploring Data Integration Capabilities of the WSO2 Platform
Exploring Data Integration Capabilities of the WSO2 Platform
WSO2
 
7 common problems with salesforce data migration
7 common problems with salesforce data migration7 common problems with salesforce data migration
7 common problems with salesforce data migration
Mark Kofman
 
ETL tool evaluation criteria
ETL tool evaluation criteriaETL tool evaluation criteria
ETL tool evaluation criteria
Asis Mohanty
 
New Microsoft Office WordDatabase administration and automation Document (2)
New Microsoft Office WordDatabase administration and automation Document (2)New Microsoft Office WordDatabase administration and automation Document (2)
New Microsoft Office WordDatabase administration and automation Document (2)naveen
 
Introduction to microsoft sql server 2008 r2
Introduction to microsoft sql server 2008 r2Introduction to microsoft sql server 2008 r2
Introduction to microsoft sql server 2008 r2
Eduardo Castro
 
A Crash Course in SQL Server Administration for Reluctant Database Administra...
A Crash Course in SQL Server Administration for Reluctant Database Administra...A Crash Course in SQL Server Administration for Reluctant Database Administra...
A Crash Course in SQL Server Administration for Reluctant Database Administra...
Chad Petrovay
 
The 15 ITIL Steps to DBaaS in the Cloud
The 15 ITIL Steps to DBaaS in the CloudThe 15 ITIL Steps to DBaaS in the Cloud
The 15 ITIL Steps to DBaaS in the Cloud
Joaquin Marques
 
Master Data Management using WSO2 Platform
Master Data Management using WSO2 PlatformMaster Data Management using WSO2 Platform
Master Data Management using WSO2 PlatformWSO2
 
What is ETL?
What is ETL?What is ETL?
What is ETL?
Ismail El Gayar
 
Enabling Data as a Service with the JBoss Enterprise Data Services Platform
Enabling Data as a Service with the JBoss Enterprise Data Services PlatformEnabling Data as a Service with the JBoss Enterprise Data Services Platform
Enabling Data as a Service with the JBoss Enterprise Data Services Platform
prajods
 
Multiorg Collaboration Using Salesforce S2S
Multiorg Collaboration Using Salesforce S2SMultiorg Collaboration Using Salesforce S2S
Multiorg Collaboration Using Salesforce S2S
Mayur Shintre
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architectureAmit rai Raaz
 
Active Directory Proposal
Active Directory ProposalActive Directory Proposal
Active Directory ProposalMJ Ferdous
 

What's hot (20)

Building Data Warehouse in SQL Server
Building Data Warehouse in SQL ServerBuilding Data Warehouse in SQL Server
Building Data Warehouse in SQL Server
 
Architecting Multi-Org Solutions
Architecting Multi-Org SolutionsArchitecting Multi-Org Solutions
Architecting Multi-Org Solutions
 
Dreamforce14 Multi Org Collaboration Architecture
Dreamforce14  Multi Org Collaboration ArchitectureDreamforce14  Multi Org Collaboration Architecture
Dreamforce14 Multi Org Collaboration Architecture
 
ETL with WSO2 Enterprise Middleware Platform
ETL with WSO2 Enterprise Middleware Platform ETL with WSO2 Enterprise Middleware Platform
ETL with WSO2 Enterprise Middleware Platform
 
Hemanth_SQLDBA
Hemanth_SQLDBAHemanth_SQLDBA
Hemanth_SQLDBA
 
Exploring Data Integration Capabilities of the WSO2 Platform
Exploring Data Integration Capabilities of the WSO2 PlatformExploring Data Integration Capabilities of the WSO2 Platform
Exploring Data Integration Capabilities of the WSO2 Platform
 
7 common problems with salesforce data migration
7 common problems with salesforce data migration7 common problems with salesforce data migration
7 common problems with salesforce data migration
 
satya_-_Infy
satya_-_Infysatya_-_Infy
satya_-_Infy
 
ETL tool evaluation criteria
ETL tool evaluation criteriaETL tool evaluation criteria
ETL tool evaluation criteria
 
New Microsoft Office WordDatabase administration and automation Document (2)
New Microsoft Office WordDatabase administration and automation Document (2)New Microsoft Office WordDatabase administration and automation Document (2)
New Microsoft Office WordDatabase administration and automation Document (2)
 
Introduction to microsoft sql server 2008 r2
Introduction to microsoft sql server 2008 r2Introduction to microsoft sql server 2008 r2
Introduction to microsoft sql server 2008 r2
 
A Crash Course in SQL Server Administration for Reluctant Database Administra...
A Crash Course in SQL Server Administration for Reluctant Database Administra...A Crash Course in SQL Server Administration for Reluctant Database Administra...
A Crash Course in SQL Server Administration for Reluctant Database Administra...
 
Proposal DMS
Proposal   DMS Proposal   DMS
Proposal DMS
 
The 15 ITIL Steps to DBaaS in the Cloud
The 15 ITIL Steps to DBaaS in the CloudThe 15 ITIL Steps to DBaaS in the Cloud
The 15 ITIL Steps to DBaaS in the Cloud
 
Master Data Management using WSO2 Platform
Master Data Management using WSO2 PlatformMaster Data Management using WSO2 Platform
Master Data Management using WSO2 Platform
 
What is ETL?
What is ETL?What is ETL?
What is ETL?
 
Enabling Data as a Service with the JBoss Enterprise Data Services Platform
Enabling Data as a Service with the JBoss Enterprise Data Services PlatformEnabling Data as a Service with the JBoss Enterprise Data Services Platform
Enabling Data as a Service with the JBoss Enterprise Data Services Platform
 
Multiorg Collaboration Using Salesforce S2S
Multiorg Collaboration Using Salesforce S2SMultiorg Collaboration Using Salesforce S2S
Multiorg Collaboration Using Salesforce S2S
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architecture
 
Active Directory Proposal
Active Directory ProposalActive Directory Proposal
Active Directory Proposal
 

Viewers also liked

Apigee dc failover
Apigee dc failoverApigee dc failover
Apigee dc failover
Michael J Geiser
 
Agile humor for slides
Agile humor for slides Agile humor for slides
Agile humor for slides
Michael J Geiser
 
Approvals in jira
Approvals in jiraApprovals in jira
Approvals in jira
Michael J Geiser
 
1967 lincoln continental convertible restoration v4
1967 lincoln continental convertible restoration v41967 lincoln continental convertible restoration v4
1967 lincoln continental convertible restoration v4
Michael J Geiser
 
Agile Release Planning
Agile Release PlanningAgile Release Planning
Agile Release Planning
Michael J Geiser
 
Texto 1ºe
Texto 1ºeTexto 1ºe
Texto 1ºe
Bonnie TheBunny
 
Assessing normality lab 6
Assessing normality lab 6Assessing normality lab 6
Assessing normality lab 6
Laura Sandoval
 
8
88
6 garage door
6 garage door6 garage door
6 garage door
John Conroy
 
Echipa: ECOADOLESCENȚA - Concursul științific Eroii Viitorului
Echipa: ECOADOLESCENȚA - Concursul științific Eroii ViitoruluiEchipa: ECOADOLESCENȚA - Concursul științific Eroii Viitorului
Echipa: ECOADOLESCENȚA - Concursul științific Eroii Viitorului
futureheroes_romania
 
Jira workflow for documentation issue types agile edition
Jira workflow for documentation issue types   agile editionJira workflow for documentation issue types   agile edition
Jira workflow for documentation issue types agile edition
Michael J Geiser
 
Really useful linux commands
Really useful linux commandsReally useful linux commands
Really useful linux commands
Michael J Geiser
 
Egypt
EgyptEgypt
Egypt
neusgr
 

Viewers also liked (13)

Apigee dc failover
Apigee dc failoverApigee dc failover
Apigee dc failover
 
Agile humor for slides
Agile humor for slides Agile humor for slides
Agile humor for slides
 
Approvals in jira
Approvals in jiraApprovals in jira
Approvals in jira
 
1967 lincoln continental convertible restoration v4
1967 lincoln continental convertible restoration v41967 lincoln continental convertible restoration v4
1967 lincoln continental convertible restoration v4
 
Agile Release Planning
Agile Release PlanningAgile Release Planning
Agile Release Planning
 
Texto 1ºe
Texto 1ºeTexto 1ºe
Texto 1ºe
 
Assessing normality lab 6
Assessing normality lab 6Assessing normality lab 6
Assessing normality lab 6
 
8
88
8
 
6 garage door
6 garage door6 garage door
6 garage door
 
Echipa: ECOADOLESCENȚA - Concursul științific Eroii Viitorului
Echipa: ECOADOLESCENȚA - Concursul științific Eroii ViitoruluiEchipa: ECOADOLESCENȚA - Concursul științific Eroii Viitorului
Echipa: ECOADOLESCENȚA - Concursul științific Eroii Viitorului
 
Jira workflow for documentation issue types agile edition
Jira workflow for documentation issue types   agile editionJira workflow for documentation issue types   agile edition
Jira workflow for documentation issue types agile edition
 
Really useful linux commands
Really useful linux commandsReally useful linux commands
Really useful linux commands
 
Egypt
EgyptEgypt
Egypt
 

Similar to Choosing an IdM User Store technology

The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
Impetus Technologies
 
Oracle 11i OID AD Integration
Oracle 11i OID AD IntegrationOracle 11i OID AD Integration
Oracle 11i OID AD IntegrationMahesh Vallampati
 
Sql good practices
Sql good practicesSql good practices
Sql good practices
Deepak Mehtani
 
Database Performance Management in Cloud
Database Performance Management in CloudDatabase Performance Management in Cloud
Database Performance Management in Cloud
Dr. Amarjeet Singh
 
Cause 2013: A Flexible Approach to Creating an Enterprise Directory
Cause 2013: A Flexible Approach to Creating an Enterprise DirectoryCause 2013: A Flexible Approach to Creating an Enterprise Directory
Cause 2013: A Flexible Approach to Creating an Enterprise Directory
rwgorrel
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
Mohammed Fazuluddin
 
Evaluating Cloud Database Offerings
Evaluating Cloud Database OfferingsEvaluating Cloud Database Offerings
Evaluating Cloud Database Offerings
Christopher Foot
 
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CloudIDSummit
 
Challenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBAChallenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBA
inventy
 
Hadoop and SQL: Delivery Analytics Across the Organization
Hadoop and SQL:  Delivery Analytics Across the OrganizationHadoop and SQL:  Delivery Analytics Across the Organization
Hadoop and SQL: Delivery Analytics Across the Organization
Seeling Cheung
 
Hadoop & Data Warehouse
Hadoop & Data Warehouse Hadoop & Data Warehouse
Hadoop & Data Warehouse
Mohit Srivastava
 
Midao JDBC presentation
Midao JDBC presentationMidao JDBC presentation
Midao JDBC presentation
Zachar Prychoda
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business Intelligence
David Portnoy
 
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQLEin Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
EDB
 
Sql server 2008 r2 analysis services overview whitepaper
Sql server 2008 r2 analysis services overview whitepaperSql server 2008 r2 analysis services overview whitepaper
Sql server 2008 r2 analysis services overview whitepaperKlaudiia Jacome
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing Webinar
RTTS
 
Big data
Big dataBig data
Big data
Big dataBig data

Similar to Choosing an IdM User Store technology (20)

The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
 
Oracle 11i OID AD Integration
Oracle 11i OID AD IntegrationOracle 11i OID AD Integration
Oracle 11i OID AD Integration
 
No sql
No sqlNo sql
No sql
 
Sql good practices
Sql good practicesSql good practices
Sql good practices
 
Graduate Project Summary
Graduate Project SummaryGraduate Project Summary
Graduate Project Summary
 
Database Performance Management in Cloud
Database Performance Management in CloudDatabase Performance Management in Cloud
Database Performance Management in Cloud
 
Cause 2013: A Flexible Approach to Creating an Enterprise Directory
Cause 2013: A Flexible Approach to Creating an Enterprise DirectoryCause 2013: A Flexible Approach to Creating an Enterprise Directory
Cause 2013: A Flexible Approach to Creating an Enterprise Directory
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
 
Evaluating Cloud Database Offerings
Evaluating Cloud Database OfferingsEvaluating Cloud Database Offerings
Evaluating Cloud Database Offerings
 
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
 
Challenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBAChallenges Management and Opportunities of Cloud DBA
Challenges Management and Opportunities of Cloud DBA
 
Hadoop and SQL: Delivery Analytics Across the Organization
Hadoop and SQL:  Delivery Analytics Across the OrganizationHadoop and SQL:  Delivery Analytics Across the Organization
Hadoop and SQL: Delivery Analytics Across the Organization
 
Hadoop & Data Warehouse
Hadoop & Data Warehouse Hadoop & Data Warehouse
Hadoop & Data Warehouse
 
Midao JDBC presentation
Midao JDBC presentationMidao JDBC presentation
Midao JDBC presentation
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business Intelligence
 
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQLEin Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
Ein Expertenleitfaden für die Migration von Legacy-Datenbanken zu PostgreSQL
 
Sql server 2008 r2 analysis services overview whitepaper
Sql server 2008 r2 analysis services overview whitepaperSql server 2008 r2 analysis services overview whitepaper
Sql server 2008 r2 analysis services overview whitepaper
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing Webinar
 
Big data
Big dataBig data
Big data
 
Big data
Big dataBig data
Big data
 

More from Michael J Geiser

CI / CD Roles, Processes and Supporting Tools
CI / CD Roles, Processes and Supporting ToolsCI / CD Roles, Processes and Supporting Tools
CI / CD Roles, Processes and Supporting Tools
Michael J Geiser
 
AWS Cost Reduction and Management Plan
AWS Cost Reduction and Management PlanAWS Cost Reduction and Management Plan
AWS Cost Reduction and Management Plan
Michael J Geiser
 
2018 staffing strategy
2018 staffing strategy 2018 staffing strategy
2018 staffing strategy
Michael J Geiser
 
Response on Proposal for Converting to a Gated Community
Response on Proposal for Converting to a Gated CommunityResponse on Proposal for Converting to a Gated Community
Response on Proposal for Converting to a Gated Community
Michael J Geiser
 
Skeptical Inquirer Content Problems
Skeptical Inquirer Content ProblemsSkeptical Inquirer Content Problems
Skeptical Inquirer Content Problems
Michael J Geiser
 
Problems with Password Change Lockout Periods in Password Policies
Problems with Password Change Lockout Periods in Password PoliciesProblems with Password Change Lockout Periods in Password Policies
Problems with Password Change Lockout Periods in Password Policies
Michael J Geiser
 
Minimum Viable Product (MVP) – “Like This / Not Like This” Redux (MVP) – “Lik...
Minimum Viable Product (MVP) – “Like This / Not Like This” Redux (MVP) – “Lik...Minimum Viable Product (MVP) – “Like This / Not Like This” Redux (MVP) – “Lik...
Minimum Viable Product (MVP) – “Like This / Not Like This” Redux (MVP) – “Lik...
Michael J Geiser
 
Agile Progress Tracking and Code Complete Date Estimation
Agile Progress Tracking and Code Complete Date EstimationAgile Progress Tracking and Code Complete Date Estimation
Agile Progress Tracking and Code Complete Date Estimation
Michael J Geiser
 
Maturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMaturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvements
Michael J Geiser
 
Introduction to the WSO2 Identity Server &Contributing to an OS Project
Introduction to the WSO2 Identity Server &Contributing to an OS ProjectIntroduction to the WSO2 Identity Server &Contributing to an OS Project
Introduction to the WSO2 Identity Server &Contributing to an OS Project
Michael J Geiser
 
Using JIRA to Manage Project Management Risks and Issues
Using JIRA to Manage Project Management Risks and Issues Using JIRA to Manage Project Management Risks and Issues
Using JIRA to Manage Project Management Risks and Issues Michael J Geiser
 
Girl Scout Cookie Sale Posters
Girl Scout Cookie Sale PostersGirl Scout Cookie Sale Posters
Girl Scout Cookie Sale Posters
Michael J Geiser
 

More from Michael J Geiser (12)

CI / CD Roles, Processes and Supporting Tools
CI / CD Roles, Processes and Supporting ToolsCI / CD Roles, Processes and Supporting Tools
CI / CD Roles, Processes and Supporting Tools
 
AWS Cost Reduction and Management Plan
AWS Cost Reduction and Management PlanAWS Cost Reduction and Management Plan
AWS Cost Reduction and Management Plan
 
2018 staffing strategy
2018 staffing strategy 2018 staffing strategy
2018 staffing strategy
 
Response on Proposal for Converting to a Gated Community
Response on Proposal for Converting to a Gated CommunityResponse on Proposal for Converting to a Gated Community
Response on Proposal for Converting to a Gated Community
 
Skeptical Inquirer Content Problems
Skeptical Inquirer Content ProblemsSkeptical Inquirer Content Problems
Skeptical Inquirer Content Problems
 
Problems with Password Change Lockout Periods in Password Policies
Problems with Password Change Lockout Periods in Password PoliciesProblems with Password Change Lockout Periods in Password Policies
Problems with Password Change Lockout Periods in Password Policies
 
Minimum Viable Product (MVP) – “Like This / Not Like This” Redux (MVP) – “Lik...
Minimum Viable Product (MVP) – “Like This / Not Like This” Redux (MVP) – “Lik...Minimum Viable Product (MVP) – “Like This / Not Like This” Redux (MVP) – “Lik...
Minimum Viable Product (MVP) – “Like This / Not Like This” Redux (MVP) – “Lik...
 
Agile Progress Tracking and Code Complete Date Estimation
Agile Progress Tracking and Code Complete Date EstimationAgile Progress Tracking and Code Complete Date Estimation
Agile Progress Tracking and Code Complete Date Estimation
 
Maturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMaturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvements
 
Introduction to the WSO2 Identity Server &Contributing to an OS Project
Introduction to the WSO2 Identity Server &Contributing to an OS ProjectIntroduction to the WSO2 Identity Server &Contributing to an OS Project
Introduction to the WSO2 Identity Server &Contributing to an OS Project
 
Using JIRA to Manage Project Management Risks and Issues
Using JIRA to Manage Project Management Risks and Issues Using JIRA to Manage Project Management Risks and Issues
Using JIRA to Manage Project Management Risks and Issues
 
Girl Scout Cookie Sale Posters
Girl Scout Cookie Sale PostersGirl Scout Cookie Sale Posters
Girl Scout Cookie Sale Posters
 

Recently uploaded

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

Choosing an IdM User Store technology

  • 1. Topic: Selecting a User Store technology for the WSO2 Identity Server User Store Unless there are alternate suggestions, we’ll meet as per the timeline below to discuss and decide on the User Store technology to be used in the WSO2 Identity Server. It is my opinion that we should use a MySQL based User Store over the default LDAP accessed Directory Server configuration. The meeting invite will contain the Confluence link for related documentation. Please try to have any input you want considered added to the Confluence directory before the Kick-off Meeting. We’ll discuss any contributions and make a final decision by Friday December 5. After the decision is made, a Position Paper will be created to document the criteria and factors considered for the IdM User Store decision. This is an important Architectural consideration; the WSO2 IS User Store is a critical component that must meet critical availability and scalability capability. The tight coupling of Authentication and Authorization of user session and all requests in all components makes it important that the team understands and that there is consensus on the decision for the chosen technology (or I’d have already made the decision). It is important to reach a decision on December 5 to meet the estimates for the work to implement the User Store solution so as to not impact work based on the current backlog prioritizations. Timeline: Kick-off Meeting:Monday, December 1 (Time TBD) Deadline for Comments and Responses:Wednesday, December 3 EOD Final Decision: Friday, December 5 12:00 to 2:00pm meeting (we’ll break as soon as decision is made) Background: When implementing an Identity Management solution, such as WSO2 Identity Server or any of the other many products in the Identity Management (IdM) vertical, very often the default configuration for the user store is a Directory Server accessed via LDAP. While Directory Server were an excellent choice in the past for IdM User Data stores, they are a poor choice for many environments today and this choice results in significant additional effort (and cost) but also has many other disadvantages when compared to User Stores using a Relational Databases. This document captures some of the decision points of uses a Directory Server (such as OpenLDAP) compared to a Relational Database solution for an IdM User Store both at small scale and especially at large scale that must meet critical availability and scalability SLAs.
  • 2. LDAP and Directory Servers originated in the 1970’s and both their design and implementation hampers not enables, the agility, scalability availability and utility of applications using them for many reasons; some of which are:  LDAP is designed for optimal usage in high read-to-write ratio situation; 10:1 or 100:1 is most often quoted as optimal for LDAP based directories. For any Password Policy that tracks the results of attempted authentications (which are a feature of all IdM solutions), the Directory Server must update once for every authentication attempt. Idle and maximum (a.k.a. soft and hard) timeouts are another required feature that usually require frequent updates. Many systems also persist session information, including “last accessed” information in the user store. The application will use the User Store in ways that are recognized as less than optimal.  LDAP is an access protocol (LDAP = Lightweight Directory Access Protocol) not a data store. LDAP data stores use some storage technology, usually a RDBMS like an embedded small scale Open Source database like H2 or Postgres in a black-box configuration. DevOps must support this application and the additional backup, restore, sizing, HA and other Operational needs through the tools provided and very often need to purchase additional licenses to support the Directory Server User Store. This can be a significant challenge if the storage engine used for the User Store is not already supported by DevOps. There are additional recurring costs in for the labor to maintain and possible licensing costs for this additional component. It is best to choose a store engine that we have in house expertise and already support.  Customization of the Data Store for LDAP based Directory Servers is complex and often not a skill companies have in-house as it is not a common function anymore. Arguably you can Google how to extend a Directory schema and get examples of how to do it. I would not want to extend a schema for other applications in this manner. This often leads to applications reusing existing attributes instead of creating appropriately named attributes (like reusing the “stateOrProvence” attribute for a data element not explicitly accommodated in the default directory schema). This is a poor practice that should be avoided.  LDAP adds an additional layer of abstraction and latency to your application but doesn’t offer any advantage for his extra complexity and overhead. Applications such as WSO2 Identity Server can access a JDBC based datastore (directly) or an LDAP datastore.  LDAP Connection Pooling support is non-existent or is very limited; this is an important scalability and performance concern. No architect would design an application that had to create a new database connection every time it needed to access the database. Establishing a new connection is VERY resource intensive and a huge source of application latency. Establishing a connection usually takes longer than the query you establish the connection to run. The ability to effectively utilize connection pools is a vital point to consider.  LDAP is not a transactional protocol. Generally, IdM functions (user provisioning for example) are closely coupled to other database transactions and the ability to have changes to the IdM user store and other schemas participate in transactions are important. Not having transactions means rollbacks of an update require a compensating transaction to “undo” the update. It is sometimes difficult or impossible to back-out an update via a compensating transaction.
  • 3.  LDAP and Directory Servers do not have DRI, locking, or check constraints even if the relational database the LDAP implementation is built on supports them.  Directory Server data has limited Data Typing. There are Strings, Numbers (Integer only numbers actually), Time, Telephone Numbers, Boolean, Binary, Distinguished Name and Bit Strings data types in directory servers. Decimal (and all non-integer numeric) data and complex types (objects) must be stored as a string or serialized/deserialized and explicitly cast if used in any application (SQL, Java Visual basic…). And there are limits on searchability and indexability (and indexing in general); especially for non-native data types. Relational database (like Oracle) datatypes map to Java SQL datatypes without any casts.  LDAP has no equivalent structure to stored procedures (and packages). It is desirable to have the SQL for data input and output abstracted from the calling applications to minimize the risk and impact to existing applications of future changes to the User DataStore. Decoupling the release cycles of the database and Business logic as much as possible is a more agile approach. Generally Java applications use Prepared Statements so this may be a less important point, but it does eliminate implementation options.  A Directory Server has minimal Error Handling internally and externally error handlers must be coded and implanted in all code that calls into the Directory Server. Relational databases’ Error Handling allows for better and more consistent exception handling, resolution, and logging and encapsulates these functions from the calling application.  Data access is vital. When developing or in production, I frequently need to query the user store. There are no MySQL Workbench, Toad or other similar products for LDAP based directories. I remember how difficult it was developing using only SQL*Plus; better tools really does produce better end results. I use Eclipse or IntelliJ now; I do not write Java classes in Notepad. Many of the items above if taken alone may not be persuasive, but taken in total and compared to the list of advantages (are there any?) of using a Directory Server, I can’t come to any conclusion other than Relational Database over Directory Server for an IdM User Store in the context of application.