44
Project midPoint or how a handful of fools fought the Giants Radovan Semančík Open Source Weekend, April 2016

Project midPoint or how a handful of fools fought the Giants

Embed Size (px)

Citation preview

Page 1: Project midPoint or how a handful of fools fought the Giants

Project midPointor

how a handful of fools fought the Giants

Radovan SemančíkOpen Source Weekend, April 2016

Page 2: Project midPoint or how a handful of fools fought the Giants

Radovan Semančík

Current:

Software Architect at Evolveum

Architect of Evolveum midPoint

Contributor to ConnId and Apache Directory API

Past:

Sun LDAP and IDM deployments (early 2000s)

OpenIDM v1, OpenICF

Many software architecture and security projects

Page 3: Project midPoint or how a handful of fools fought the Giants

Project midPoint● Advanced Identity Management Product

● Started 2010-2011 (5+ years, 16 releases)

● more than 500K lines of code (Java)

● World-wide recognition

ProvisioningSynchronizationRBAC

GovernanceConsistency Workflow

Audit Authorization

Management

Self-serviceDelegated administration

Data mapping REST

PolicyEntitlements

Segregation of duties

HA

IdentifiersNotifications

ConnectorsLocalization

Parametric roles

Password resetOrganizational structure

Web UI

Expressions

SchemaConditions Extensibility

Scripting

Bulk actions

Page 4: Project midPoint or how a handful of fools fought the Giants

midPoint is used all around the world

Page 5: Project midPoint or how a handful of fools fought the Giants

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

Users

CRMApplication

midPoint

Page 6: Project midPoint or how a handful of fools fought the Giants

There is no security without identity management

Page 7: Project midPoint or how a handful of fools fought the Giants

If you have no IDM, how can you be sure that ...

● illegal accounts are disabled/deleted?

● temporary accounts are deleted?

● users have only the least privileges?

● the privileges are not accumulated?

● no secondary authentication is possible?

● the data are up to date? (title, affiliation, …)

● notifications and tasks are suspended?

Page 8: Project midPoint or how a handful of fools fought the Giants

The solution is trivialLet's put everything in LDAP!

Page 9: Project midPoint or how a handful of fools fought the Giants

Expectation

Application

Application

Application

Application

SSO

Users

Application

LDAP

HR

Page 10: Project midPoint or how a handful of fools fought the Giants

Reality

Application

Application

Application

Application

SSO

Users

Application

LDAP

HR

Unsupported

No standard(ugly script needed)

Unsupported

!Customschema

Incompatibleschema

Relationaldatabase

Extremely expensive

!Expensive

Homedirectory

Local copy

Incompatibleidentifiers

Page 11: Project midPoint or how a handful of fools fought the Giants

“Single directory” approachis not going to work

… and this has been known for 10 years (at least)

*) yet, it might work well for simple and quite homogeneous environments

Page 12: Project midPoint or how a handful of fools fought the Giants

Identity and Access Management

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

Users

CRM

SystemAdmin

RequesterApprover

Application

Page 13: Project midPoint or how a handful of fools fought the Giants

How IDM works?

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

Page 14: Project midPoint or how a handful of fools fought the Giants

Automatic user provisioning

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

PoliciesRBACRules

Page 15: Project midPoint or how a handful of fools fought the Giants

Business As Usual

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

Page 16: Project midPoint or how a handful of fools fought the Giants

Password reset (self-service)

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

Page 17: Project midPoint or how a handful of fools fought the Giants

Employee Leaves Company

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

Page 18: Project midPoint or how a handful of fools fought the Giants

Automatic user deprovisioning

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

PoliciesRBACRules

Page 19: Project midPoint or how a handful of fools fought the Giants

Business As Usual

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

Page 20: Project midPoint or how a handful of fools fought the Giants

Bidirectional Synchronization

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

Page 21: Project midPoint or how a handful of fools fought the Giants

Policy enforcement

IdentityRepository

HR

Application

Application

Application

Application

AM

IdentityManagement

PoliciesRBACRules

Page 22: Project midPoint or how a handful of fools fought the Giants

What Identity Management does?

● Provisioning

● Synchronization

● Self-service

● Password management

● Credentials distribution

(SSH, X.509)

● RBAC

● Organizational structure

● Entitlement management

● Identifier management

● Data mapping

● Segregation of duties

● Workflow

● Notifications

● Auditing

● Reporting

● Governance

● ...

Page 23: Project midPoint or how a handful of fools fought the Giants
Page 24: Project midPoint or how a handful of fools fought the Giants
Page 25: Project midPoint or how a handful of fools fought the Giants

This IDM looks like the best thing since the sliced bread.

What's the catch?

Page 26: Project midPoint or how a handful of fools fought the Giants

This IDM looks like the best thing since the sliced bread.

What's the catch?

The commercial IDM products are expensive.

Page 27: Project midPoint or how a handful of fools fought the Giants

This IDM looks like the best thing since the sliced bread.

