SlideShare una empresa de Scribd logo
1 de 3
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.

Más contenido relacionado

La actualidad más candente

Building Data Warehouse in SQL Server
Building Data Warehouse in SQL ServerBuilding Data Warehouse in SQL Server
Building Data Warehouse in SQL ServerAntonios Chatzipavlis
 
Dreamforce14 Multi Org Collaboration Architecture
Dreamforce14  Multi Org Collaboration ArchitectureDreamforce14  Multi Org Collaboration Architecture
Dreamforce14 Multi Org Collaboration ArchitectureRichard 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 PlatformWSO2
 
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 migrationMark Kofman
 
ETL tool evaluation criteria
ETL tool evaluation criteriaETL tool evaluation criteria
ETL tool evaluation criteriaAsis 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 r2Eduardo 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 CloudJoaquin Marques
 
Master Data Management using WSO2 Platform
Master Data Management using WSO2 PlatformMaster Data Management using WSO2 Platform
Master Data Management using WSO2 PlatformWSO2
 
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 Platformprajods
 
Multiorg Collaboration Using Salesforce S2S
Multiorg Collaboration Using Salesforce S2SMultiorg Collaboration Using Salesforce S2S
Multiorg Collaboration Using Salesforce S2SMayur 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
 

La actualidad más candente (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
 

Destacado

1967 lincoln continental convertible restoration v4
1967 lincoln continental convertible restoration v41967 lincoln continental convertible restoration v4
1967 lincoln continental convertible restoration v4Michael J Geiser
 
Assessing normality lab 6
Assessing normality lab 6Assessing normality lab 6
Assessing normality lab 6Laura Sandoval
 
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 Viitoruluifutureheroes_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 editionMichael J Geiser
 
Really useful linux commands
Really useful linux commandsReally useful linux commands
Really useful linux commandsMichael J Geiser
 

Destacado (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 a 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
 
Database Performance Management in Cloud
Database Performance Management in CloudDatabase Performance Management in Cloud
Database Performance Management in CloudDr. 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 Directoryrwgorrel
 
Evaluating Cloud Database Offerings
Evaluating Cloud Database OfferingsEvaluating Cloud Database Offerings
Evaluating Cloud Database OfferingsChristopher 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 DBAinventy
 
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 OrganizationSeeling Cheung
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business IntelligenceDavid 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 PostgreSQLEDB
 
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 WebinarRTTS
 

Similar a 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
 

Más de 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 ToolsMichael J Geiser
 
AWS Cost Reduction and Management Plan
AWS Cost Reduction and Management PlanAWS Cost Reduction and Management Plan
AWS Cost Reduction and Management PlanMichael 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 CommunityMichael J Geiser
 
Skeptical Inquirer Content Problems
Skeptical Inquirer Content ProblemsSkeptical Inquirer Content Problems
Skeptical Inquirer Content ProblemsMichael 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 PoliciesMichael 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 EstimationMichael J Geiser
 
Maturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMaturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMichael 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 ProjectMichael 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 PostersMichael J Geiser
 

Más de 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
 

Último

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

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.