evolveum midPoint Documentation

repository·master·Indexed 19 days ago

https://github.com/evolveum/midpoint

An Identity Governance and Administration (IGA) platform for identity provisioning, governance, compliance, and access management. Features include automated user provisioning, identity synchronization via liveSync, and extensibility through ConnId connectors. The platform provides integration via Local Java APIs, Remote SOAP web services, and REST APIs. Documentation covers system initialization, SQL schema application, and the configuration of dashboard widgets, including synchronous and asynchronous data fetching, visual presentation attributes, and policy-driven variations.

Tokens
226K
Snippets
452
Records
809
Agent score
68%

What's inside midPoint

  1. Overview of midPoint Identity Governance and Administration

    master

    midPoint is an Identity Governance and Administration (IGA) platform designed for managing identity provisioning, governance, compliance, and access management. It acts as a security perimeter for both internal networks and external resources.

    Core Capabilities:

    • Identity Governance: Managing the lifecycle and rights of identities.
    • Security & Compliance: Auditing, reporting, and entitlement management.
    • Access Management: Managing organizational structures, credentials, and request approvals.
    • Provisioning: Automated user provisioning and deprovisioning.
    • Synchronization: Identity synchronization via liveSync, reconciliation, discovery, and import.
    • Extensibility: Custom schema extensibility and support for ConnId connectors.
    • Automation: Workflow-driven identity management processes and notifications.
    • Integration Interfaces: Access midPoint via Local Java APIs, Remote SOAP web services, or REST APIs.
  2. Introduction to midPoint Dashboards

    master

    Dashboards in midPoint provide a centralized overview of critical metrics to support identity governance and administration (IGA). They allow managers to monitor compliance, track operational efficiency, and proactively respond to risks by automating data aggregation and presentation.

    Key capabilities:

    • Role-based customization: Create multiple dashboards tailored to different stakeholders (e.g., security officers vs. HR personnel).
    • Visual alerting: Customize look and behavior, including distinct color coding to highlight warnings or non-compliant situations.
    • Metric monitoring: Track counts of active employees, failed resources, suspended tasks, and more.
    • Compliance integration: When combined with collection domains and policy rules (using object marks), dashboards can monitor organizational compliance and trigger warnings when actions are required.
  3. Overview of the MidPoint REST API

    master
    The MidPoint REST API allows you to access and interact with data within a midPoint instance through various web resources. Each resource is represented by a specific endpoint to which you send operation requests. The API is feature-rich and supports multiple formats for both requests and responses.
  4. Where to use midPoint Query Language (MQL)

    master

    MQL is a universal language designed to query searchable objects in the midPoint repository. It follows the midPoint data model (properties, attributes, and data items). You can use MQL in the following interfaces:

    • GUI: Via the Advanced search mode in all views.
    • Configuration: Embedded in XML, YAML, or JSON configuration files.
    • midPoint Studio: For managing and browsing midPoint configurations.
    • Query Playground: An environment to experiment with queries and use the Query Converter to transform existing configurations into MQL.
  5. Understand the different query options in midPoint

    master

    midPoint provides several ways to select objects based on specific criteria, depending on whether you are an end-user in the GUI or a developer/engineer configuring the system:

    1. Basic Search: Designed for end-users in the GUI. It allows searching by selecting values of preselected object attributes or relations. This is configurable by an engineer.
    2. midPoint Query Language (MPL): The universal and recommended language for searching objects. It is used in the GUI (as Advanced Search), within configuration objects, and in Groovy scripts. It is the primary tool for querying objects in configuration and automation.
    3. XML Query Language: The original querying method. It is currently deprecated. While still supported, it is recommended to switch to midPoint Query Language.
    4. Full Text Search: A convenience feature available only in the GUI for searching specific data. It is not enabled by default and must be configured by an engineer. It is less powerful than midPoint Query Language.
  6. Reference the midPoint PostgreSQL Schema Regions

    master

    The PostgreSQL schema is organized into logical regions. Use these categories to locate specific tables and objects:

    • Infrastructure: Schema, extensions, enum types, shared identifiers, repository metadata, and support routines.
    • References: Tables storing object and container references (archetype, projection, role membership, etc.).
    • Focus and Users: Focus base data, users, generic objects, and focus identities.
    • Roles and Services: Abstract roles, services, archetypes, policies, and applications.
    • Organization: Organization objects and hierarchy closure support.
    • Resources and Shadows: Resources, shadows, shadow partitions, connectors, and resource object reference data.
    • System Objects: Node, system configuration, and security policy.
    • Reports and Dashboards: Reports, dashboards, object collections, and forms.
    • Role Analysis: Role analysis sessions, clusters, and outliers.
    • Lookup Tables: Lookup table objects and key-value row data.
    • Cases and Certification: Case management, access certification campaigns, and work items.
    • Templates and Messages: Object templates, sequences, forms, and message templates.
    • Assignments: Assignment and inducement containers and metadata.
    • Tasks: Task objects, containers, and execution data.
    • Simulations: Simulation result objects and event mark references.
    • Marks: Mark objects for classifying repository objects and events.
    • Schema Objects: Schema repository objects.
    • Extension Items: Extension item catalog and indexed extension value storage.
    • Schema Versioning: Procedures and metadata for tracking schema changes.
  7. Use Resource Wizards to manage identity resources

    master

    Resource wizards provide an intuitive graphical interface in the midPoint Admin GUI to manage resource configurations without requiring manual XML editing. They streamline the integration of external systems by guiding you through several key configuration tasks:

    • Connecting systems: Establishing the initial connection to an external resource.
    • Defining object types: Specifying the types of objects (e.g., user accounts) the resource handles.
    • Setting up mappings: Configuring data transformations for inbound and outbound data.
    • Defining synchronization reactions: Specifying how the system should react to different synchronization scenarios.
    • Defining correlation rules: Setting up rules to link resource objects to midPoint identities.
    • Defining relations: Setting up object type relations, such as group memberships.
  8. Use the midPoint Java Client Library

    master

    The midPoint Java client library provides a location-independent, fluent API to access midPoint functionality. It is modeled after the midPoint REST API but is designed to be transport-independent (e.g., it could be implemented via REST, SOAP, or local Java calls).

    Note: This feature is currently partially implemented. Some parts are incomplete and may require future updates or subscription-based development to reach full maturity.

    // The 'rest' variable represents the Service object configured with network and authentication parameters
    List<UserType> users = rest.users().get();
  9. Supported scripting languages for expressions

    master

    midPoint supports several scripting languages for use within expressions.

    • MidPoint Expression Language (MEL): Built-in and highly recommended.
    • Groovy: Built-in and the default language. Most documentation and community examples use Groovy. It is explicitly packaged with midPoint.
    • Velocity: Built-in; ideal for expressions that return strings or textual templates.
    • JavaScript (ECMAScript): Optional; support depends on the JDK (not available by default in JDK 15+).
    • Python: Optional; can be enabled even on newer JDKs.

    Recommendation: Use Groovy for general logic and Velocity for string templates.

  10. Introduction to midPoint Expressions

    master

    Expressions are the primary tool for customizing midPoint behavior. They contain logic used in mappings, correlation, and confirmation processes. Expressions take a set of variables as input and produce a value via an expression evaluator. Evaluators range from simple 'as is' copies to complex scripting engines like Groovy or ECMAScript.

    Key concepts:

    • Evaluators: Individual clauses that create or transform a value.
    • Variables: Inputs to the expression (e.g., $focus, $input) which can be static or dynamic (containing deltas).
    • Root Node: In Path expressions, the root node can be addressed directly without a variable name (e.g., name instead of $focus/name).
    <expression>
        <script>
            <code>
                givenName + ' ' + familyName
            </code>
        </script>
    </expression>
  11. What is Correlation in midPoint

    master

    Correlation (or smart correlation) is the mechanism midPoint uses to match incoming identity data (e.g., from a new resource account or a self-registration process) to existing focus objects in the repository.

    It uses configurable correlation rules (technically called correlators) to provide approximate matching. Matches can be resolved automatically if they meet a defined confidence threshold, or manually by a human operator. Currently, correlation rules are the primary driver of the correlation algorithm.

  12. What is an Object Template

    master

    An objectTemplate is a configuration object that defines rules for how a specific object type (most commonly a user) should be constructed or updated.

    Key capabilities include:

    • Property Mappings: Using mappings to compute user properties (e.g., concatenating givenName and familyName into a fullName).
    • RBAC Configuration: Implementing Rule-based RBAC by assigning roles to users automatically based on specific property values (e.g., organizational unit or employee type) using conditional mappings.
    • Item Handling: Defining how specific items (like emailAddress) are displayed in the user interface, including setting them as emphasized so they appear even if empty.

    Important Limitation: An object template operates on a single object (the target user) and only has access to that object's data. It cannot access other objects or variables like $projection.

    <objectTemplate oid="c0c010c0-d34d-b33f-f00d-777222222333">
        <name>User Template CSV sync</name>
        <description>Alternative User Template Object.</description>
    
        <mapping>
            <description>Sets full name as concatenation of givenName and familyName.</description>
            <strength>weak</strength>
            <source>
                <path>givenName</path>
            </source>
            <source>
                <path>familyName</path>
            </source>
            <expression>
                <script>
                    <code>givenName + ' ' + familyName</code>
                </script>
            </expression>
            <target>
                <path>fullName</path>
            </target>
        </mapping>
    
        <item>
            <ref>emailAddress</ref>
            <displayName>Email Address</displayName>
            <emphasized>true</emphasized>
        </item>
    </objectTemplate>