All pages
Powered by GitBook
1 of 2

Loading...

Loading...

Integrations

Overview of supported provisioning integrations in Veza, with capabilities and supported actions for target applications and sources of identity.

Overview

This page covers the integrations that power Lifecycle Management workflows and can act as identity sources for LCM policies, and target applications that can be provisioned or deprovisioned.

Enabling provisioning on an integration also makes it available to other Veza products that use write-back capabilities, including Access Intelligence (Disable Accounts) and Access Requests. The integration tables below represent the validated, production-ready set for Lifecycle Management specifically.

Veza supports three primary implementation pathways:

  1. Native Integrations: Direct API-based provisioning with out-of-the-box support (see validated integrations below)

  2. SCIM 2.0 Protocol: Standards-based provisioning for any SCIM-compliant application

  3. OAA Write Framework: Veza's Open Authorization API (OAA) extends write-back support to applications not natively integrated with the Veza platform

This architecture means that nearly any existing Veza integration can be enabled for provisioning. The validated integrations listed below represent tested, production-ready configurations. For additional integration support, contact your Customer Success Manager.

Identity sources are authoritative systems that provide information about user identities. While Veza does not require write permissions to the identity source of truth, some of these integrations are also supported as provisioning targets. Integrations can also allow write-back of a user's newly created email address to the user's record in the source of identity as part of the initial provisioning workflow.

Veza supports leading HR systems, IDPs and directory services, ITSM platforms, payroll systems, custom applications, and flat files:

Identity Source
Supported Entity Types
Notes

The following integrations are validated as provisioning targets for Lifecycle Management workflows. Enabling provisioning on an integration enables actions (create, sync, deprovision, manage relationships) that can be triggered from LCM policies and from other Veza products.

Validated Integrations

The following table lists the out-of-the-box, Veza-validated target application integrations.

Target Application
Manage Relationships
Sync Identities
Deprovision Identity
Additional Actions
Supported Entitlement Types
Notes

Other Supported Integrations

For any Veza-supported application not listed above, contact your Customer Success Manager for more details on how to enable the specific Veza integration for use with provisioning as a target application for provisioning and de-provisioning.

Custom REST Actions

Veza provisioning supports Custom REST Actions that enable HTTP requests to external APIs and services as part of automated workflows. This action type provides integration with custom applications, webhooks, and any REST-based service that supports identity management operations.

Custom REST Actions extend provisioning support to virtually any system with an accessible API, enabling use cases such as triggering custom workflows, notifying external systems, or coordinating provisioning sequences across multiple downstream applications.

An Insight Point is required to enable provisioning operations and identity discovery for systems that Veza cannot access directly, such as an on-premises application server behind a firewall. The Insight Point is a lightweight connector that runs in your environment, enabling secure gathering and processing of authorization metadata for provisioning tasks.

A Veza Insight Point is typically deployed as a Docker container or VM OVA, running within your network for metadata discovery and provisioning job execution. This ensures secure communication between your environment and Veza.

For deployment instructions, refer to the .

You can configure extraction intervals for your integrations to ensure data is regularly updated for provisioning workflows.

  1. Go to Veza Administration > System Settings

  2. In the Pipeline > Extraction Interval section, set the global extraction interval

  3. To override the global setting for specific integrations, use the Active Overrides section

Available extraction intervals are:

  • Auto (hourly, but may take longer when the extraction pipeline is full)

  • 15 Minutes

  • 1 Hour

  • 6 Hours

To manually trigger an extraction:

  1. Go to Integrations > All Data Sources

  2. Search for the desired data source

  3. Select Actions > Start Extraction

Note: Custom application payloads are extracted after the payload is pushed to Veza using the Open Authorization API.

To enable provisioning for a specific integration:

  1. Open the Integrations page (in the Featured section of the navigation sidebar), or Lifecycle Management > Integrations (in the Products section).

  2. Search for the integration you want to enable and open its settings.

  3. Check the Enable usage for Provisioning checkbox, then click Save Configuration.

