OpenIDM for Beginners
EMEA Summit 2013
Objectives
Upon completion of this presentation, you should be
able to:
•

Describe where OpenIDM fits into the OIS

•

Describe the Business Needs for OpenIDM

•

Describe IDM Use Cases Addressed by OpenIDM

•

Describe OpenIDM Features

01-2
Pillars of IAM

01-3
Classic scenario I
User wants to use an application...
which does not require any of ForgeRock's
products, but ...

Application

User

01-4
Classic scenario II
Centralization of Authentication
… and ...
Application

OpenDJ

User

01-5
Classic scenario III
Central Authorization
OpenAM

OpenDJ

Application

User

01-6
Classic scenario V
Identity Management

OpenAM

Application

HR DB

OpenIDM

OpenDJ

User

01-7
Common Use Cases
•

Provisioning

•

De-Provisioning

•

Compliance and auditing

•

Password management

01-8
Provisioning
•

Depending on a user's business role and predefined rules a
new user will:
•
•

•

Therefore a central instance is needed which
•
•
•

•

Get accounts on backend systems on create
Get default group/role membership

Connects to all relevant systems
Is able to sync user attributes and memberships
Can automatically apply rules

Manager, approving persons and end-user need well defined
access to the user's data

01-9
Central Provisioning Point

HR DB

OpenIDM

User

01-10
Passwords
•

Passwords can be changed at a central place and distributed to
external systems based on flexible rules and password policies

•

The provisioning engine needs to detect password changes
from an external resource

•

User administrators and end user need well defined access to
the user's passwords

•

A password reset mechanism is in place

•

Passwords which have been reset can be sent to the end user
in a secure way

01-11
Central Password Distribution Point

User
Changes
Password

OpenIDM

OpenDJ

01-12
Components used in OpenIDM
ď‚§

Java → min 1.6 update 24 on Win: Java 7

ď‚§

OSGi → implementation: Felix

ď‚§

Servlet container → implementation: Jetty

ď‚§

Repository → OrientDB, MySQL and others

ď‚§

JSON → structure for configurations

ď‚§

OpenICF → local or remote connector server

ď‚§

Connectors to external systems → i.e. AD, LDAP, file...

ď‚§

Activiti → workflow engine

01-13
Putting It All Together

01-14
The REST Interface
ď‚§
ď‚§

ď‚§

Representational State Transfer (REST)
Conforming to the REST constraints is generally
referred to as being "RESTful"
REST utilizes HTTP methods:
ď‚§
ď‚§
ď‚§
ď‚§
ď‚§

GET
PUT
POST
DELETE
HEAD

01-15
OpenIDM in action
•

Install OpenIDM

•

Start with workflow sample

•

Get user through reconciliation

•

Start

01-16
Native Connection Protocols

DB

ADSI

SSH

JNDI

JDBC

OpenIDM

Repo DB
01-17
Connector Architecture

01-18
Activiti Introduction
ď‚§

A light-weight workflow and Business Process
Management Software

ď‚§

BPMN 2 compliant

ď‚§

A process engine for Java applications

ď‚§

It's open-source and distributed under the Apache
license

ď‚§

Workflows are deployed as business archives (.bar)

ď‚§

Workflow definitions are in XML format
01-19
Apply for Contractor I
Workflow outline

01-20
Apply for Contractor II
Startup Form:
(Screen shot)

01-21
Activiti Modeler II

01-22
Connector Configuration (simple)

01-23
Sync Configuration

01-24
Connector Configuration (flexible)
"principal" : "cn=Directory Manager",
"ssl" : false,
"baseContexts" : ["ou=People,dc=example,dc=com"],
"groupMemberAttribute" : "uniqueMember",
"passwordAttribute" : "userPassword",
"accountSearchFilter" : null,
"accountObjectClasses" : ["top",...],
"maintainLdapGroupMembership" : false,
"blockSize" : 100,
"baseContextsToSynchronize" :
["ou=People,dc=example,dc=com"],
"attributesToSynchronize" : [ "uid",...],
{"account" :
...
{"nativeType" : "__ACCOUNT__",
"properties" :
{"uid" :
{"type" : "string",
"nativeName" : ”userName",
"nativeType" : "STRING",
"flags" :
["NOT_CREATABLE”…
01-25
Other OpenIDM Features
ď‚§

Task Scheduling

ď‚§

Cluster OpenIDM for
ď‚§
ď‚§

High availability
Horizontal scalability

ď‚§

OpenIDM command line

ď‚§

Data validation through policies

ď‚§

Managing Passwords

ď‚§

Send emails

01-26
Forgerock University

01-27

OpenIDM - An Introduction