What's the catch?

The commercial IDM products are expensive.

Very, very expensive.

Page 28: Project midPoint or how a handful of fools fought the Giants

Open Source to the Rescue

But … there was no practical FOSS solution

The market was taken by

Sun, Oracle, IBM, CA, Microsoft, SAP, ...

(money, money, money)

Page 29: Project midPoint or how a handful of fools fought the Giants

Open Source to the Rescue

one developer, two developers, three developers, …

bumpy start (details in the blog)

by mid-2011 fully operational

2010-2011We have started

Page 30: Project midPoint or how a handful of fools fought the Giants

Good architecture, code base, skills

No real business plan

No customers

Big, rich, established competitors

2011

foolishly naïve lunacy

Page 31: Project midPoint or how a handful of fools fought the Giants

2011-2014

hard workno money

Page 32: Project midPoint or how a handful of fools fought the Giants

2015-2016

successand beyond

Page 33: Project midPoint or how a handful of fools fought the Giants

No big investor, only FFF (Friends, Family, Fools)

Key employees receive shares from profit

Early income: anything (really)

Current income: subscriptions and professional services

2015: (small) profit

money

Page 34: Project midPoint or how a handful of fools fought the Giants

Small team (5 developers + 2 engineers)

Efficiency: Java, formal data model, generated code

Cooperation: ConnId, Apache Directory API

Developer freedom: no bosses, pet projects, ...

Experiments: LDAP, GUI, OpenStack, ...

technology

Page 35: Project midPoint or how a handful of fools fought the Giants

Great Technology in MidPoint

● Java, Spring, Apache Wicket (nothing special here)

● Good architecture from day one

● Internal scripting: Groovy, JavaScript, Python

● Self-healing system

● Prism Objects

● Advanced Hybrid RBAC

● ...

Page 36: Project midPoint or how a handful of fools fought the Giants

Prism Objects

Schema

complexType: UserType  element: givenName  element: fullName  …

Code

class UserType {  String givenName;  String fullName;  …}

SOAP

<wsdl>...</wsdl>

REST

GUI

User details

Given name:

Full name:

SaveCancel

XML, JSON, YAML

Page 37: Project midPoint or how a handful of fools fought the Giants
Page 38: Project midPoint or how a handful of fools fought the Giants

Classic RBAC → Role explosion

Assistant LondonAssistant Bratislava

Location Bratislava Location LondonAssistant

Employee

Assistant Section X Assistant Section Y Assistant Section Z

Section X Section Y Section Z

Section of Division A

Assistant, Section Z, London

Assistant, Section Y, London

Assistant, Section X, London

Assistant, Section Z, Bratislava

Assistant, Section Y, Bratislava

Assistant, Section X, Bratislava

Page 39: Project midPoint or how a handful of fools fought the Giants

Assistant LondonAssistant Bratislava

Location Bratislava Location LondonAssistant

Employee

Assistant Section X Assistant Section Y Assistant Section Z

Section X Section Y Section Z

Section of Division A

Assistant, Section Z, London

Assistant, Section Y, London

Assistant, Section X, London

Assistant, Section Z, Bratislava

Assistant, Section Y, Bratislava

Assistant, Section X, Bratislava

More roles than employees

Hard problem of identity managementis transformed to

much harder problem of role management

Classic RBAC → Role explosion

Page 40: Project midPoint or how a handful of fools fought the Giants

MidPoint Advanced Hybrid RBAC

Location Bratislava Location London

Assistant

Employee

Section X Section Y Section Z

Division A

parameterparameter

Org. struct

Locations

Page 41: Project midPoint or how a handful of fools fought the Giants

Most comprehensive open source IDM system

Great engineering team, great technology

Recognized by analysts (Gartner, KuppingerCole)

World-wide adoption

Successfully competing with Oracle, IBM, Microsoft, …

success

Page 42: Project midPoint or how a handful of fools fought the Giants

Lessons learned

● Forget about Slovakia. World is your market!

● Efficiency: Small team, big impact

● Burn money slowly. Wait for the right moment.

● Do no look for customers,

let customers look for you.

● Technology matters. A lot. Really.

● Good platform and architecture is crucial

● Newest technology is not always coolest

Page 43: Project midPoint or how a handful of fools fought the Giants

Questions and Answers

ProvisioningSynchronizationRBAC

GovernanceConsistency Workflow

Audit Authorization

Management

Self-serviceDelegated administration

Data mapping REST

PolicyEntitlements

Segregation of duties

HA

IdentifiersNotifications

ConnectorsLocalization

Parametric roles

Password resetOrganizational structure

Web UI

Expressions

SchemaConditions Extensibility

Scripting

Bulk actions

Page 44: Project midPoint or how a handful of fools fought the Giants

Radovan Semančík

www.evolveum.com

Thank You

This presentation is (c) 2016 EvolveumIt may be distributed under the terms of Creative Commons CC-BY-ND