After saving, the integration shows Enabled in the Lifecycle Management column on the Integrations overview.

To verify the health of the provisioning data source:

  1. Open Lifecycle Management > Integrations (in the Products section of the navigation sidebar), or the main Integrations page (in the Featured section)

  2. Search for the integration and click the name to view details

  3. In the Properties panel, click the magnifying glass icon under Lifecycle Management Enabled

Many identity source systems have API rate limits that can affect extraction timing. Avoid forcing repeated extractions within short time windows (typically 5 minutes) to prevent API errors that delay workflow execution.

For systems using custom or user-defined fields (UDFs), maintain clear documentation of:

  • Field purpose and mapping

  • Expected data formats and validation rules

  • Which fields are used in workflow trigger conditions

This documentation ensures consistency when fields are added or modified.

Understand the data retention policies of your identity sources, particularly for terminated employees or contractors. Some systems retain terminated records for limited periods (e.g., 90 days), which affects leaver workflow design. Plan workflow timing to ensure LCM can process records before they're purged from the source system.

Changes to core identity fields can break LCM workflows. Coordinate with system administrators before modifying:

  • Unique identifiers (employee ID, username)

  • Employment status fields

  • Date fields (hire date, termination date)

  • Location or department identifiers

Communicate planned changes in advance and test in sandbox environments before applying to production identity sources.

For more information:

  • Refer to individual integration documentation for detailed provisioning capabilities

  • Consult the Veza documentation for troubleshooting and best practices

  • Contact Veza support for assistance with enabling or configuring provisioning for your integrations

CustomHRISEmployee

CustomIDPUser

CustomHRISEmployee

CustomHRISEmployee

Supports email write-back

LDAP user

CustomHRISEmployee

AzureADUser

GoogleWorkspaceUser

OktaUser

OAA.Oracle HCM.HRISEmployee

Supports email write-back

ServiceNowUser

CustomHRISEmployee

WorkdayWorker

Supports email write-back

Reset Password, Create Entitlements, Delete Identity

ActiveDirectoryGroup

-

âś…

âś…

âś…

Delete Identity

AtlassianCloudAdminGroup

-

âś…

âś…

âś…

Create Entitlement

AwsSsoGroup

-

âś…

âś…

âś…

Reset Password, Create & Manage Email, Create Entitlement

AzureADGroup, AzureADRole, ExchangeOnlineDistributionGroup, AzureADLicense

Email management includes mailbox configuration (size limits, quotas, auditing) and client access settings (OWA, ActiveSync, MAPI, POP, IMAP)

âś…

âś…

âś…

Delete Identity

ApplicationGroup, ApplicationRole

-

❌

❌

❌

Create Email

-

-

âś…

âś…

âś…

Delete Identity

GithubOrganization, GithubTeam

-

âś…

âś…

âś…

Create Entitlement, Delete Identity

LDAP group

Includes Red Hat Identity Manager and FreeIPA

âś…

âś…

âś…

-

GoogleWorkspaceGroup

-

âś…

âś…

âś…

Delete Identity

MySQLRoleInstance

-

âś…

âś…

âś…

Reset Password, Create Entitlement, Delete Identity

OktaGroup

Supports two deprovision types: SUSPENDED (temporary) and DISABLED (permanent deactivation)

âś…

âś…

âś…

Delete Identity

OracleDBRole

-

âś…

âś…

âś…

Delete Identity

OracleRole

-

❌

âś…

❌

-

-

-

âś…

âś…

❌

Delete Identity

PagerDutyTeam

Platform does not support user deactivation; use Delete Identity instead

âś…

âś…

âś…

Delete Identity

PostgreSQLGroup

-

âś…

âś…

âś…

-

SalesforceGroup, SalesforcePermissionSet, SalesforcePermissionSetGroup, SalesforceProfile, SalesforceUserRole

-

SAP ECC

âś…

âś…

âś…

-

SapEccRole

Manage Relationships supports role assignment only (revocation is not supported)

âś…

âś…

âś…

