How openidentityplatform/openidm works
OpenIDM is an identity-management platform for consolidating identity sources, managing objects through REST, and synchronizing data with external systems. A principal workflow is a client request entering the service layer, passing authentication, and reaching managed-object handling backed by a repository; configured synchronization and reconciliation provide the cross-system workflow. The tree and excerpts support these major subsystems, but do not establish every runtime connection, so uncertain links are omitted. The README also describes user self-service and admin UIs; their implementation is not represented in the sampled runtime sources.
Main entry points: ManagedObjectService.java Managed Objects · SynchronizationService.java Synchronization · OpenICFProvisionerService.java OpenICF Connectors · ConfigObjectService.java Configuration
Components 19
Access and API
- Servlet API
openidm-api-servlet/src/main/java/org/forgerock/openidm/servlet/internal/ServletComponent.java - Authentication
openidm-authnfilter/src/main/java/org/forgerock/openidm/auth/AuthenticationService.java - REST Routing
openidm-router/src/main/java/org/forgerock/openidm/router/RouteService.java
Identity Management
- Managed Objects
openidm-core/src/main/java/org/forgerock/openidm/managed/ManagedObjectService.java - JDBC Repository
openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/JDBCRepoService.java - Synchronization
openidm-core/src/main/java/org/forgerock/openidm/sync/impl/SynchronizationService.java - Reconciliation
openidm-core/src/main/java/org/forgerock/openidm/sync/impl/ReconciliationService.java
Integration
- System Objects
openidm-provisioner/src/main/java/org/forgerock/openidm/provisioner/impl/SystemObjectSetService.java - OpenICF Connectors
openidm-provisioner-openicf/src/main/java/org/forgerock/openidm/provisioner/openicf/impl/OpenICFProvisionerService.java - Identity Providers
openidm-identity-provider/src/main/java/org/forgerock/openidm/idp/impl/IdentityProviderService.java - External REST
openidm-external-rest/src/main/java/org/forgerock/openidm/external/rest/RestService.java - Email Service
openidm-external-email/src/main/java/org/forgerock/openidm/external/email/impl/EmailServiceImpl.java
Platform Services
- Configuration
openidm-config/src/main/java/org/forgerock/openidm/config/manage/ConfigObjectService.java - Scheduler
openidm-scheduler/src/main/java/org/forgerock/openidm/scheduler/SchedulerService.java - Messaging
openidm-messaging/src/main/java/org/forgerock/openidm/messaging/MessagingService.java - Audit
openidm-audit/src/main/java/org/forgerock/openidm/audit/impl/AuditServiceImpl.java - Health Status
openidm-infoservice/src/main/java/org/forgerock/openidm/info/impl/HealthService.java
Other components
- API Client
- Identity Sources
Connections 19
- API Client → Servlet API: sends request
- Servlet API → Authentication: passes request
- Authentication → REST Routing: authenticates
- REST Routing → Managed Objects: dispatches
- Managed Objects → JDBC Repository: reads and writes
- Managed Objects → Synchronization: routes sync actions
- Scheduler → Synchronization: executes scheduled actions
- Synchronization → Reconciliation: starts reconciliation
- System Objects → OpenICF Connectors: uses provisioner
- OpenICF Connectors → Identity Sources: provisions identities
- Synchronization → System Objects: synchronizes systems
- Identity Providers → Identity Sources: obtains identity
- External REST → Identity Sources: calls external API
- Email Service → Identity Sources: sends notifications
- Configuration → Managed Objects: configures objects
- Configuration → OpenICF Connectors: configures connectors
- Messaging → Identity Sources: processes messages
- Audit → Identity Sources: records events
- Health Status → API Client: reports readiness