Delete Identity

SCIMGroup

-

❌

❌

❌

Custom Action

-

-

âś…

âś…

âś…

-

SnowflakeRole

-

âś…

âś…

❌

Delete Identity

SplunkEnterpriseRole

Platform does not support user deactivation; use Delete Identity instead

âś…

âś…

❌

-

WorkdaySecurityGroup

-

Veza

âś…

âś…

âś…

-

VezaRoleBinding, VezaAccessProfile, VezaGroup

-

12 Hours

  • 1 Day

  • 2 Days

  • 3 Days

  • 7 Days

  • 30 Days

  • Any fields used in workflow trigger conditions

    Active Directory

    ActiveDirectoryUser

    Beeline

    CustomHRISEmployee

    Active Directory

    âś…

    âś…

    Supported Integrations

    Identity Sources

    Target Application Support

    Configuring Integrations for Provisioning

    Insight Points for provisioning

    Scheduled and Manual Extractions

    Enabling provisioning

    Checking provisioning data sources

    Best practices for identity sources

    API rate limits

    Custom field management

    Data retention policies

    Critical field changes

    Additional Resources

    Insight Point Documentation
    The Edit Integration panel showing the Enable usage for Provisioning checkbox
    The Integrations overview showing Lifecycle Management Enabled for configured integrations

    âś…

    Coupa CCW
    Custom IDP
    Custom HRIS (OAA)
    HiBob
    LDAP
    Ivanti Neurons HR
    Azure AD
    Google Workspace
    Okta
    Oracle HCM
    ServiceNow
    UKGPro
    Workday
    Atlassian Cloud
    AWS SSO
    Azure
    Custom Application (OAA Template)
    Exchange Server
    GitHub
    LDAP
    Google Workspace (Google Cloud)
    MySQL
    Okta
    Oracle Database
    Oracle Fusion Cloud
    Oracle HCM
    PagerDuty
    PostgreSQL
    Salesforce
    SCIM
    ServiceNow
    Snowflake
    Splunk Enterprise
    Workday

    Custom Application with SCIM (OAA)

    Enable SCIM-based provisioning for custom applications with Open Authorization API

    Overview

    Veza can automate user provisioning and de-provisioning for any application that uses the Open Authorization API (OAA) for data gathering and authorization modeling, and exposes SCIM-compliant endpoints for user and group management.

    This enables organizations to:

    • Use your application's existing SCIM endpoints for automated provisioning operations

    • Model complex authorization structures using OAA's flexible templates (applications, resources, permissions, custom properties) for Access Graph visibility, Access Reviews, and other Veza features.

    • Gather authorization metadata using a variety of methods (custom connectors, APIs, manual JSON payloads, CSV files)

    Action Type
    Supported
    Description

    See for details on each action type.

    1. Administrative access in Veza to configure the integration

    2. An existing integration in Veza with at least one successful extraction

    3. Your custom application must expose SCIM 2.0-compliant endpoints; see below

    To enable the integration:

    1. In Veza, go to the Integrations overview

    2. Search for your custom OAA application integration

    3. Check the box to Enable usage for Lifecycle Management

    To verify the configuration:

    1. Open Lifecycle Management > Integrations

    2. Search for the integration and click to view details

    3. In the Properties panel, verify Lifecycle Management Enabled is active

    There are several potential ways to integrate a custom application for automated lifecycle management and access requests:

    1. External SCIM for Open Authorization API: You may build your OAA integration using the custom application template and leverage dedicated SCIM endpoints for user and group management. This is useful when you need full control over how authorization metadata is represented in the Veza Access Graph:

      • Your application supports SCIM, and you want to model a wider range of authorization entities and metadata (e.g., credentials, resources) than the Veza SCIM integration supports.

      • You already have a custom OAA integration and want to add provisioning capabilities using SCIM.

    Aspect
    External OAA with SCIM Write-Back
    Built-In SCIM Connector

    This document describes how to enable External SCIM for an Open Authorization API integration, and supported actions.

    Data Gathering (OAA):

    You will need to design and build a custom integration to publish information about the application to the Veza Access Graph:

    • The payload can include local users, groups, permissions, resources, and complex authorization relationships

    • Data can be gathered from any source: APIs, databases, configuration files, etc.

    See the rest of the Open Authorization API documentation for examples and best practices when designing and deploying custom integrations.

    Lifecycle Management (SCIM):

    You can enable the SCIM connection at the custom provider level:

    • Setting provisioning: true and external_lifecycle_management_type: SCIM for the custom provider enables Veza to use your application's SCIM endpoints for provisioning

    • Provide SCIM connection information and credentials (configuration_json)

    • Veza maps lifecycle actions to SCIM operations (

    Important: When configuring a custom application for SCIM integration, the OAA payload structure (Application template) and SCIM configuration serve different purposes:

    • The OAA Payload (push_application() or API push) defines local users, groups, permissions, and resources used for visibility and authorization modeling in Veza, and can be updated independently.

    • The SCIM Configuration (configuration_json) for the custom provider defines how to connect to SCIM endpoints (including authentication, URL, and endpoint paths), and is used only for lifecycle management and access request operations.

    Both must be consistent (describe and contain the same users and groups), but are configured separately.

    Your application must expose SCIM 2.0 compliant endpoints with the following operations:

    User Management:

    • GET /Users - List and filter users

    • GET /Users?filter=userName eq "{username}" - Query users by userName

    • POST /Users - Create new users

    Group Management:

    • GET /Groups - List groups

    • GET /Groups/{id} - Retrieve specific group by ID

    • POST /Groups - Create new groups

    Note: If the Users and Groups APIs are not at the standard /Users and /Groups paths, you can specify alternate endpoint paths in the configuration.

    Your SCIM API must support one of the following authentication methods:

    • Bearer Token: API token passed in Authorization: Bearer {token} header

    • Basic HTTP Authentication: Username and password passed in Authorization: Basic {credentials} header

    The authentication credentials must have both read and write permissions to the SCIM endpoints.

    To synchronize custom attributes beyond the standard SCIM user schema:

    • Expose a GET /Schemas endpoint that returns SCIM schema definitions

    • Enable schema fetching in your configuration (see Configuration section)

    External SCIM for Lifecycle Management is configured via the Veza REST API.

    Create a Custom Provider that uses external SCIM endpoints specifically for lifecycle management:

    Required Fields

    Field
    Required
    Description

    Configuration JSON Parameters

    The configuration_json field contains SCIM endpoint connection details used only for provisioning operations. It does not affect your OAA payload structure.

    Configuration Key
    Required
    Description
    Example Value

    * One of scim_token or the username/password pair is required for authentication.

    Example Configuration with Bearer Token:

    Example Configuration with Basic Authentication:

    Push the OAA Application Payload as normal. See the for details.

    Veza creates entities in Access Graph based on the OAA payload, which can be targeted in lifecycle management operations:

    • local_users in your Application template → Users to provision via SCIM

    • local_groups in your Application template → Groups to manage via SCIM

    Entity types are named according to the following pattern:

    • User Entity Type: OAA.{application_type}.User

    • Group Entity Type: OAA.{application_type}.Group

    Where {application_type} is the value you specify in your OAA Application template when building the payload. For example, if the application is defined:

    The resulting entity types are:

    • OAA.CustomerPortal.User

    • OAA.CustomerPortal.Group

    When Veza provisions users via SCIM, transformers can map attributes from your policy source of identity to SCIM properties:

    Veza Attribute (in Policy)
    SCIM Property
    Type
    Required
    Description

    If the SCIM service exposes a /Schemas endpoint and you enable scim_extension_schemas: true, Veza can synchronize custom extension attributes beyond the standard SCIM user schema. Extension attributes are mapped using the schema URN as defined by your SCIM implementation.

    The following SCIM operations are performed when Lifecycle Management actions execute:

    Create a new user in the target application.

    SCIM Operation:

    The SCIM endpoint creates the user and returns the user object with an assigned id.

    Updates an existing user's attributes (one-time or continuously).

    SCIM Operations:

    1. Query for existing user:

    2. Update the user:

    Remove access when a user leaves the organization or changes roles. The user account is deactivated, but data is preserved.

    SCIM Operation:

    Deprovision sets active=false, which disables login but preserves the user record.

    Permanently remove a user account.

    SCIM Operation:

    Grant a user access via group membership.

    SCIM Operations:

    1. Retrieve group details:

    2. Add user to group:

    Revoke a user's access by removing group membership.

    SCIM Operation:

    Creates a new group so that it can be granted as an entitlement.

    SCIM Operation:

    âś…

    Deactivate user accounts (sets active=false in SCIM)

    Delete Identity

    âś…

    Permanently delete user accounts from the target application

    Create Entitlement

    âś…

    Create new groups in the target application

    SCIM connection details for the custom application (URL, authentication credentials)

    Full SCIM Connector: Use the built-in SCIM connector for both basic data gathering and lifecycle management. This will provide visibility into supported SCIM entities and relationships with schedulable extractions, but not for the full range of entities and metadata that might be modeled using the Application Template such as roles and resources.

  • Custom REST API Actions: Actions in Veza may directly call any external API and capture the response in audit trails. This can enable Lifecycle Management and Access Requests for any target system, provided it has appropriate endpoints for managing users and access controls.

  • Via SCIM endpoints

    Via SCIM endpoints

    Use Case

    Complex custom applications where visibility or access reviews are needed.

    Standard SaaS with SCIM support

    POST /Users
    ,
    PATCH /Users/{id}
    , etc.)

    GET /Users/{id} - Retrieve specific user by ID

  • PATCH /Users/{id} - Update user attributes

  • DELETE /Users/{id} - Delete user (required if using Delete Identity action)

  • PATCH /Groups/{id} - Update group membership

  • DELETE /Groups/{id} - Delete group (optional)

  • Yes

    Must be set to true to enable Lifecycle Management

    external_lifecycle_management_type

    Yes

    Lifecycle management mode (use "SCIM" to enable SCIM-based provisioning)

    configuration_json

    Yes

    JSON-encoded string containing SCIM connection details (see structure below)

    "eyJhbGci..."

    username

    No*

    Username for basic authentication

    "scim-admin"

    password

    No*

    Password for basic authentication

    "secure-password"

    users_endpoint

    No

    Users endpoint path (defaults to Users if not specified)

    "Users"

    groups_endpoint

    No

    Groups endpoint path (defaults to Groups if not specified)

    "Groups"

    scim_extension_schemas

    No

    Fetch SCIM schemas for extension attribute support (default: false)

    true

    ca_certificate

    No

    Custom CA certificate for SSL verification (PEM format)

    "-----BEGIN CERTIFICATE-----..."

    emails

    Array

    No

    Email addresses

    display_name

    displayName

    String

    No

    User's display name

    title

    title

    String

    No

    Job title

    nick_name

    nickName

    String

    No

    Casual name

    external_id

    externalId

    String

    No

    External system identifier

    phone_numbers

    phoneNumbers

    Array

    No

    Phone numbers (JSON array)

    addresses

    addresses

    Array

    No

    Physical addresses (JSON array)

    ims

    ims

    Array

    No

    Instant messaging addresses (JSON array)

    photos

    photos

    Array

    No

    Photo URLs (JSON array)

    locale

    locale

    String

    No

    User's locale

    preferred_language

    preferredLanguage

    String

    No

    Preferred language

    profile_url

    profileUrl

    String

    No

    Profile page URL

    timezone

    timezone

    String

    No

    User's timezone

    user_type

    userType

    String

    No

    User classification

    formatted_name

    name.formatted

    String

    No

    Full formatted name

    family_name

    name.familyName

    String

    No

    Last name

    given_name

    name.givenName

    String

    No

    First name

    middle_name

    name.middleName

    String

    No

    Middle name

    Sync Identities

    âś…

    Create new users or update existing user attributes in the target application

    Manage Relationships

    âś…

    Add or remove users from groups

    Extraction Method

    You build the OAA push payload directly

    Auto-discovery via SCIM endpoints

    Authorization Modeling

    Full OAA Application support (roles, permissions, resources)

    Users and groups only

    name

    Yes

    Display name for the Custom Provider in Veza

    custom_template

    Yes

    OAA template type ("application")

    scim_url

    Yes

    Base URL for SCIM API (without /Users or /Groups path)

    "https://api.myapp.com/scim/v2"

    scim_token

    No*

    user_name

    userName

    String

    Yes

    Unique username

    Supported Actions

    Enabling Lifecycle Management for Custom Applications (OAA SCIM)

    Prerequisites

    Configuration Steps

    Lifecycle Management and Access Requests with Open Authorization API

    How It Works

    Required SCIM 2.0 Endpoints

    Authentication

    Optional: Extension Attributes

    Configuration

    Create Custom Provider with External SCIM

    Push OAA Payload

    Entity Types and Identity Mapping

    Attribute Synchronization

    Mapping OAA to SCIM

    Extension Attributes

    Provisioning Operations

    Sync Identities (Create User)

    Sync Identities (Update User)

    De-provision Identity

    Delete Identity

    Manage Relationships (Add User to Group)

    Manage Relationships (Remove User from Group)

    Create Entitlement (Create Group)

    Supported Actions
    OAA custom application
    Required SCIM 2.0 Endpoints
    Getting Started Guide

    De-provision Identity

    Lifecycle Management

    provisioning

    Bearer token for authentication

    emails

    curl -X POST "https://{VEZA_URL}/api/v1/providers/custom" \
      -H "authorization: Bearer {API_KEY}" \
      -H "Content-Type: application/json" \
      --data '{
        "name": "MyCustomApp",
        "custom_template": "application",
        "provisioning": true,
        "external_lifecycle_management_type": "SCIM",
        "configuration_json": "{\"scim_url\":\"https://api.myapp.com/scim/v2\",\"scim_token\":\"your-bearer-token\"}"
      }'
    {
      "scim_url": "https://api.customerportal.internal.com/scim/v2",
      "scim_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
      "scim_extension_schemas": true
    }
    {
      "scim_url": "https://legacy.mycompany.com/api/scim",
      "username": "scim-service-account",
      "password": "secure-password-here"
    }
    custom_app = CustomApplication(
        name="CustomerPortal",           # Display name
        application_type="CustomerPortal" # This determines entity types!
    )
    POST /Users
    Content-Type: application/scim+json
    {
      "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
      "userName": "jane.doe",
      "name": {
        "givenName": "Jane",
        "familyName": "Doe",
        "formatted": "Jane Doe"
      },
      "emails": [
        {"value": "jane.doe@company.com", "primary": true}
      ],
      "active": true
    }
    GET /Users?filter=userName eq "jane.doe"
    PATCH /Users/{id}
    Content-Type: application/scim+json
    {
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
      "Operations": [
        {"op": "replace", "path": "displayName", "value": "Jane Smith"}
      ]
    }
    PATCH /Users/{id}
    Content-Type: application/scim+json
    {
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
      "Operations": [
        {"op": "replace", "path": "active", "value": false}
      ]
    }
    DELETE /Users/{id}
    GET /Groups/{groupId}
    PATCH /Groups/{groupId}
    Content-Type: application/scim+json
    {
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
      "Operations": [
        {
          "op": "add",
          "path": "members",
          "value": [{"value": "{userId}"}]
        }
      ]
    }
    PATCH /Groups/{groupId}
    Content-Type: application/scim+json
    {
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
      "Operations": [
        {
          "op": "remove",
          "path": "members",
          "value": [{"value": "{userId}"}]
        }
      ]
    }
    POST /Groups
    Content-Type: application/scim+json
    {
      "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
      "displayName": "Engineering Team"
    }