All pages
Powered by GitBook
Couldn't generate the PDF for 153 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

AWS DynamoDB

Discovery of DynamoDB Data Resources with Veza

Veza will automatically catalog DynamoDB resources for configured AWS accounts. All discovered DynamoDB tables, secondary indexes, and streams can be viewed in the data catalog, with cross-service effective permissions available in Access Graph search. DynamoDB insights are included in select Reports, or can be viewed using the Saved Queries panel.

Notes

To extract authorization metadata for DynamoDB, the IAM policy granting discovery and extraction permissions must include the following statement:

  {
      "Sid": "DynamoDB",
      "Effect": "Allow",
      "Action": [
        "dynamodb:ListTables",
        "dynamodb:DescribeTable",
        "dynamodb:ListStreams",
        "dynamodb:DescribeStream"
        ],
      "Resource": "*"
  }

These permissions are included in the latest ; if you are upgrading from release 2021.6.xyou will need to update the policy attached to the Insight Point, IAM user, or IAM role used for discovery.

Supported Resources / Sub-resources

  • DynamoDB Table

  • DynamoDB Secondary Index

  • DynamoDB Stream

AWS KMS

Automatic Classification for AWS Key Management Service

Veza natively supports AWS Key Management Service (KMS) for all configured AWS accounts. You can use the Access Graph to display all Customer Master Keys (CMKs), and view cross-service relationships between IAM roles and policies, KMS keys, and data sources.

Any AWS tags and aliases are automatically extracted when discovering KMS keys. These can be viewed from the entity details, and used to filter search results.

Configuration

As KMS discovery is enabled by default, no additional configuration is required. For more granular control over which AWS data resources are cataloged, you can select specific services for extraction by navigating to the Veza Integrations page, and choosing the "edit" option for the AWS account.

In order for a CMK to be discoverable, its Key Policy must have IAM permissions enabled, or grant the Veza AWS IAM principal directly. are enabled by the default AWS KMS key policy, by a statement such as:

To read authorization metadata for KMS, the IAM policy used by the Veza-AWS connector must include the following statement:

The last two permissions (kms:GetKeyRotationStatus and kms:ListKeyRotations) are required to show the AWS KMS CMK "Last Rotated At" attribute in Veza.

Adobe Enterprise

Configuring the Veza integration for Adobe Enterprise.

Overview

The Adobe Enterprise integration enables Veza to discover and analyze users, groups, and administrative roles within your Adobe environment. This integration uses Adobe's User Management API (v2) to provide visibility into user access, group memberships, and product license assignments across your Adobe organization.

The integration supports:

  • Discovery of Adobe Enterprise users and their properties

Add Existing AWS Accounts

Integrate multiple existing accounts in an Organization using AWS CloudFormation

AWS CloudFormation allows organizations to easily deploy AWS resources into existing accounts within the AWS Organization. Veza integrates with AWS CloudFormation to enable one-touch registration of AWS accounts with the Veza platform.

To control which AWS accounts will register with the Veza platform, the provided CloudFormation template can apply to the AWS Organization as a whole, specific Organizational Units within the AWS Organization, or specific AWS accounts.

The template will create the required IAM resources and a Lambda function responsible for registering and updating the managed account where it is deployed, and create a Veza AWS Integration for the account.​

Integration Details

Jenkins

Configuring the Veza integration for Jenkins

Overview

The Veza integration for Jenkins enables the discovery of Users and Roles, and permissions. One configured, Veza uses Jenkins APIs to populate the Access Graph with entities and metadata. The integration supports project-based Matrix Authorization and role-based access controls.

To enable the integration:

Jenkins Setup

Create a user and API token for the Veza integration:

  1. Create a Jenkins user for the integration. Log in to Jenkins and go to Dashboard → Manage Jenkins → Users → Create User. Enter the name, password, and email-address and save your changes.

  2. Assign them a role with the Overall Read permission under Manage Jenkins > Manage and Assign Roles.

  3. Get an API token for the user. Browse to your Jenkins instance, log in and go to (Your Username) > Configure > API Token.

  4. Click Add New Token. Give the token a name and save the value.

Veza Setup

Add the integration to Veza:

  1. Browse to your Veza instance and log in.

  2. Go to Integrations.

  3. Click Add Integration. Select Jenkins as the integration to add. Click Next.

  4. Complete the required fields:

    • Jenkins Token: the token you created for the integrations.

    • URL: URL of the Jenkins environment. Ensure the URL ends with a /.

    • Username: Integration user name.

  5. Click Save to enable the integration.

Supported Entities

ID and Name are collected for both users and roles. Veza discovers and processes all permissions found in Jenkins.

Jenkins User

A Jenkins User represents an account with specific permissions and roles within the Jenkins automation server. This entity is subject to access control with varying levels of permissions, such as read, write, and execute, on different Jenkins resources.

Property
Description

full_name

Full name for the user

absolute_url

URL for the user. The ID is part of the absolute URL

Jenkins Role

A Jenkins Role is a set of capabilities assigned to a Jenkins User or group of users within Jenkins.

Property
Description

Name

Name of the role

Type

Currently only "USER" type roles. (no groups).

recommended policy
{
  "Sid": "Enable IAM policies",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:root"
   },
  "Action": "kms:*",
  "Resource": "*"
}
IAM policies
  {
    "Sid": "KMS",
    "Effect": "Allow",
    "Action": [
      "kms:GetKeyPolicy",
      "kms:ListAliases",
      "kms:ListKeyPolicies",
      "kms:ListKeys",
      "kms:ListResourceTags",
      "kms:DescribeKey",
      "kms:GetKeyRotationStatus",
      "kms:ListKeyRotations"
    ],
    "Resource": "*"
  }

Mapping of user groups and product profiles

  • Analysis of group types and license quotas

  • Adobe admin role assignments

  • Prerequisites

    The integration uses OAuth 2.0 client credentials flow. You will need:

    • An Adobe Enterprise account

    • Adobe Organization ID (format: xxxxx@AdobeOrg)

    • API credentials from Adobe Developer Console (Client ID and Client Secret)

    • Veza platform access with permissions to add new integrations

    The integration uses Adobe's User Management API v2 to collect:

    • Users: /v2/usermanagement/users/{org_id}

    • Groups: /v2/usermanagement/groups/{org_id}

    Finding Your Organization ID

    The Organization ID is a unique identifier in the format {hex_number}@AdobeOrg (e.g., A495E53@AdobeOrg). You can find this value:

    1. In the Adobe Admin Console URL path when logged in

    2. In the Adobe IO Console under your User Management integration settings

    Generating Adobe Credentials

    Follow the instructions in Setting up the OAuth Server-to-Server credential to create a new Project and credentials.

    Select the "User Management API" when configuring the Products & services for the Project.

    Note the API Key (Client ID) and generated access token (Client Secret).

    Configuring Adobe Enterprise on the Veza Platform

    1. In Veza, use the main menu to open the Integrations page.

    2. Click Add Integration and search for Adobe Enterprise.

    3. Click on Adobe Enterprise and to open the configuration form.

    4. Enter the required information:

      Field
      Description
      Required
      Format/Notes
    5. Click Create Integration to save the configuration.

    Verifying the Integration

    1. To check integration status:

      1. On the Veza Integrations list, click the integration name to view details.

      2. On the details page, review the list of data sources.

      3. Use the Status column to check if the data source is unavailable or has an error.

      4. Click on an individual status to show more details.

    2. To view discovered entities:

      1. On the Veza Integrations list, click View Dashboard to show an overview of the entities Veza has discovered.

      2. Click an entity type to view the results in Query Builder.

      3. Review the entities to validate that results and attributes are as expected.

    Notes and Supported Entities

    Application

    Type: "Adobe Enterprise"

    Users

    Attribute
    Description

    id

    Unique identifier for the user

    name

    Username used for authentication

    email

    Primary email address for the user

    isActive

    Boolean indicating if the user account is active

    first_name

    User's first name

    last_name

    User's last name

    Groups

    Attribute
    Description

    id

    Unique identifier for the group (converted from integer)

    name

    Display name of the group

    group_type

    Type of Adobe group

    product_name

    Name of associated Adobe product (if applicable)

    license_quota

    Number of available licenses for the group

    Built-in Roles and Permissions

    The integration supports three built-in administrative roles:

    Role
    Permission
    Description

    org

    org

    Organization-level administration

    deployment

    deployment

    Deployment management

    support

    support

    Support access

    Each role has a corresponding permission of the same name. All permissions are of type "uncategorized".

    Role Properties

    Attribute
    Description

    id

    Role identifier (matches name)

    name

    Name of the role ("org", "deployment", or "support")

    permissions

    List of permissions associated with the role

    Permission Properties

    Attribute
    Description

    name

    Name of the permission (matches role name)

    permissionType

    Type of permission (always "uncategorized")

    Relationships

    Relationship Type
    Description

    Group Membership

    Associates users with their groups

    Role Assignment

    Associates users with administrative roles

    Permission Grant

    Associates roles with their corresponding permissions

    Additional Resources

    • Adobe User Management API Documentation

    • Adobe Admin Console

    Veza's AWS Organizations integration is delivered as an AWS CloudFormation template that can be installed in the Organization's root account. The integration consists of three main infrastructure components that will be deployed to target accounts:
    1. An AWS Lambda function:

      • This Lambda function executes when the AWS CloudFormation StackSet is first deployed and on any subsequent update or delete requests

      • This function interacts with Veza APIs to ensure that the target account is registered as a Cloud Provider in the organization's Veza platform and that its registration details are up-to-date

    2. An IAM Role and Policy for the target account to allow Veza to assume an IAM Role with read-only access and discover the resources inside the account

    3. An AWS Secrets Manager secret:

      • The Veza API key required for interacting with Veza APIs is encrypted and stored in the target account.

      • A strict IAM policy gives the AWS Lambda function access to this key for interactions with the Veza API ​ The AWS Lambda function executes upon initial deployment of the AWS CloudFormation StackSet, as well as upon updates or deletes to the StackSet, allowing for centralized configuration control of the organization's AWS integrations.

    Installation

    Before deploying the Veza AWS Organizations integration, three pieces of data are required.

    1. Make note of the URL used to connect to Veza (ex: https://example.vezacloud.com)

    2. Generate an API key on the Veza platform for use by the CloudFormation template

    3. Generate a UUID value for use as the ExternalId when Veza assumes the read-only IAM role. The UUID must be in standard format (e.g., 123e4567-e89b-12d3-a456-426614174000)

    AWS Configuration

    The following steps should be completed in the AWS Organizations root account by a user with permission to deploy CloudFormation StackSets.

    1. Log into the AWS console, click Services, then search for and select CloudFormation.

    2. In the left navigation bar, click StackSets.

    3. In the right corner of the main pane, click Create StackSet.

    4. In Step 1: Choose a Template, leave the default values selected and provide https://veza-controltower.s3.us-east-2.amazonaws.com/veza.yaml in the Amazon S3 URL field.

    5. In Step 2: Specify StackSet Details, provide the following:

      1. StackSet Name: enter a display name for the CloudFormation StackSet

      2. StackSet Description: enter an optional description of the CloudFormation StackSet

    6. In Step 3: Configure StackSet options, add any desired tags, ensure Managed execution is set to Inactive, and click Next

    7. In Step 4: Set Deployment Options, provide the following, leaving the remaining options with their default values:

      1. Deployment Targets: select either Deploy to organization or Deploy to organizational units (OUs).

        1. If Deploy to organizational units

    8. In Step 5: Review, review the entered parameters, scroll to the bottom of the form, and accept the IAM Role disclaimer, then click Submit

    Deployment Timing: After the CloudFormation StackSet is provisioned, it may take several minutes for IAM changes to propagate in AWS. If you see integration failures initially, wait 2-3 minutes before troubleshooting. The Lambda function will attempt to register accounts with Veza as the stack resources complete deployment.

    After the CloudFormation StackSet is provisioned, the integration is enabled. The Stack resources will be deployed into the target accounts and will register with the Veza platform as they complete.

    S3 Information

    Veza CloudFormation scripts are hosted on AWS S3. You can either use the defaults provided below or host your own modified versions. ​ If using a customized template, you should update the Amazon S3 URL when creating the CloudFormation StackSet with the URL of your customized version. ​

    • CloudFormation Template Link: https://veza-controltower.s3.us-east-2.amazonaws.com/veza.yaml

    AWS RDS PostgreSQL

    Creating a local user for gathering database-level metadata

    When connecting an AWS account to Veza, the recommended IAM policy includes permissions to discover PostgreSQL instances and clusters on RDS. To gather additional metadata, Veza will need to be able to execute database commands as a local user, as described in this document.

    Prerequisites

    • AWS IAM must be enabled

    • You will need administrator privileges to create the local user, which will be used to connect at runtime

    • An is recommended for RDS PostgreSQL discovery.

    Granting Veza Access

    There are two options to allow Veza access to RDS PostgreSQL databases, depending on whether your instance configuration has revokedpublic privileges for the pg_catalog schema, as is a common security practice.

    A) If you if you have not revoked the default public privileges on your schema, you only need to create the user and grant the rds_iam privilege:

    B) If you have revoked the default privileges from your schema, you should instead run the following command to create the user and grant select permissions for the required tables:

    Verify that the RDS PostgreSQL DB User specified in the Veza IAM policy for the integration is the same as the local database user you create, for example:

    "Resource": "arn:aws:rds-db:us-east-1:123456789:dbuser:*/<my_veza_db_user>"

    Note that in the current release, the local username must be the same for all the RDS PostgreSQL resources to discover. You can specify this RDS PostgreSQL DB User name when configuring an .

    The next time Veza connects to the AWS account, the database will be registered and appear under "Discovered Data Sources" on the Integrations > All Data Sources tab.

    IAM Policy for RDS Discovery

    The following sections must be included in your Veza IAM policy. Update the bracketed values to contain your actual region, account ID, and the database username you specified when .

    CSV Upload API

    Automating updating CSV integration data

    Overview

    In addition to using a simple web interface to update CSV data manually, you can automate a process to push new data using the Veza REST API and refresh the Veza graph. This document includes example utilities using Python and CLI tools.

    Using the Upload CSV REST API

    After creating a CSV upload integration, you can use the REST API operation to upload new CSV data.

    Whenever a CSV is submitted, it is processed based on the current configuration of the CSV Upload Integration provider, including any column mapping settings.Authentication: To make API calls, you must include an authorization token in the header of each request. This can be:

    • A Personal API Key for a Veza administrator

    • A Team API Key, for a team assigned to manage CSV Upload integrations

    See for more details on creating API keys.

    Note: The CSV data must be complete for each upload. Veza will remove entities from the Graph for any entities that were present in the previous upload, but not in the current upload.

    Retrieving Integration IDs

    Using the REST API requires the Integration (Provider) and Data Source IDs. You can retrieve these in Veza on the Integration Details > Data Source tab:

    1. On the Veza Integrations page, click the CSV integration to view details

    2. On the Data Source tab, click the data source name to view details

    3. Copy the values from the Properties table:

      1. The unique data source "Id"

    Uploading the Data

    Uploading the CSV data is made with a post call to the /api/v1/providers/custom/{provider_id}/datasources/{data_source_id}:push_csv endpoint.

    Note: The CSV contents must be base64-encoded into the JSON body of the request. Raw CSV values are rejected. You can automatically convert the data as part of your implementation, as shown below.

    Example using Curl

    Example using Python

    Beeline

    Configuring the Veza integration for Beeline

    Overview

    Early Access: Beeline is available in Early Access. Please contact our support team to enable the integration.

    The Veza integration for the Beeline workforce platform enables discovery of Beeline employees, and can be enabled as a source of identity for lifecycle management policies. HRIS metadata from Beeline can be used to enrich queries, access reviews, and enable provisioning and de-provisioning flows when employees are added or removed, or their status changes.

    Configuring Beeline

    The Veza Beeline connector uses Beeline's Reporting as a Service (RaaS) feature to retrieve employees and their attributes.

    After enabling RaaS, a BeeLine report with the corresponding values must be created in advance. Please contact our support team to coordinate report creation for the latest supported attributes.

    1. Ensure that the RaaS feature is enabled.

    2. Generate an API key for the integration user, that Veza will use for the discovery. This user can be an existing Beeline user or a new user.

      1. Note the ClientSecret, UserName and UserAPIKey from the API Authentication Page

    Configuring the Beeline Integration on Veza

    1. On the Veza Integrations page, click Add Integration and locate the Beeline tile.

    2. Configure the integration with the following fields:

      1. Name - Name for the integration

      2. Site ID - Customer or Project identifier for the Beeline instance

    Notes and Supported Entities

    Beeline Employee

    Employee fields ingested by Veza will depend on the report configuration. Currently, the following attributes are supported:

    • id

    • employee number

    • first name

    • last name

    Microsoft SharePoint Server

    Configuring the Veza integration for SharePoint Server (on-premises).

    Overview

    Veza can discover and analyze permissions in SharePoint Server environments that are configured with Microsoft Entra ID (formerly Azure AD) federated authentication. This offers visibility into your on-premises SharePoint infrastructure using an existing Azure Integration, including:

    • Site collections and sub-sites discovery

    • Document libraries and folders

    • Effective permission analysis

    • Microsoft Entra ID user and group federation

    • Optional site filtering with allow and deny lists

    Prerequisites

    • SharePoint Server 2013 or newer

    • The SharePoint environment must be configured for federated authentication with Microsoft Entra ID following Microsoft's

    • The Azure integration in Veza must be configured with a valid SSL certificate for SharePoint site discovery (Signed certificate recommended for production environments)

    Configuring the Azure Integration for SharePoint Server

    You can connect to SharePoint by providing a certificate for app-only access when configuring an Azure integration. For testing environments, you can generate a self-signed certificate following the .

    The integration requires read-only API permissions to discover SharePoint resources:

    1. Go to the Integrations page and add or edit an Azure integration, following the instructions in .

    2. In Azure, create or edit the app registration for the integration with the additional API scopes:

      • SharePoint:

        • User.Read.All

    Okta MFA status

    Additional steps may be needed to fully gather enrolled MFA factors for Okta identities

    If your Okta Multi-factor enrollment policies are such that traffic from Veza's Cloud IP Addresses is denied the ability to use a factor, Veza will not be able to detect user enrollment in that factor. As a result, the "MFA Active" property for Okta users will be "False," even if factors are enabled for the user. To prevent this, you can can:

    • Configure an Okta Network Zone that allows optional MFA factors

    • Use an Insight Point to connect to Okta from an IP address internal to your data center that does not have these restrictions

    See below for more details and steps to enable:

    Background

    Okta have the ability to not only set enrollment but also define usage. MFA enrollment policies work by evaluating from the highest priority to the lowest priority at the policy level (filtered by groups), and then at the rule level (filtered by and ).

    This means that if there is not a policy rule that fits the incoming request, Okta will check the next policy that applies to the user until it finds one (Default Policy applies to everyone and Default Rule applies everywhere).

    Resolution

    There are 2 options to allow Veza to fully collect MFA enrollment.

    1. Configure a Network Zone specifically for the Veza IP Addresses and allow the factors as optional at the Policy level and deny the Enrollment at the Policy Rule Level:

      • Create an Okta Group to control scope during deployment.

      • Configure for under Gateway IPs.

    Confluent

    Configuring the Veza Integration for Confluent

    Overview

    The Veza integration for Confluent enables the discovery of Users, Groups, Roles, Clusters, and Environments from the Confluent platform. Veza uses Confluent APIs to populate the Access Graph with entities and metadata.

    This document explains how to enable and create a Confluent integration. See for more details.

    Concur

    Configuring the Veza integration for Concur

    Overview

    Concur is an enterprise-level expense management platform that automates expense reports, approvals, and payments. The integration facilitates data exchange between Veza and Concur, for user and role discovery.

    Dropbox

    Configuring the Veza integration for Dropbox

    Overview

    The Dropbox integration enables discovery of users, groups, folders, and files within a Dropbox Business account. Veza parses group memberships and permissions to show the full range of user access on the cloud-based content management, collaboration and file sharing service.

    • Access Reviews: Review user and group access to files and folders in Dropbox

    DocuSign

    Configuring the Veza integration for DocuSign

    Overview

    The DocuSign integration enables discovery of identities, groups, and permissions within a DocuSign account. It uses Open Authorization API to create the following entities:

    • Account → Custom Application

    Azure SQL Database

    Configuring Azure SQL database for Veza discovery

    Resources and authorization for Azure SQL Database are automatically discovered for connected Azure tenants, unless the service is disabled in the .

    To collect complete authorization metadata for each database, you will need to create a local database user that the app registration can connect as to execute read-only queries.

    • You will need access to Azure SQL Database(s) and permission to create the local user.

    • The Azure SQL Database must have an .

    Oracle EPM

    Configuring the Veza integration for Oracle Enterprise Performance Management (EPM)

    Overview

    The Veza integration for Oracle Enterprise Performance Management (EPM) discovers users, groups and roles assigned in EPM. Veza uses an Oracle EPM service account connect to the EPM APIs to run the built in EPM reports for user group and role assignments.

    RemoveVezaIntegrationOnDelete: set to true to remove AWS accounts from the Veza platform if this StackSet is deleted (default: true)
  • VezaApiToken: paste in the API key generated on the Veza platform

  • VezaApplicationUrl: paste in the URL of the Veza instance copied above

  • VezaDiscoveryAccountId: The AWS account ID that Veza uses to assume the read-only IAM role. Important: This value varies by Veza tenant. Copy the exact account ID shown in your Veza AWS integration setup page (typically 851725195086 or 276883211366). Do not use the default value in the template.

  • VezaExternalId: The externalId that Veza will provide when attempting to assume the IAM Role in the target accounts. Must be a valid UUID in standard format (e.g., 123e4567-e89b-12d3-a456-426614174000).

  • VezaRDSUser: this is an existing local user account with read privileges that will be used to discover RDS resources.

  • is selected, provide up to 10 AWS OU IDs and an optional
    Account Filter Type
  • Specify Regions: select a single region into which the AWS Lambda function will be deployed for the target accounts. Warning: Ensure only one region is specifed for the deployment; selecting multiple regions will lead to conflicts and require manual intervention to remove.

  • Find the Report ID by opening it in your browser and copying the UUID value from the URL. The report ID will be the part after the ReportID= parameter.

  • Note your Customer ID or Project ID from the Beeline URL. This will be the value after beeline.com such as beeline.com/acme/ or beeline.com/proj1345 depending on if it is a production or development tenant.

  • Client Secret - Client secret value from the API key generated

  • User Name - User name for corresponding API key

  • User API Key - The API key value

  • Report ID - UUID identifier for published report

  • URL - Optional: For non-production tenants the URL for connecting to the API. For development projects sites this value is typically https://projapi.beeline.com.

  • Enable lifecycle management (optional): On the Integrations page, find the BeeLine integration. In the Lifecycle Management column, toggle the slider to enable the integration as an identity source.

  • preferred name

  • display full name

  • canonical name

  • email

  • work location

  • cost center

  • employement status

  • is active

  • start date

  • job title

  • address

  • admin ou

  • current end date

  • external id

  • hiring manager name

  • internal job grouping

  • manager hierarchy level two name

  • manager hierarchy level three name

  • manager hierarchy level four name

  • requires system access

  • Search: Search for users based on permission type or group membership

  • Rules and Alerts: Create rules for alerts when users are added to critical groups or new users gain access to sensitive folders

  • See notes and supported entities for more details.

    Configuring Dropbox

    Veza connects to Dropbox with an OAuth 2.0 authentication flow. You will log in to Dropbox to approve permissions for the Veza application as part of adding the integration in Veza.

    Individual Permissions:

    • View information about members' Dropbox files and folders

    • View members' Dropbox sharing settings and collaborators and manually added Dropbox contacts

    • View basic information about members' Dropbox account such as username, email, and country

    Team Permissions:

    • View content of and information about your team's files and folders and view and edit governance data of your team's files and folders

    • View your team group membership and team membership

    • View structure of your team's and members' folders

    • View basic information about your team including names, user count, and team settings

    Configuring Dropbox on the Veza Platform

    To add a Dropbox account for discovery:

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and search for Dropbox. Choose it and click Next to add an integration.

    3. Enter the required information

    4. Click Authorize to approve the connection in Dropbox. Log in as a Dropbox administrator and click Allow to enable the integration.

    5. Click Create Integration to save the configuration.

    Field
    Notes

    Insight Point

    Choose whether to use the default data plane or a deployed Insight Point.

    Name

    A friendly name to identify the unique integration.

    Gather Private Folders

    If true, enable discovery of personal folders

    Notes and Supported Entities

    A Dropbox Business account (Dropbox Team) is the top level entity. A team has users (members) who can share their files and folders (resources). Permissions on the shared item can be Editor or Viewer. Users can belong to groups, which can also have permissions on files and folders.

    Veza shows team-owned (or account level) folders in addition to user’s folders.

    Veza creates the following Access Graph entities to model authorization in Dropbox:

    Dropbox Tenant

    Top-level entity representing a Dropbox Team.

    • Tenant Unique ID: Dropbox Team ID (e.g dbtid:asdasdaskjdnajksdakjdkasgAQDLO_eiMaQ)

    Dropbox User

    • Created at: Timestamp when the user account was created

    • User Unique Id: Unique identifier for the user

    • Email: User's email address

    • Groups: List of groups the user belongs to

    • Identity Unique Id: Unique identifier for the user's identity

    • Is active: Boolean indicating if the user account is active or not

    Dropbox Group

    • Group Unique ID: Unique identifier for the group

    Dropbox Group Membership

    Represents a User > Group assignment in Dropbox.

    Dropbox Permission

    • Permissions: Can be owner, editor, viewer, viewer_no_comment, traverse, other.

    Dropbox Folder

    The Dropbox Folder entity represents a folder in the Dropbox file system.

  • Sites.Read.All

  • Microsoft Graph API:

    • Directory.Read.All

    • Files.Read.All

    • Sites.Read.All

    • Reports.Read.All

  • Enable SharePoint discovery by providing a certificate for app-only access and granting optional API permissions as documented in Microsoft SharePoint Online.

  • If you are limiting the services discovered by the integration, ensure that SharePoint is enabled under Limited Services in the integration configuration.

  • (Optional) In the Limit Services > SharePoint section, add SharePoint site URLs to the allow or deny lists to limit extraction of specific sites. The integration will detect all on-premesis SharePoint sites included in the /sites/getAllSites Microsoft Graph API response.

  • Save your changes to the integration configuration after supplying the X.509 certificate and password, if encrypted.

  • When discovery completes, perform a Graph search for relationships between Azure AD Users and SharePoint Sites to validate that on-premises sites are appearing as expected.

  • official documentation
    Microsoft documentation
    Microsoft Azure

    Create a Veza MFA Enrollment Policy.

    • For Assigned Groups, enter the group created in step 1.

    • All authenticators are Optional (OIE requires 1 as Required).

    • Create a Veza Policy Rule:

      1. IF User's IP is "in zone" (Add the Zone for Veza's Cloud IP Addresses)

      2. AND User is accessing "Okta"

      3. THEN Enrollment is "Allowed if required authenticators are missing".

  • Test the configuration by adding users to the group.

    • Veza should see everything and user experience should not be affected.

    • After testing, Remove the "Assigned" Group, and Apply the "Everyone" group.

  • Have Veza traffic to Okta run through an Insight Point installed in your data center. This asumes your data center IP Addresses do not have the same restrictions as Veza's Cloud IP Addresses.

  • MFA enrollment policies
    Network Zones
    App Condition
    Network IP Zones
    Veza's Cloud IP Addresses

    Yes

    From Adobe Developer Console

    Name

    A unique name for this integration instance

    Yes

    Insight Point

    The Insight Point this integration will be associated with

    Yes

    Organization ID

    Adobe Organization ID

    Yes

    Must end with @AdobeOrg

    Client ID

    Adobe API Client ID

    Yes

    From Adobe Developer Console

    Client Secret

    domain

    Domain associated with the user's account

    country

    User's country

    account_type

    Type of Adobe account (adobeID/enterpriseID/federated)

    identities

    List of email addresses associated with the user

    groups

    List of group IDs the user belongs to

    Adobe API Client Secret

    The Insight Point egress IP must be allowed in the RDS
    .
  • Using an Insight Point is recommended when connecting to production environments. For testing purposes, you can use the internal Insight Point, assuming that firewall rules allow communication with Veza.

  • DB Authentication
    Insight Point
    AWS account
    adding the AWS account
    security group inbound rules

    UserGroups → Local Groups

  • User → Local User

  • Permission Profiles → Local Roles

  • Permission Profiles → Custom Permissions

  • Requirements

    To set up the DocuSign integration in Veza, you will need to create a DocuSign app and configure Veza with the necessary credentials. This includes the Client ID, Client Secret, and Refresh Token. Additionally, you will need the base URI for DocuSign API calls.

    Create a DocuSign App

    Using a DocuSign developer account, Create an App and get the Client ID and Client Secret:

    1. Go to Apps and Keys in DocuSign. Click Add App and Integration Key, and complete the required fields.

    2. Under Authentication, click Add Secret Key and save it to use as Client Secret.

    3. Save your changes and save the Integration Key to use as a Client ID.

    Obtain a Refresh Token

    Get a Refresh Token, following the instructions in How to get an access token with Authorization Code Grant. You will need to get an authorization code for the Veza app, and use it to request an access token.

    The response will contain the refresh token:

    Retrieve the DocuSign Base URI

    After obtaining an access token, you can retrieve your DocuSign base URI by making an API request:

    Copy the base_url from the response.

    Configuring DocuSign on the Veza Platform

    To enable Veza to gather data from DocuSign, follow these steps:

    1. Log in to Veza and go to Integrations

    2. In the main pane, click Add Integration. Click DocuSign.

    3. Complete the required fields:

    • Name: Friendly name to identify the DocuSign account in Veza

    • Base URL: DocuSign Base URI. Example, https://demo.docusign.net/restapi/

    • Client ID: Integration app Client ID

    • Client Secret: Integration app Client Secret

    • Refresh Token: Refresh Token for DocuSign API integration

    CREATE USER [db_user] WITH LOGIN;
    GRANT rds_iam TO [db_user];
    CREATE USER [db_user] WITH LOGIN;
    GRANT rds_iam TO [db_user];
    GRANT SELECT ON
      pg_catalog.pg_user,
      pg_catalog.pg_group,
      pg_catalog.pg_namespace,
      pg_catalog.pg_class,
      pg_catalog.pg_database,
      pg_catalog.pg_auth_members,
      pg_catalog.pg_attribute,
      pg_catalog.pg_roles,
      pg_catalog.pg_trigger,
      pg_catalog.pg_proc,
      pg_catalog.pg_collation,
      pg_catalog.pg_conversion,
      pg_catalog.pg_type,
      pg_catalog.pg_event_trigger,
      pg_catalog.pg_extension,
      pg_catalog.pg_foreign_data_wrapper,
      pg_catalog.pg_foreign_table,
      pg_catalog.pg_language,
      pg_catalog.pg_largeobject_metadata,
      pg_catalog.pg_operator,
      pg_catalog.pg_opclass,
      pg_catalog.pg_opfamily,
      pg_catalog.pg_policy,
      pg_catalog.pg_publication,
      pg_catalog.pg_sequence,
      pg_catalog.pg_foreign_server,
      pg_catalog.pg_statistic_ext,
      pg_catalog.pg_subscription,
      pg_catalog.pg_tablespace,
      pg_catalog.pg_ts_config,
      pg_catalog.pg_ts_dict,
      pg_catalog.pg_parameter_acl
    TO [db_user];
    {
      "Sid": "RDS",
      "Effect": "Allow",
      "Action": [
        "rds:DescribeDBInstances",
        "rds:DescribeDBClusters"
        ],
      "Resource": "*"
    },
    {
      "Sid": "RdsDbConnect",
      "Effect": "Allow",
      "Action": [
        "rds-db:connect"
        ],
      "Resource": "arn:aws:rds-db:<region>:<account_id>:dbuser:<cluster-name>/<db_user>"
    }
    {
        "access_token": "ACCESS_TOKEN",
        "token_type": "Bearer",
        "refresh_token": "REFRESH_TOKEN",
        "expires_in": 28800
    }
    curl --request GET https://account-d.docusign.com/oauth/userinfo
    --header "Authorization: Bearer <ACCESS_TOKEN>"

    The "Provider Id"

    Both values are in UUID format, e.g., 19b0c736-6686-4708-87e2-92171db6afb3.

    Retrieving IDs from Datasources details view
    Push Custom Provider Datasource CSV
    Authentication
    Configuring Confluent

    Before adding the integration to Veza, create a Confluent Cloud API key for the connection.

    Refer to Cloud API Keys for up-to-date instructions for creating an API key.

    Using Confluent Cloud Console:

    1. Before creating an API key associated with a service account, use RBAC to restrict access to applications that use the key.

    2. From the Administration menu, click Cloud API keys or go to https://confluent.cloud/settings/api-keys.

    3. Click Add key.

    4. Choose Granular Access as the scope.

    5. Choose whether to create the key associated with your user account or a service account.

      The API key and secret are generated and displayed.

    6. Click Copy to copy the key and secret to a secure location.

      Important:

      The secret for the key is only exposed initially in the Create API key dialog and cannot be viewed or retrieved later from the web interface. Store the secret and its corresponding key in a secure location. Do not share the secret for your API key.

    7. (Optional, but recommended) Enter a description of the API key to describe the intended use and distinguish it from other API keys.

    8. Select the check box to confirm you have saved your key and secret.

    9. Click Save. The key is added to the keys table.

    Using Confluent CLI:

    1. Sign in to your cluster using the confluent login command.

      Enter your Confluent Cloud credentials:

    2. Before creating a Cloud API key associated with a service account, use RBAC to restrict access to applications that use the key.

    3. Create the Cloud API key using the confluent api-key create command, specifying the resource (--resource) as cloud. By default, this associates the key with your user account. If you want to associate the key with a service account instead, specify the service account flag (--service-account). A description (--description) is optional but recommended.

    4. Save the API key and secret output in a secure location. The secret is not retrievable later.

    Record the API Key and API Secret values after creating the key.

    Configuring Confluent on the Veza Platform

    To enable Veza to gather data from the Confluent Cloud Platform:

    1. In Veza, navigate to Configuration > Integrations

    2. Click Add Integration and select Confluent as the type of integration to add.

    3. Enter the required information and click Create Integration

    Field
    Notes

    API Key

    The API key created on the Confluent Cloud platform

    API Secret

    The API secret created on the Confluent Cloud platform

    Notes and Supported Entities

    The Confluent integration discovers the following entities and attributes:

    Confluent Cluster

    Attribute
    Notes

    resource_name

    The Confluent Resource Name / URI of the cluster resource

    Confluent Environment

    Attribute
    Notes

    resource_name

    The Confluent Resource name / URI of the environment resource

    Confluent Group

    Attribute
    Notes

    filter

    The Common Expression Language filter expression that defines the group mapping

    resource_name

    The Confluent Resource Name / URI of the group mapping

    state

    A string representing the enabled/disabled state of the group mapping

    Confluent User

    Attribute
    Notes

    auth_type

    The user's authentication method (either AUTH_TYPE_LOACAL or AUTH_TYPE_SSO)

    description

    Optional string description of the user account

    email

    The user's email address

    resource_name

    The Confluent Resource name / URI of the environment resource

    Confluent Role

    Confluent roles are discovered and assigned to security principals; no additional metadata is gathered.

    Notes and Supported Entities
    Configuring Concur

    Pre-requisites

    Before configuring Concur, you must create a new integration application within Concur and generate OAuth 2.0 credentials. Follow these steps:

    1. Navigate to the OAuth 2.0 Application Management screen in Concur and create a new app.

      • Provide a name and description for the app.

    2. Add allowed grants:

      • refresh_token, password

    3. Add allowed scopes:

      • openid, identity.user.core.read, identity.user.enterprise.read, identity.user.ids.read, identity.company.core.read, spend.user.general.read, identity.user.coresensitive.read.

    4. Submit and note down the Client ID and Client Secret values.

    5. Go to the page. Enter the app ID and click submit.

    6. Note the Company UUID and Request Token. You will exchange the temporary token for a refresh token prior to configuring the integration in Veza.

    Generating a Refresh Token

    Use the curl command to obtain a refresh token. This command must be run within 24 hours of generating the request token.

    Replace placeholders with the actual Client ID, Client Secret, Company UUID, and Request Token:

    From the response, collect the refresh_token value, and use it to configure the integration in Veza.

    Configuring Concur in Veza

    1. In Veza, open the Integrations page.

    2. Click Add New and pick Concur as the type of integration to add

    3. Enter the Client ID, Client Secret, and Refresh Token, then Save the configuration

    Field
    Notes

    Client ID

    Obtained from Concur app settings

    Client Secret

    Obtained from Concur app settings

    Refresh Token

    Obtained using curl command

    Supported Entities and Properties

    Concur User

    A user account within the Concur system, typically for submitting, managing, and reporting business expenses. The connector supports user attributes:

    • is_active: True if User is active on Concur

    • cost_center: User’s cost center

    • employee_number: User’s employee number if set in Concur

    • start_date: User’s start date

    • termination_date: User’s termination date

    • email: User's email address

    Concur Role

    Concur Roles determine what level of access and abilities a user has within the system. Built-in roles include approver, processor, or administrator.

    The Concur connector currently discovers user roles for:

    • Base Concur application

    • Concur Spend integration

    The database user must have the same name as the Azure app registration used for discovery, or match the "DB User" name provided when configuring the connection.

    Create a local database user the Veza service principal can assume

    Connect to your database and create a user, updating db_user in the examples to match the name of the Veza app registration:

    Note that you must connect using Azure AD Authentication to create the Azure AD-connected local user.

    Grant select permissions to the sys schema:

    Grant Reader role to the Azure subscription

    The app registration must have the Reader role to the Azure subscription attached to the resources to discover. You can check if this was already configured during provider setup, by viewing the subscription's role assignments under Access Control (IAM):

    The reader role may already be assigned
    1. From your Azure portal, browse to Subscriptions and choose the registered to the SQL DB. From Access Control (IAM) choose Add > Add role assignments, and select the Reader role:

    2. Click Next, and choose Select members on the next screen. Select the Veza app registration.

    3. Review and assign the role. You can verify the subscription's role assignments from the main Access control panel.

    The next time Veza conducts discovery of your Azure tenant, the new data source will be registered and appear on the Configuration > Apps and Data Sources panel.

    provider settings
    Azure AD Admin configured
    Configuring Oracle EPM
    1. Create a service account in Oracle EPM for Veza to use:

      1. From Account Type list select Basic Auth and set a username and password

      2. Account must have Service Administrator role

      3. Note the username and password

      4. For more information on Service Accounts see

    2. Note the URL of the Oracle EPM instance

    Configuring Veza Platform

    1. In Veza, open the Integrations page.

    2. Click Add New and pick Oracle EPM as the type of integration to add

    3. Enter the required information and Save the configuration

    Field
    Notes

    URL

    URL of Oracle EPM instance

    Username

    Username for service account

    Password

    Password for service account

    Notes and Supported Entities

    Veza discovers and shows the following metadata for EPM entities. Attribute filters can be used to constrain searches and access reviews based on these properties

    Oracle EPM User

    Attribute (type)
    Description

    id (text)

    User login

    name (text)

    User display name (first + last)

    email (text)

    User email address

    Oracle EPM Group

    Attribute (type)
    Description

    name (text)

    Group name

    Oracle EPM Role

    Attribute (type)
    Description

    name (text)

    Role Name

    Note: Oracle EPM API does not return information on role configurations and permissions

    AWS RDS MySQL

    Discovering granular MySQL permissions with Veza

    When connecting an AWS account to Veza, the recommended IAM policy includes permissions to discover RDS instances and clusters. To gather additional metadata, Veza will need to be able to execute database commands as a local user, as described in this document.

    RDS MySQL databases are discovered by Veza via role assumption to a local MySQL user, granted the necessary read-only permissions. Veza creates authorization entities for:

    • RDS MySQL Database

    • RDS MySQL Function

    • RDS MySQL Instance

    • RDS MySQL Local User

    • RDS MySQL Local User Instance

    • RDS MySQL Procedure

    • RDS MySQL Role

    • RDS MySQL Role Instance

    • RDS MySQL Service

    • RDS MySQL Table

    • RDS MySQL Trigger

    By default, extraction excludes the buil-in MySQL tables sys, performance_schema, information_schema, and mysql. These system-created tables are potentially of interest as they can contain sensitive data, and are discoverable on an optional basis. Enable Gather System Tables in the parent AWS integration configuration to show these Table entities and permissions in Veza.

    Prerequisites

    • You will need admin access and privileges to create a local user, which will be used to connect at runtime

    • An is recommended for RDS MySQL discovery.

      • The Insight Point egress IP needs to be permitted in the RDS .

    Support for Amazon Aurora

    • RDS MySQL databases managed by Amazon Aurora are automatically discovered when RDS extraction is enabled for a configured AWS account.

    • Connected instances are mapped to the top-level Aurora RDS cluster in Access Graph search.

    • Since all instances in an Aurora cluster are replicas of the same MySQL database, each has the same database-level properties.

    1. Configure the IAM Policy

    Ensure that the IAM policy configured during AWS setup includes the <db_user> name of the MySQL user, and is the same as the RDS MySQL DB User name specified in AWS integration configuration. Below is a minimal policy allowing the required actions for discovery.

    To discover individual RDS instances across multiple regions, you will need to create additional Resource entries in the Veza IAM policy for each region, for example:

    "Resource": "arn:aws:rds-db:us-east-1:123456789:dbuser:*/veza_user" "Resource": "arn:aws:rds-db:us-west-1:123456789:dbuser:*/veza_user"

    Alternatively, you can use wildcard operator (*) to match all regions, accounts, and databases:

    "Resource": "arn:aws:rds-db:*:*:dbuser:*/veza_user"

    2. Create the local user

    Connect to your database, and execute the following command to create a Veza User and grant the needed privileges for discovery. Replace [veza_user] with the name of the actual database user specified in your policy:

    The next time Veza connects to the configured AWS account, the RDS MySQL server will be registered and appear under "Discovered Data Sources" on the Integrations > All Data Sources tab.

    Auth0

    Early Access: This integration is provided as an Open Authorization API (OAA) connector package. Contact our support team for more information.

    Auth0 IdP OAA Connector

    Overview

    The OAA connector for Auth0 populates an OAA Custom Identity Provider with discovered Auth0 Users. These identities can be mapped to other configured Veza data sources (Snowflake, Trino, etc.), or resources in other OAA Custom Applications.

    Collected Attributes

    Entity
    Property
    Value

    Setup Instructions

    Auth0

    1. Create a new application

      1. Provide the application a name

      2. Select "Machine to Machine Applications and click Create

      3. Select the

    Veza

    1. Generate an API key for your Veza user. API keys can be managed in the Veza interface under Administration -> API Keys. For detailed instructions consult the Veza User Guide.

    Running the connector

    Command Line

    1. With Python 3.8+, install the requirements into either a virtual environment or the system.

    2. Set the Veza API key, Auth0 Client ID, and Secret environment variables:

    3. Run the connector:

    Parameters

    Parameter
    Environment Variable Name
    Value

    AWS Redshift

    Configuring AWS Redshift for Veza discovery

    The recommended AWS connector policy only includes API permissions to get authorization metadata for Redshift clusters. To connect to Redshift databases for full discovery, a local Redshift user with the redshift:GetClusterCredentialsIAM privilege is required. You can allow this via IAM policy in one of two ways, described in the steps below.

    Additionally, the local user will also need read-only database permissions on the warehouses to discover.

    1. Update AWS IAM policy

    A) AWS can automatically create a local user with the same name as the IAM principal initiating the connection. This can be accomplished in your policy using the condition key ${redshift:DbUser}, as in line 6 of the following example:

    Note that the name of the provisioned Redshift user will be transformed to lowercase, and any dashes will be replaced with underscores (For an IAM user or role Veza-AI, the Redshift user name will be veza_ai).

    You will still need to manually grant the SELECT privileges for the local user using the commands in the section.

    B) If you would prefer to connect as a local user that you will create yourself, you must specify that user explicitly in the policy, for example:

    The db_user username must be the same as the "Redshift DB User User" specified when configuring the AWS account on the Veza Integrations page.

    Connect to the Redshift warehouse and create the user:

    2. Grant Redshift database permissions

    The redshift-data:ExecuteStatement only allows the Veza service principal to run Redshift queries—the exact data Veza can access is governed within Redshift. Database permissions must be granted to the local user for each instance you want to discover.

    Connect to the data warehouse and use the following GRANT SELECT command:

    The next time Veza conducts discovery for the parent AWS account, the instance will be registered and appear under "Discovered Data Sources" on the Integrations > All Data Sources_ tab.

    For further reference, see the in the official AWS documentation.

    Delinea Secret Server

    Configuring the Veza integration for Delinea Secret Server

    Overview

    The Veza integration for Delinea Secret Server enables the discovery of Users, Groups, Roles, and permissions from the Delinea Secret Server platform. Veza uses Delinea APIs to populate the Access Graph with entities and metadata.

    This document explains how to enable and create a Delinea Secret Server integration. See notes and supported entities for more details.

    Configuring Delinea Secret Server

    Before adding the integration to Veza, create or select a user account for the connection.

    To create a single user on the Delinea Secret Server platform, browse to your Delinea instance as an administrator, go to Admin -> User Management, then select Create User

    Once the user account has been created or identified, record the username and password for the account, then ensure that the account is assigned the following roles:

    Configuring Delinea Secret Server on the Veza Platform

    To enable Veza to gather data from the Delinea Secret Server platform:

    1. In Veza, open the Integrations page.

    2. Click Add New and pick Delinea as the type of integration to add.

    3. Enter the required information and Save the configuration.

    Field
    Notes

    Notes and Supported Entities

    The connector discovers the following entities and attributes:

    Delinea Secret Server User

    Attribute
    Notes

    Delinea Secret Server Group

    Attribute
    Notes

    Delinea Secret Server Role

    Attribute
    Notes

    LastPass

    Configuring the Veza integration for LastPass

    The Veza integration for LastPass Enterprise connects to the platform to discover users, groups, roles, and folders used to store and share passwords and other secrets. Use the integration to:

    • Search for LastPass users and shared folders, and create rules and alerts.

    • See effective permissions within LastPass for users and groups, based on their roles.

    • Review LastPass user > group, user > folder, and user > role assignments.

    Requirements

    LastPass enterprise policies can restrict API access to report-only. This policy must be disabled to permit the Veza integration to make the required API calls.

    You can view and manage this policy under LastPass Admin Console > Settings > Policies > Restrict Enterprise API to event reporting

    The connector uses the LastPass Enterprise API to fetch authorization metadata. You will need a LastPass account number (cid) and provisioning hash (prohash) to authenticate. To retrieve these values, log in to LastPass using an account with permission to access the Admin Console at .

    • Account ID: Unique Account ID provided by LastPass. This can be retrieved on page:

    • Provisioning Hash: This API secret can be generated on the LastPass Admin page. Go to to manage provisoning hashes.

    You can use an existing provisioning hash, which is unique for your organizations LastPass Enterprise API. If you cannot retrieve the current value, you will need to regenerate it and update any other applications to use the new hash.

    See for the latest guidance from LastPass.

    Veza setup

    To enable Veza to gather data from the LastPass platform:

    1. Browse to your Veza instance

    2. In the left navigation, expand Configuration, then click Integrations

    3. In the main pane, click Add Integration. Pick LastPass.

    4. Enter the required details:

    Notes and supported entities

    LastPass User

    Veza discovers and shows the following metadata for LastPass User entities. Attribute filters can be used to constrain searches and access reviews based on these properties:

    Attribute (type)
    Description

    LastPass Group

    Veza discovers and shows the following metadata for LastPass Group entities. Attribute filters can be used to constrain searches and access reviews based on these properties:

    Attribute (type)
    Description

    LastPass Folder

    LastPass folders have the following attributes:

    Attribute (type)
    Description

    LastPass Application Roles

    The Veza LastPass integration discovers the user's role in LastPass as either Admin or User. LastPass does not currently return information about customer-created Admin Levels. Any admin-level user will be assigned the Admin role for the LastPass application. All other users will be assigned the User role.

    LastPass Folder Roles

    Users assigned to a Shared Folder (either directly or by group membership) have Roles based on the configuration of permissions on the assignment.

    Veza creates these Access Graph entities to represent access controls enabled when managing Shared Folder recipients in LastPass:

    LastPass Configuration
    State
    Veza Role

    A user may have multiple roles on a folder based on the pairings of these permissions.

    BambooHR

    Configuring the Veza integration for BambooHR

    The Veza integration for BambooHR connects to the HRIS platform to discover user profiles and attributes, and group assignments within the application. BambooHR users typically access the platform to track hours worked, manage benefits enrollment, and administer payroll from a single platform. Use the integration to:

    • Search for users and filter the results based on metadata Veza collects.

    • Review user > group assignments within BambooHR.

    • Create alerts and rules to alert for changes in user attributes such as Activity Status.

    Requirements

    The connector uses the BambooHR Reports API to gather the required authorization metadata. To enable the connector on Veza, you will need to supply an API key and the company domain to connect to:

    • Company Domain: The name of the company from your BambooHR login URL: https://{company_domain}.bamboohr.com/.

    • API Key: Unique API Key provided by BambooHR. Each user can have one or more secret keys that identify that user to the API. The secret key is a 160-bit number expressed in hexadecimal form.

    To create an API key in BambooHR, follow these steps:

    1. Log in to BambooHR and click on your name in the upper right corner of any page to open the user menu. Optionally, you can create a dedicated BambooHR user for the integration, and complete these steps after logging in as that user. Note that users must have Full Admin access to create API keys.

    2. Click API Keys.

    See for official documentation on creating BambooHR API keys.

    Adding a BambooHR Integration to Veza

    To enable Veza to gather data from the BambooHR platform:

    1. Browse to your Veza instance.

    2. In the left navigation, expand Configuration, then click Integrations.

    3. In the main pane, click Add Integration and choose BambooHR.

    4. Enter the required details:

    Notes and Supported Entities

    Veza discovers and shows the following metadata for BambooHR User entities, which can be used to narrow searches and access reviews using attribute filters:

    Attribute (type)
    Description

    Looker

    This integration is provided as an Open Authorization API (OAA) connector package. Download the source code on GitHub.

    Looker OAA Connector

    Overview

    OAA connector for Google Looker focusing on Looker Models and Connections. Discovers Looker users and groups and provides authorization data for the Looker Models and database connections users can access based on their Looker roles.

    OAA Application Mappings

    This connector uses the OAA Application template. The following table shows how Looker entities are mapped to the template.

    Looker
    OAA Application

    Attributes

    Looker connector extracts the following attributes:

    User:

    • id - Looker ID

    • verified_looker_employee - Boolean for user is identified as an employee of Looker who has been verified via Looker corporate authentication

    • presumed_looker_employee - Boolean for User is identified as an employee of Looker

    Group:

    • id - Looker ID number

    Model Set:

    • id - Looker ID number

    • built_in - Boolean for if model set is built in

    • all_access - Boolean if the model set is configured to include all models

    Connection:

    • dialect - JDBC dialect connection is configured as

    • host - Database connection host

    • username - Database connection user name

    Setup

    Prerequisite

    1. Generate a Looker API3 key for a user with sufficient privileges to see all users, roles and models. The following scopes are required:

      1. see_users

      2. manage_models

    Command Line

    1. With Python 3.8+ install the requirements either into a virtual environment or otherwise:

    2. Export the Veza API keys and Looker connection information to the OS environment.

    3. Run the connector

      Optionally export the Veza URL to the environment as VEZA_URL and run with no parameters required.

    LDAP Server Configuration Examples

    Platform-specific examples for configuring LDAP servers to work with Veza.

    This guide provides platform-specific examples for configuring LDAP servers to allow read-only access for the Veza integration. Configure your LDAP server to provide the minimal permissions required for Veza to discover users, groups, and their relationships.

    Active Directory Users: Use the dedicated Microsoft Active Directory integration for Active Directory Domain Services instead of this generic LDAP connector for optimal functionality and support.

    OpenLDAP Configuration

    OpenLDAP uses Access Control Lists (ACLs) defined in slapd.conf or through dynamic configuration. The service account needs read access to the target organizational units.

    Example ACL Configuration:

    Service Account Creation:

    Oracle Unified Directory Configuration

    Oracle Unified Directory uses Access Control Instructions (ACIs) for permission management. Configure through Oracle Directory Services Manager or command line.

    Example ACI Configuration:

    IBM Directory Server Configuration

    IBM Directory Server uses ACLs similar to other enterprise LDAP implementations. Configure through the IBM Directory Server Web Administration Tool.

    ACL Example:

    ForgeRock Directory Services Configuration

    ForgeRock Directory Services uses ACIs similar to Oracle Unified Directory. Configure through the ForgeRock Directory Services Control Center.

    Example ACI Configuration:

    Red Hat Identity Manager Configuration

    Red Hat Identity Manager (IdM) uses groupOfNames object class with member attributes instead of the default groupOfUniqueNames with uniqueMember. Configure the Veza integration with these specific settings:

    • Groups Object Class: groupOfNames

    • Group Member Attribute: member (or leave blank for auto-detection)

    IdM provides built-in permission and role management through the ipa command-line interface. Create appropriate permissions for the Veza service account to read user and group information according to your organization's IdM configuration policies.

    General Security Considerations

    When configuring any LDAP server for Veza integration:

    1. Principle of Least Privilege: Grant only the minimum read permissions necessary for user and group discovery

    2. SSL/TLS Encryption: Always use LDAPS (port 636) or StartTLS to encrypt communication

    3. Service Account Security: Use a dedicated service account with a strong password and appropriate expiration policies

    4. Network Security: Ensure the LDAP server is accessible only from authorized Veza components

    Testing Configuration

    After configuring your LDAP server, verify the service account can access required data:

    Consult your LDAP server documentation for platform-specific configuration details and best practices.

    Reteriving Signing Certificate

    Many LDAPS deployments use a locally signed certificate for encrypting the traffic in-flight. The singing Certificate Authority (CA) must be provided during configuration for Veza to trust the connection.

    The CA can be retrieved from the server using openssl tool to inspect the signing certificate for the connection.

    The command will output summary information about the signing certificates in the connection. Copy the base64 encoded text between the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- to a text file. if there are multiple certificates, each can be added to the same file. Save this file and upload it for the Ca Certificate during configuration.

    BlackLine

    Configuring the Veza integration for BlackLine

    Overview

    The Veza integration for BlackLine enables gathering User, Group and Role assignments from the BlackLine financial automation platform.

    Configuring BlackLine

    1. Create a BlackLine user for API access

      • The user must have the API Role and be a System Administrator to make the necessary requests

    2. Generate an API key for the user for the BlackLine API Administration Portal or Financial Close System

    3. Request OAuth 2.0 credentials from the BlackLine customer support team:

    For more detail on obtaining credentials and BlackLine API keys, see in the official developer documentation.

    Configuring BlackLine on the Veza Platform

    1. On the Veza Integrations page, add a BlackLine Integration with the following fields:

      • Name - integration name

      • URL - URL for BlackLine instance from installation form e.g. https://us.api.blackline.com

    NOTE: Please contact Blackline Customer Support if you need the values for URL, Username, API key, Client ID, Client Secret and Instance ID.

    Notes and Supported Entities

    BlackLine Users

    Attribute
    Notes

    BlackLine Group

    Attribute
    Notes

    BlackLine Product (as Resource)

    Attribute
    Notes

    BlackLine Role

    Attribute
    Notes

    Roles are assigned to Users or Groups to either BlackLine Application or specific BlackLine Product (resource) as configured in BlackLine.

    Ivanti Neurons

    Configuring the Veza HRIS integration for Ivanti Neurons

    Overview

    The Veza integration for the Ivanti Neurons HRIS system streamlines identity governance by automatically synchronizing employee data with Veza's Identity Security platform. This integration enables organizations to:

    • Maintain current employee data across your identity security infrastructure

    • Enrich Veza search results with up-to-date employee information

    • Streamline access reviews with accurate organizational context

    • Support automated lifecycle management workflows using Ivanti Neurons as a source of identity

    This guide will walk you through creating the required API credentials in Ivanti, configuring the integration in Veza, and including custom employee attributes (optional).

    Configuring Ivanti

    The Veza Ivanti Nurons connector requires an API key to connect and collect the employee information. Follow the steps in the Ivanti

    Create the API key for a user with administrative read permissions to view all employees.

    Configuring the Ivanti Nurons Integration on Veza

    Most customers will require a Veza Insight Point to be deployed in their environment to access their Ivanti Nurons instance. Follow the steps <> for more on deploying a Veza Insight Point.

    1. On the Veza Integrations page, click Add Integration and locate the Ivanti Nurons HR tile.

    2. Configure the integration with the following fields:

      1. Set the Insight Point - Select the Insight Point that will have access to the Ivanti Nurons instance

      2. Name

    Notes and Supported Entities

    Ivanti Employee

    The Veza connector gathers employee metadata from the employees business object. Business Objects can be viewed from the Ivanti Configuration console, under Build > Business Objects

    The following Employee properties are collected by default and mapped to the Veza Employee object.

    Employee Property
    API Field
    Notes

    Collecting Additional Fields

    Any additional field from the employee business object can be extracted as a string by adding it to a comma-separated list in the Additional Properties field during integration configuration. These values will be added as custom properties on the Employee object shown in Veza.

    For example, to collect the employees DN and extensionAttribute1 set Additional Properties to DN,extensionAttribute1

    Egnyte

    Configuring the Veza integration for Egnyte.

    The Veza integration for Egnyte enables the discovery of Users, Groups, and Roles from the Egnyte platform. Veza uses Egnyte APIs to populate the Access Graph with user, group, and role information. Use it to:

    • Find users and groups roles within a Workspace.

    • Find identities with specific permissions in Egnyte.

    Note that resources such as individual channels are not discovered. While Veza collects role information, the associated permissions with the roles will not be found in the connector.

    Egnyte Setup

    Before adding the integration to Veza, you need a token to make authenticated requests on the Egnyte platform:

    1. Get the application API key for your application. Log in to developers.egnyte.com, and go to your profile. Search for Keys.

      • Ensure the API key user has admin-level permissions. Veza will only use the necessary scopes, which are egnyte.user, egnyte.group and egnyte.permissions.

    Veza Setup

    To enable Veza to gather data from Egnyte:

    1. Log in to your Veza platform.

    2. Go to Integrations.

    3. In the main pane, click Add Integration > Egnyte.

    4. Enter the required fields:

    Supported Entities

    Veza creates the following entities to represent Egnyte identities and access controls, along with some additional attributes:

    Egnyte User

    Property
    Description

    Egnyte Role

    Property
    Description

    Egnyte Group

    Property
    Description

    Oracle Fusion Cloud

    Configuring the Veza integration for Oracle Fusion

    HCM Access Visibility: This integration provides visibility to user access and role assignments across your Oracle Fusion Cloud infrastructure, including Human Capital Management (HCM).

    For Lifecycle Management workflows with Oracle HCM, use the Oracle HCM integration, which provides worker information as a source of identity for automated provisioning.

    Overview

    The Veza integration for Oracle Fusion Cloud supports collecting Users, Groups, and Roles for the Oracle Fusion Cloud ERP platform.

    See for more details.

    Configuring Oracle Fusion

    Veza uses pre-defined reports in Oracle Fusion to collect user role information. These reports are defined in an Oracle Fusion catalog file that can be downloaded below.

    1. Create a user for the connector to use. The connector uses that user name and password combination to connect to both the Oracle Fusion REST API and BI Publisher.

    2. Upload the Veza_v2.catalog file to the BI Catalog.

      1. Navigate to the instance's Catalog page: https://<instance>.oraclecloud.com/analytics/saw.dll?catalog

    Configuring Oracle Fusion Integration on Veza Platform

    1. In Veza, open the Integrations page.

    2. Click Add New and pick Oracle Fusion Cloud as the type of integration to add

    3. Enter the required information and Save the configuration

    Field
    Notes

    Notes and Supported Entities

    Oracle Fusion Cloud User

    Attribute
    Notes

    Oracle Fusion Cloud Role

    Attribute
    Notes

    Oracle Fusion Security Context (as Resource)

    Oracle Fusion Security Contexts (e.g. 'Asset Book', 'Business Unit', 'Ledger') are represented as Resources. Users may have specific roles assigned to specific Security Contexts in addition to application-wide roles.

    Attribute
    Notes

    Lifecycle Management Support

    Oracle Fusion Cloud also supports automated Lifecycle Management including provisioning, deprovisioning, and role assignment management through the Oracle SCIM API. For information see the .

    Expensify

    Configuring the Veza integration for Expensify

    Overview

    The Veza integration for Expensify enables discovery of users, workspaces, and roles within the expense management system.

    Use it to:

    • Search for any Expensify user by department or who they submit expenses to.

    • Review Expensify Role and Workspace assignments for all users or specific Workspaces.

    • Create rules and alerts when changes occur (such as when a new Policy Admin is detected or a Workspace is added).

    See for more details.

    Configuring Expensify

    The integration uses the Expensify Enterprise Import/Export API to fetch the data.

    • To connect, Veza will need your Expensify partnerUserID and partnerUserSecret.

    • Veza recommends creating a unique user and using their API credentials for the integration. The integration user should have the AUDITOR role to gather the required authorization metadata.

    To get the User ID and User Secret, log in to Expensify and go to the Integrations page: https://www.expensify.com/tools/integrations/.

    • If you've already generated these for another application, you will need to use the existing ID and Secret. Otherwise you can regenerate the credentials.

    • See the for more details.

    Configuring Expensify on the Veza Platform

    1. In Veza, open the Integrations page.

    2. Click Add Integration and pick Expensify as the type of integration to add

    3. Enter the required information and Save the configuration

    Field
    Notes

    Notes and Supported Entities

    Veza creates Access Graph entities to represent Expensify Users and Expensify Groups. You can create filters and rules based on the following attributes.

    Expensify Users

    Expensify Users represent individual employees who log to report or approve expenses, or any other task on the platform.

    Attribute
    Notes

    Expensify Workspaces (as Groups)

    Expensify Workspaces define common rules for expense management, used to organize departments, teams, or other groups of users.

    Attribute
    Notes

    Expensify Roles

    Roles define the relationship an individual users has to a Workspace, such as Policy Admin, Auditor or Employee, and represent a set of permissions.

    Attribute
    Notes

    Check Google Cloud Permissions

    Method
    Syntax

    Description

    Validates that the service account used for a has the required permissions. Rather than checking a specific policy, Veza will verify the total permissions granted to the service account used for extraction.

    Kubernetes

    Configuring the Veza integration for Kubernetes

    Overview

    The Veza integration for Kubernetes enables gathering information about the RBAC roles existing in a cluster, and who has permissions on Kubernetes services and resources.

    The integration supports self-hosted deployments and managed Kubernetes services. If you've also integrated Microsoft Azure or Amazon Web Services with Veza, the Kubernetes integration can show authorization relationships connecting users and Kubernetes services, clusters, and roles.

    For example, for AWS EKS, the integration provides visibility into:

    HiBob

    Configuring the Veza integration for HiBob

    The HiBob integration connects to your HiBob HR Information System (HRIS) platform to gather employee metadata and organizational structure information. As a primary source of workforce identity data, HiBob provides context for understanding user access patterns and supporting identity lifecycle decisions.

    The integration enables:

    • Employee data synchronization for Lifecycle Management.

    • Visibility into HiBob structure and employee status.

    Jamf Pro

    Configuring the Veza integration for Jamf Pro

    Overview

    The Veza integration connects to Jamf Pro to discover Users, Groups, and Sites. Jamf is typically used for deploying and maintaining software, responding to security threats, distributing settings, and analyzing inventory data. Enabling the integration lets you use Veza to visualize, audit, and create rules for users with privileged access to Jamf, and their group and role assignments.

    MySQL

    Configuring the Veza integration for MySQL

    Overview

    The Veza MySQL integration provides visibility into database security posture by discovering local users, roles, resources, and permissions within a MySQL instance. This integration enables security teams and database administrators to:

    • Map and monitor access across databases, tables, triggers and routines

    GitLab

    Configuring the Veza integration for GitLab

    This integration discovers Users, Groups, and Projects for GitLab software development platform, along with authorization data for each group and projects. The integration supports self-hosted and SaaS GitLab deployments.

    The GitLab integration requires a read-only access token for authentication, and will discover all groups, sub-groups, and projects the token can access. For self-hosted (non-SaaS) environments, you can optionally discover all groups and additional user information by providing an admin token.

    See for more information.

    Setup

    {
        "csv_data": "abc123="
    }
    CSV_PAYLOAD=$(cat my_app_data.csv | base64)
    curl --location https://example.vezacloud.com/api/v1/providers/custom/40bdd318-d320-4574-be90-ca556d59889a/datasources/9bc29dc6-8cd0-4926-992e-7d720305ae2f:push_csv \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer $VEZA_API_KEY" \
    --data "{\"csv_data\": \"${CSV_PAYLOAD}\"}"
    #!/usr/bin/env python3
    
    import base64
    import json
    import os
    import sys
    
    import oaaclient.utils as oaautils
    from oaaclient.client import OAAClient, OAAClientError
    
    veza_url = "https://example.vezacloud.com"
    veza_api_key = os.getenv("VEZA_API_KEY")
    
    provider_id = "UUID of Provider"
    data_source_id = "UUID of Data Source"
    
    source_csv = "path/to/my_file.csv"
    
    print("Connecting to Veza")
    try:
        veza_con = OAAClient(veza_url, veza_api_key)
    except OAAClientError as e:
        print("Error connecting to Veza tenant")
        print(e)
        sys.exit(1)
    
    print("Loading CSV file")
    with open(source_csv, "rb") as f:
        encoded_csv = base64.b64encode(f.read())
    
    print("Pushing data to Veza")
    try:
        push_request = {"id": provider_id, "data_source_id": data_source_id, "csv_data": encoded_csv.decode()}
        veza_con.api_post(f"/api/v1/providers/custom/{provider_id}/datasources/{data_source_id}:push_csv", push_request)
        print("Push succeeded")
    except OAAClientError as e:
        log.error(f"{e.error}: {e.message} ({e.status_code})")
        if hasattr(e, "details"):
            for d in e.details:
                log.error(d)
        sys.exit(3)
    confluent login
    Email: [email protected]
    Password: ********
    # Replace placeholders with actual values
    curl --location 'https://us.api.concursolutions.com/oauth2/v0/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'client_id=YOUR_CLIENT_ID' \
    --data-urlencode 'client_secret=YOUR_CLIENT_SECRET' \
    --data-urlencode 'grant_type=password' \
    --data-urlencode 'username=YOUR_COMPANY_UUID' \
    --data-urlencode 'password=YOUR_REQUEST_TOKEN' \
    --data-urlencode 'credtype=authtoken'
    CREATE USER [db_user] FROM EXTERNAL PROVIDER
    GRANT VIEW DEFINITION TO [db_user]

    K8s Clusters in EKS services

  • Service-linked roles for EKS

  • AWS IAM Users and Roles with access to K8s clusters

  • Paths connecting IAM User → AWS IAM Role → AWS EKS Services → K8s RBAC → K8s Clusters

  • See Notes and Supported Entities for more details.

    Configuring Kubernetes

    You must install an Insight Point within the cluster to enable a secure connection and collect Kubernetes RBAC metadata. Follow the instructions in Insight Point (Helm Chart Installation) to get a Veza-provided OCI image.

    Configuring Kubernetes on the Veza Platform

    1. In Veza, open the Integrations page.

    2. Click Add Integration and pick Kubernetes as the type of integration to add

    3. Enter the required information and Save the configuration.

    Field
    Notes

    Insight Point

    Pick the Insight Point deployed in the cluster.

    Name

    A friendly name to identify the unique integration.

    Platform

    Choose a supported provider, or use the generic Kubernetes integration.

    Generic Kubernetes Deployment

    To integrate with a cluster that is not managed in EKS, AKS, or GKE, enter the:

    • Cluster ID: the unique identifier of the Kubernetes cluster to discover, containing the specified Insight Point. The exact format can vary depending on environment where the Kubernetes cluster is deployed, e.g. us-east-onprem-cluster.

    AWS Elastic Kubernetes Service (EKS)

    To integrate with Kubernetes on EKS, enter the:

    • Cluster ID: ARN of the EKS cluster, e.g. arn:aws:eks:us-east-1:123456789012:cluster/my-eks-cluster

    • Tenant ID: ID of the parent AWS account, e.g. 123456789012

    Microsoft Azure Kubernetes Service (AKS)

    To integrate with Kubernetes on AKS, enter the:

    • Cluster Name: Human-readable name of the cluster in AWS, e.g. example-cluster

    • Tenant ID: ID of the parent Azure tenant. This is an Azure Directory ID in the format 12345678-9abc-def0-1234-56789abcdef0

    • Subscription ID: Globally unique identifier assigned to the parent Azure subscription, e.g. 12345678-9abc-def0-1234-56789abcdef0

    • Resource Group: Name of the logical container the cluster is located, e.g. myResourceGroup.

    Google Kubernetes Engine (GKE)

    To integrate with Kubernetes on GKE, enter the:

    • Project ID: Unique identifier for the Google Cloud Project, e.g. project-id

    • Location: Geographic area of the GKE Service, e.g. us-central1

    • Cluster Name: Name of the cluster to discover, e.g. gke-cluster-name

    Notes and Supported Entities

    Kubernetes Cluster

    Kubernetes clusters contain groups of nodes that work together to run containerized applications and services.

    Attribute
    Description

    Platform Tenant ID

    Tenant ID for managed clusters.

    AWS Account ID

    Identifies the AWS account (optional).

    Kubernetes Group

    Attribute
    Description

    Associated Role Bindings

    Associated with multiple role bindings.

    Kubernetes Role

    Roles represent permissions granted to a user or a group of users within a specific namespace. A cluster role is a set of permissions that can be granted to a user or a group of users within the entire cluster.

    Attribute
    Description

    Is Cluster Wide

    Indicates if role is cluster-wide.

    Namespace

    Specifies the namespace (optional).

    Kubernetes Role Binding

    A Role Binding connects a Role (or a ClusterRole) to a user, a group of users or a service account within a specific namespace. Cluster Role Bindings connect a ClusterRole to a user, a group of users or a service account within the entire cluster.

    Attribute
    Description

    Is Cluster Wide

    Indicates if role binding is cluster-wide.

    Kubernetes Service Account

    An identity used by applications running in the Kubernetes cluster to authenticate and interact with the Kubernetes API server.

    Attribute
    Description

    Namespace

    Specifies the namespace (optional).

    Kubernetes User

    A local identity used to authenticate and interact with a cluster. Assigned roles allow users to perform specific actions within namespaces or across the entire cluster.

    Follow the official API Key Guide to generate an API Token from your API Key and Client ID.
  • Copy the generated API Token returned from the API call.

  • Insight Point: Use the default data plane unless connecting with a deployed Insight Point.

  • Name: A friendly name to identify the integration.

  • API Token: A token generated from the API Key, allowing Veza to make the required API calls.

  • API URL: The URL for your Egnyte instance (e.g. www.{org-name}.egnyte.com/pubapi).

  • Click Save to enable the integration.

  • user_principal_name

    User Active Directory login if set

    Name

    User name

    ID

    User unique ID

    last_active

    Timestamp for when the user last logged in

    email

    User email

    user_type

    Set to service_account for Egnyte Service Accounts, otherwise human

    external_id

    User's unique Egnyte external identifier

    Name

    Group name

    ID

    User unique ID

    Name

    Role name

    Company Request Token
    Oracle Documentation
  • Required API features: Accounts

  • Required scopes: bl_users, bl_mdm

  • Their team should return a PDF with the OAuth app credentials. Use this support-provided installation form to configure the integration on Veza.

  • Username - Username of BlackLine user for the integration
  • API Key - API key generated for the user

  • Client ID - The Client ID from the support-provided installation form

  • Client Secret - The Client Secret from the installation form

  • Instance ID - UUID-type string from the Installation form Scope following the instance_. Do not include the scope strings such as bl.users bl.mdm.

  • id

    User login

    name

    User full name as configured in BlackLine

    is_active

    Boolean True if user is active

    email

    User's configured email

    job_title

    User's Job Title if set in BlackLine

    id

    BlackLine Group ID

    name

    Group name

    level_name

    Name of Group Level

    unique_code

    BlackLine unique code for Group (short name)

    parent_id

    ID of Parent Group if child

    name

    Product Name

    name

    Role Name

    Getting Started

    Under Shared Folders/Custom select Unarchive and upload the Veza.catalog file

  • Verify that a new folder containing two entities is created (Custom/Veza/v2). This Data Model and Report allow the connector to make the necessary queries to collect the detailed role information.

  • Ensure the intended user has permission on both the Data Model and Report objects.

  • URL

    URL of Oracle Fusion Cloud Instance

    Username

    Username to connect as

    Password

    Password for the user

    Permission By Name

    Check to use the more descriptive permission names, default is to use Oracle Fusion Permission codes

    name

    User's display name if set, defaults to login if not

    email

    Email address associated with User

    is_active

    True if the user is active

    user_name

    User's login name

    name

    Role Name

    description

    Description from role

    name

    Resource Name

    type

    Security Context Type

    notes and supported entities
    10KB
    Veza_v2.catalog
    Open
    Oracle Fusion Cloud Lifecycle Management guide

    Insight Point

    Choose whether to use the default data plane or a deployed Insight Point.

    Name

    A friendly name to identify the unique integration.

    Partner User ID

    Expensify User ID for making API calls.

    Partner User Secret

    Expensify Secret Key to use for the connection.

    Id

    Expensify User ID

    Name

    Expensify User Name

    submits_to

    Email address of User that this User submits Expenses to

    Name

    Name of Workspace

    Type

    Workspace Type (e.g. Corporate)

    output_currency

    Currency

    owner

    Email of owner user

    Name

    Expensify Role Name

    notes and supported entities
    official documentation
    Selecting the reader role
    Adding a role assignment
    View Users

    The timestamp when the user account last logged on

    login_failures

    Integer count of failed login attempts after the account's last successful login

    two_factor_method

    Indicates if the user account has a two-factor method configured

    Boolean true if the group is predefined by the Secret Server platform

    Name

    A unique display name for the Delinea Secret Server connection

    Url

    The URL of the Delinea Secret Server instance (ex. https://example.secretservercloud.com)

    Username

    The username of the account recorded above

    Password

    The password of the account recorded above

    created_at

    The timestamp of user account creation

    email

    The user's email address

    external_user_source

    The external IdP source that created the user account

    is_active

    Boolean true if the user account is not disabled

    is_application_account

    Boolean true if the account is designated an application account used for integrations

    is_locked_out

    Boolean true if the user account is locked out and unable to log in

    can_edit_members

    Boolean true if group membership can be altered

    created_at

    The timestamp when the group was created

    has_owners

    Boolean true if the group has one or more assigned owners

    is_active

    Boolean true if the group is not disabled

    is_editable

    Boolean true if the group name and details can be changed

    is_platform

    Boolean true if the group is defined on the Delinea platform (not on the Secret Server instance directly)

    id

    The ID of the role on the Delinea platform

    name

    The name of the role on the Delinea platform

    View Group Roles
    View Groups
    View Roles
    View Teams

    last_login_at

    is_system

    Insight Point: Use the default option unless you need to use an external Insight Point for the connection.

  • Name: A friendly name to identify the unique connection.

  • Account ID: The account number (CID) shown on the LastPass dashboard, e.g. 123456789012

  • Provisioning Hash: your LastPass API secret, e.g. 94b95bc8bdf562b32e98eac06e9f6d597111e58XXXXXXX6584b3535d322718bc.

  • id (text)

    LastPass User ID

    name (text)

    The full name of the user if set or Email is unset

    created_at (datetime)

    The date and time when of user account creation.

    is_active (boolean)

    Indicates whether the user's account is disabled (true or false).

    email (string)

    Email address configured for user

    is_admin (boolean)

    Indicates if the user has admin privileges (true or false).

    id (text)

    LastPass Group ID

    name (text)

    Group Name

    id (text)

    LastPass Folder ID

    name (text)

    Folder Name

    Read-Only

    Checked

    Folder Read-Only

    Read-Only

    Un-checked

    Folder User

    Administrate

    Checked

    Folder Administrate

    Hide Passwords

    Unchecked

    https://admin.lastpass.com
    https://admin.lastpass.com/dashboard
    Advanced > Enterprise API
    Where can I find the CID (account number) and API secret?
    Regenerating a provisioning hash

    Folder View Passwords

    - Name for the integration
  • URL - URL for Ivanti Nurons instance

  • Additional Properties - Additional employee properties to collect from the API response. See below.

  • Provisioning Source (optional): Check to enable Ivanti Neurons as a provisioning source for Life Cycle Management Workflows.

  • User Name

    NetworkUserName

    Employee Number

    LoginID

    Email

    PrimaryEmail

    Employment Status

    Status

    value of string

    IsActive

    Status

    boolean true if string equals "Active"

    Title

    Title

    Department

    Department

    Department ID

    DepartmentCode

    Cost Center

    ConstCentre

    Hire Date

    HireDate

    Terminated Date

    TerminatedDate

    Manager

    ManagerEmail

    Work Location

    EmployeeLocation

    Team

    Team Email, Team

    Display Full Name

    DisplayName

    ID

    RecID

    Name

    DisplayName

    First Name

    FirstName

    Last Name

    LastName

    documentation to create a Key Group and API key

    Using an Insight Point is recommended when connecting to production environments. For testing purposes, you can use the internal Insight Point, assuming that firewall rules allow communication with Veza.
  • The MySQL User employed by Veza for extraction uses theAWSAuthenticationPlugin authentication method. RDS MySQL instances must be IAM DB Authentication-enabled.

  • Insight Point
    security group inbound rules
    From Aurora MySQL clusters, you can drill down to each instance or up to permissions, users, and groups

    User

    updated_at

    User

    last_password_reset_at

    User

    mfa_configure

    Is true if Auth0 reports any configured MFA methods

    User

    connections

    List of names of applications the user identity is connected to

    Auth0 Management API
  • Add the following permissions:

    1. read:users

    2. read:connections

    3. read:custom_domains

    4. read:mfa_policies

  • Click Authorize to finish creation process

  • From the newly created Application page not the Domain, Client ID, Client Secret

  • Under Application Properties ensure that Token Endpoint Authentication Method is set to Post

  • VEZA_API_KEY

    API key generated for Veza

    --debug

    n/a

    Optional, enable verbose output and debug information

    --save-json

    n/a

    Optional, save OAA payload to JSON file locally for debugging

    User

    is_active

    True if the user is not blocked

    User

    nickname

    User

    created_at

    User

    last_login_at

    --auth0-domain

    AUTH0_DOMAIN

    Domain of the auth0 management URL

    AUTH0_CLIENT_ID

    The Client ID for the Auth0 Application

    AUTH0_CLIENT_SECRET

    The Client Secret for the Auth0 Application

    --veza-url

    VEZA_URL

    URL of Veza deployment

    Grant Database Permissions
    Example policy for using GetClusterCredentials

    is_active - Status of Looker account

    Generate an API key for your Veza user. API keys can be managed in the Veza interface under Administration -> API Keys. For detailed instructions consult the Veza User Guide.

    Users

    Local User

    Group

    Local Group

    Role

    Local Role

    Model Set

    Custom Resource model_set

    Model

    Custom Sub-resource model under model_set

    Connection

    Custom sub-resource connection under model

  • Audit Logging: Enable LDAP access logging to monitor integration activity

  • confluent api-key create --resource cloud --description <key-description> --service-account <service-account-id>
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "RDS",
          "Effect": "Allow",
          "Action": [
            "rds:DescribeDBInstances",
            "rds:DescribeDBClusters"
          ],
          "Resource": "*"
        },
        {
          "Sid": "RdsDbConnect",
          "Effect": "Allow",
          "Action": [
            "rds-db:connect"
          ],
          "Resource": "arn:aws:rds-db:<region>:<account_id>:dbuser:<cluster-name>/<db_user>"
        }
      ]
    }
    CREATE USER [veza_user] IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
    
    GRANT REFERENCES ON *.* TO [veza_user];
    GRANT SELECT ON mysql.user TO [veza_user];
    GRANT SELECT ON mysql.db TO [veza_user];
    GRANT SELECT ON mysql.tables_priv TO [veza_user];
    GRANT SELECT ON mysql.columns_priv TO [veza_user];
    GRANT SELECT ON mysql.global_grants TO [veza_user];
    GRANT SELECT ON mysql.procs_priv TO [veza_user];
    GRANT SELECT ON mysql.proxies_priv TO [veza_user];
    
    -- Only if MySQL version is up to 5.7
    GRANT SELECT ON mysql.proc TO [veza_user];
    
    -- Only if MySQL version is 8+
    GRANT SELECT ON mysql.role_edges TO [veza_user];
    GRANT SHOW_ROUTINE ON *.* TO [veza_user];
    
    -- If including triggers
    GRANT TRIGGER ON *.* TO [veza_user];
    pip3 install -r requirements.txt
    export VEZA_API_KEY=<Veza API key>
    export AUTH0_CLIENT_ID=<Auth0 Client ID>
    export AUTH0_CLIENT_SECRET=<Auth0 Client Secret>
    ./oaa_auth0.py --auth0-domain <https://domain.us.auth0.com> --veza-url <https://yourveza.veaacloud.com>
    {
        "Sid": "RedshiftCredentials",
        "Effect": "Allow",
        "Action": "redshift:GetClusterCredentials",
        "Resource": [
            "arn:aws:redshift:<region>:<account_id>:dbuser:<cluster-name>/${redshift:DbUser}",
            "arn:aws:redshift:<region>:<account-id>:dbname:<cluster-name>/*"
        ]
    },
    {
         "Sid": "RedshiftDescribe",
         "Effect": "Allow",
         "Action": [
             "redshift:DescribeClusters",
             "redshift-data:GetStatementResult",
             "redshift-data:DescribeStatement"
         ],
         "Resource": "*"
     },
     {
         "Sid": "RedshiftExecute",
         "Effect": "Allow",
         "Action": "redshift-data:ExecuteStatement",
         "Resource": "arn:aws:redshift:<region>:<account-id>:cluster:<cluster-name>"
     }
    {
        "Sid": "RedshiftCredentials",
        "Effect": "Allow",
        "Action": "redshift:GetClusterCredentials",
        "Resource": [
            "arn:aws:redshift:<region>:<account_id>:dbuser:<cluster-name>/<db_user>",
            "arn:aws:redshift:<region>:<account-id>:dbname:<cluster-name>/*"
        ]
    },
    {
         "Sid": "RedshiftDescribe",
         "Effect": "Allow",
         "Action": [
             "redshift:DescribeClusters",
             "redshift-data:GetStatementResult",
             "redshift-data:DescribeStatement"
         ],
         "Resource": "*"
     },
     {
         "Sid": "RedshiftExecute",
         "Effect": "Allow",
         "Action": "redshift-data:ExecuteStatement",
         "Resource": "arn:aws:redshift:<region>:<account-id>:cluster:<cluster-name>"
     }
    CREATE USER [veza_user] WITH PASSWORD 'YOUR_PASSWORD';
    GRANT SELECT ON
      pg_catalog.pg_user,
      pg_catalog.pg_group,
      pg_catalog.pg_database,
      pg_catalog.pg_namespace,
      pg_catalog.pg_class,
      pg_catalog.pg_class_info,
      pg_catalog.pg_attribute_info
    TO
      [veza_user];
    pip3 install -r requirements.txt
    export VEZA_API_KEY="XXXX...."
    export LOOKERSDK_BASE_URL="https://<customername>.cloud.looker.com"
    export LOOKERSDK_CLIENT_ID="XXXX...."
    export LOOKERSDK_CLIENT_SECRET="XXXXX....."
    ./oaa_looker.py --veza-url https://<customer>.vezacloud.com
    # Grant read access to Veza service account
    access to dn.subtree="dc=example,dc=com"
        by dn="cn=veza-service,ou=serviceaccounts,dc=example,dc=com" read
        by * none
    
    # Alternative: Grant read to specific OUs only
    access to dn.subtree="ou=users,dc=example,dc=com"
        by dn="cn=veza-service,ou=serviceaccounts,dc=example,dc=com" read
    access to dn.subtree="ou=groups,dc=example,dc=com"
        by dn="cn=veza-service,ou=serviceaccounts,dc=example,dc=com" read
    dn: cn=veza-service,ou=serviceaccounts,dc=example,dc=com
    objectClass: inetOrgPerson
    objectClass: organizationalPerson
    objectClass: person
    cn: veza-service
    sn: Service
    description: Veza LDAP Integration Service Account
    userPassword: {SSHA}[generated-password-hash]
    # Grant read access to base DN
    aci: (target="ldap:///dc=example,dc=com")(targetattr="*")
        (version 3.0; acl "Veza Service Account Read Access";
        allow (read,search,compare)
        userdn="ldap:///cn=veza-service,ou=serviceaccounts,dc=example,dc=com";)
    
    # Restrict to specific attributes if needed
    aci: (target="ldap:///dc=example,dc=com")
        (targetattr="cn||displayName||mail||uniqueMember||dn")
        (version 3.0; acl "Veza Limited Attribute Access";
        allow (read,search,compare)
        userdn="ldap:///cn=veza-service,ou=serviceaccounts,dc=example,dc=com";)
    # Basic read access ACL
    dn: cn=ReadAccess,cn=ibmacl,dc=example,dc=com
    objectclass: accessControlSubentry
    objectclass: ibmacl
    cn: ReadAccess
    ibm-accessGroup: cn=veza-service,ou=serviceaccounts,dc=example,dc=com
    ibm-accessLevel: normal
    # Grant read access to Veza service account
    aci: (target="ldap:///dc=example,dc=com")(targetattr="*")
        (version 3.0; acl "Veza Service Account Access";
        allow (read,search,compare)
        userdn="ldap:///cn=veza-service,ou=serviceaccounts,dc=example,dc=com";)
    # Test basic connectivity and authentication
    ldapsearch -x -H ldaps://your-ldap-server:636 \
        -D "cn=veza-service,ou=serviceaccounts,dc=example,dc=com" \
        -W -b "dc=example,dc=com" \
        "(objectClass=*)" dn
    
    # Test user discovery
    ldapsearch -x -H ldaps://your-ldap-server:636 \
        -D "cn=veza-service,ou=serviceaccounts,dc=example,dc=com" \
        -W -b "dc=example,dc=com" \
        "(objectClass=person)" cn displayName mail
    
    # Test group discovery
    ldapsearch -x -H ldaps://your-ldap-server:636 \
        -D "cn=veza-service,ou=serviceaccounts,dc=example,dc=com" \
        -W -b "dc=example,dc=com" \
        "(objectClass=groupOfUniqueNames)" cn uniqueMember
    openssl s_client -showcerts -connect corp-ldap.example.com:636
    On the following page, click on Add New Key.
  • Enter an API Key Name then click Generate Key. A random string will appear, similar to 6d925aae960335ba7824f6e0c5cfadc1dc0c027a. Save this value in a secure location.

  • Insight Point: Use the default option unless you need to use an external Insight Point for the connection.

  • Name: A friendly name to identify the unique connection.

  • Company Domain: The BambooHR company identifier from your login URL, excluding the full URL, e.g., company_name.

  • API Key: The BambooHR secret key from the steps above, e.g., 6d925aae960335ba7824f6e0c5cfadc1dc0c027a.

  • IdP Types: Comma-separated list of IdP types for mapping external identities, e.g., okta,active_directory,azure_ad,custom,google_workspace,one_login.

  • preferredName (text)

    The employee’s preferred name.

    homeEmail (email)

    The employee's home email address.

    employeeNumber (text)

    Employee number (assigned by your company).

    status (status)

    The employee's employee status (Active or Inactive).

    workEmail (email)

    The employee's work email address.

    jobTitle (list)

    The current value of the employee's job title.

    employmentHistoryStatus (list)

    The employee's current employment status.

    location (list)

    The employee's current location.

    stateCode (text)

    The 2 character abbreviation for the employee's state (US only).

    hireDate (date)

    The date the employee was hired.

    supervisorId (integer)

    The 'employeeNumber' of the employee's current supervisor.

    supervisorEId (integer)

    The ID of the employee's current supervisor.

    supervisor (employee)

    The employee’s current supervisor.

    supervisorEmail (text)

    The email of the employee's current supervisor.

    id (Integer)

    The employee ID automatically assigned by BambooHR.

    fullName (text)

    The employee's first and last name. (e.g., John Doe).

    firstName (text)

    The employee’s first name.

    middleName (text)

    The employee’s middle name.

    lastName (text)

    The employee’s last name.

    displayName (text)

    The employee's name displayed in a format configured by the user.

    Authentication
    All API Keys

    Query parameters:

    Name
    Type
    Req.
    Description

    id

    string

    Y

    A valid Google

    Example request

    Replace the values in brackets with the appropriate values:

    • BaseURL = Your Veza Domain

    • ID = Can be found from your Veza Integration > Data Sources dashboard.

    • Token = your Veza API Key. To call the API, you will need to include an API key in the authorization header of your request.

    Example response

    The response will indicate when an update is required, and the missing permissions:

    • current_permissions: permissions that are currently assigned to the Veza service principal.

    • required_permissions: full list of required permissions for discovering supported services and entities in Google Cloud.

    • required_actions: permissions required by the integration, but not assigned to the Veza service principal. You should update the integration role to include the missing permissions.

    • overprivileged_actions: permissions assigned to the integration that are not required, and can safely be removed.

    The permissions list in this example may change as new features are added to the Google Cloud integration. The actual API response will reflect the current requirements.

    If you see resourcemanager.resourceTagBindings.list in overprivileged_actions, it is safe to remove this deprecated permission. It has been replaced by resource-specific permissions like compute.instances.listTagBindings and storage.buckets.listTagBindings.

    GET

    {{BaseURL}}/api/v1/providers/google_cloud/{{ID}}:checkpolicy

    Google provider integration
    Mapping HiBob accounts to external identities for query enrichment and access reviews.
  • Automated tracking of changes and reporting relationships.

  • This document includes steps to configure the integration, and details about the collected metadata.

    Prerequisites

    • A HiBob administrator account with permissions to create service users and permission groups

    • The required HiBob roles to grant API access scopes:

      • People's data > People permissions

      • Access to employee lifecycle data

    • Service user API credentials (ID and Token)

    Configuring HiBob

    Create an API Service User, and retrieve the user ID and token for authentication:

    1. In Bob, open Bob products > System settings.

    2. Click Integrations.

    3. From the All categories menu, choose Automation.

    4. Click on Service users > Manage.

    5. Click + New service user. Enter a display name and a description and click Next.

    6. A popup will show the service user info. Copy the ID and Token and securely save them to configure the Veza integration.

    7. Click Done.

    See the help topic Manage Service Users for complete instructions.

    Create a service user permission group with the required permissions to read default employee fields:

    1. In Bob, go to Bob products > System settings

    2. Choose Account > Permission groups

    3. Click Create permission group

    4. Choose Service user. Give the group a name, description, and optional tags

    5. In the Group members section, choose the Veza service user and click Apply.

    6. Click Create, then Confirm.

    7. The new permission group will have no permissions marked by default. Use the People's data tab to add the following scopes:

      • People's data > People > About > View selected employees' About sections.

      • People's data > People > Basic info > View selected employees' Basic info sections.

      • People's data > People > Work > View selected employees' Work sections.

    8. Under People's data > Access rights, choose employees these permissions apply to. By default, the permissions apply to all Employed employees.

    9. Click Save, then click Apply.

    Additional Properties Permissions

    The permissions listed above are sufficient for the default employee fields supported by the Veza integration. If you need to access additional custom properties (such as internal.lifecycleStatus), you may need to grant additional permissions in HiBob according to their API documentation.

    For example, to access full employee lifecycle history data, the service user requires:

    • People's Data > Lifecycle > View all other employees' Lifecycle section histories

    • People's Data > Access data for > Make sure the employee is in the list

    Refer to the for specific permission requirements for each endpoint and custom property.

    For more information, see Create and Update Service User Permission Groups.

    Configuring HiBob on the Veza Platform

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and search for HiBob. Click on it and click Next to add an integration.

    3. Enter the required information.

    4. Click Create Integration to save the configuration.

    Field
    Notes

    Insight Point

    Choose whether to use the default data plane or a deployed Insight Point.

    Name

    A friendly name to identify the unique integration.

    Service User ID

    Service user for API authentication.

    Service User Token

    Authentication token for the service user.

    Sandbox

    Toggle if connecting to a sandbox environment.

    IdP Types

    Comma-separated list of IdP types for identity mapping, e.g. (okta,azure_ad,custom,google_workspace,one_login).

    Notes and Supported Entities

    The integration gathers employee metadata to support identity governance and Access Reviews, automated provisioning/de-provisioning, and access analysis.

    HiBob User Attributes:

    • id - Unique identifier for the employee

    • employeeNumber - Company-specific employee identifier

    • name - Display name of the employee

    • firstName - Employee's first name

    • lastName - Employee's surname

    • canonicalName - Full name in standard format

    • displayFullName - Full name as displayed in the system

    • email - Employee's email address

    • isActive - Boolean indicating if the employee is currently active

    • employmentStatus - Status of employment (e.g., "ACTIVE", "WITHDRAWN")

    • jobTitle - Employee's current job title

    • employmentTypes - List of employment type classifications

    • workLocation - Physical work location/site

    • startDate - Employment start date

    • terminationDate - Employment end date (if applicable)

    • department - Department reference containing department ID

    • company - Company identifier

    • supervisor - Reference to the employee's manager (if applicable)

    • is_manager - Boolean indicating if the employee has managerial status

    Prerequisites
    • A Jamf Pro instance

    • Administrator permissions to create a Jamf API role and API client

    Create an API Role

    To grant privileges to an API client in Jamf Pro, you must first create an API role that defines a set of permissions:

    1. In Jamf Pro, click Settings in the sidebar.

    2. In the System section, click API Roles and Clients.

    3. Open the API Roles tab at the top of the pane.

    4. Click New.

    5. Enter a name for the API role.

    6. In the Jamf Pro API role privileges field, begin typing the name of a privilege you want to assign, and then select it from the menu. Required privileges for the integration are: Read User, Read Static User Groups, Read Smart User Groups, and Read Accounts.

    7. Click Save.

    Adding an API role in Jamf pro

    Create an API Client

    Add an API client Veza will use for authentication. Attach the new role to the API client:

    1. In Jamf Pro, click Settings in the sidebar.

    2. In the System section, click API Roles and Clients.

    3. Click the API Clients tab at the top of the pane.

    4. Click New.

    5. Enter a display name for the API client.

    6. In the API Roles field, add the role you created for the Veza integration.

    7. Under Access Token Lifetime, enter the time in seconds that you want access tokens to be valid for.

    8. Click Save.

    9. Click Edit.

    10. Click Enable API Client to allow the client to be used to generate a client secret.

    11. Click Save.

    Generate Client Secret

    Create a secret for authenticating the API client:

    1. In Jamf Pro, open the API client to generate an access token.

    2. Click Generate Client Secret. A confirmation dialog appears.

    3. Click Create Secret. A pop-up window appears with the client secret. Copy this value.

    Note: The client secret will only appear once. Save it to a secure location before dismissing the dialog.

    Veza will use the client secret to generate an access token. See API Authentication for more details.

    Note: Rate limiting is not supported. See Jamf Pro API Scalability Best Practices for more details.

    Add Jamf Integration to Veza

    To enable Veza to gather data from the Jamf Pro platform:

    1. Browse to your Veza instance.

    2. On the navigation bar, click Integrations, then click Add Integration.

    3. Find Jamf Pro and click Next.

    4. Enter the required values, then click Create Integration:

      • Company Name: Name of the Company. This is the same as the name in your Jamf URL (i.e., https://<yourCompany>.jamfcloud.com/).

      • Client Id: OAuth Integration Client ID.

      • Client Secret: OAuth Integration Client Secret.

      • URL (Optional): URL to use instead of

    Notes and Supported Entities

    The integration uses the Custom Application template to model graph entities:

    • Company Name > Application

    • User > Local User

    • Groups > Local Group

    • Site > Resource

    • Privilege Set > Local Role

    • Privileges > Permission

    Entity

    Property

    Description

    User

    id

    Unique ID of the user.

    name

    Name of the user.

    full_name

    Full name of the user.

    is_active

    Whether the user is enabled or disabled.

    Analyze role-based access control (RBAC) including privilege inheritance

  • Identify users and roles with elevated privileges

  • Track permission delegation through grant options

  • Monitor administrative capabilities and sensitive operations

  • For managed MySQL instances, see RDS MySQL documentation.

    Configuring MySQL

    Veza requires a MySQL user with read-only permissions to discover resources and permissions. Connect to your database, and execute the following commands to create a Veza User and grant the needed privileges for discovery. Replace [veza_user] with the name of the actual database user you want to create:

    Configuring MySQL on the Veza Platform

    1. Before configuring the integration, you must have:

      • Network connectivity from Veza to your MySQL server via:

        • A deployed Insight Point in your network (recommended for production)

        • Direct connection using Veza's internal Insight Point (suitable for testing)

    2. On the Veza Integrations page select Add Integration and locate the MySQL tile. Configure the integration with the following fields:

      • Insight Point: Choose whether to use the default data plane or a deployed Insight Point

      • Name: A friendly name to identify the unique integration

      • Host

    3. Click Create Integration to save the configuration

    Using AWS Secrets Manager (Optional)

    Instead of storing credentials in Veza, you can use AWS Secrets Manager for standalone MySQL databases (also supported for PostgreSQL, Oracle, SQL Server, MongoDB, and Cassandra):

    1. Create the integration with empty username/password fields When creating the integration in the Veza UI, leave the Username and Password fields empty. Do not enter any values in these fields.

    2. Configure secrets mapping via API with IAM role parameters (aws_assume_role_name and aws_assume_role_external_id)

    For complete setup instructions, see AWS Secrets Manager for Database Extraction.

    Enabling Lifecycle Management

    To support lifecycle management capabilities, the MySQL user needs these additional write permissions:

    Supported Entities

    Veza discovers the following MySQL entities:

    • MySQL Instance

    • MySQL Database

    • MySQL Local User

    • MySQL Local User Instance

    • MySQL Role

    • MySQL Role Instance

    • MySQL Routine (Function/Procedure)

    • MySQL Table

    • MySQL Trigger

    Generate a GitLab access token
    1. Generate a GitLab access token under GitLab Edit profile > Access Tokens.

      • For self-hosted, we recommend generating a personal access token for an Admin-level user to enable full discovery.

      • For GitLab SaaS, a group token will typically be most appropriate. Personal access tokens for a group Owner can also be used.

      • Assign the access token read_api access only.

      • Assign the token a name and expiration date.

      • Save the generated token and use it to configure the integration.

    Add the integration to Veza

    To enable the integration:

    1. Browse to the Veza platform and log in.

    2. Go to Integrations.

    3. Click Create Integration. Select GitLab as the integration to add.

    4. Complete the required fields:

      • Insight Point: By default, integrations run on the Veza SaaS platform. Optionally, you can make an internal connection to GitLab with a deployed .

      • Name: Friendly name for the GitLab deployment.

      • URL: GitLab URL for the connection. Use https://gitlab.com for SaaS or specify URL for self-managed GitLab.

    5. Click Create Integration to save and enable the configuration.

    Notes and supported entities

    This connector creates the following entities to map applications and identities to permissions:

    GitLab
    Entity

    deployment

    GitLab Application

    users

    GitLab User

    GitLab admin

    GitLab Role

    logged-in user

    GitLab Role

    project

    GitLab Project Resource

    group

    GitLab Group

    GitLab groups are represented both as a Group for User membership and as a Group Resource to show user's role in the group and associated permissions (such as Developer, Owner, Guest).

    Attributes

    Entity
    Property
    Values

    User

    email

    Email address for user if available

    User

    bot

    Boolean for bot users*

    User

    gitlab_id

    Unique GitLab user ID number

    User

    is_licensed

    Limitations

    • Attributes above marked with * are only available on self-hosted with an admin token

    • Does not currently process external users

    Notes and Supported Entities

    Boomi

    Configuring the Veza integration for Boomi

    Overview

    Boomi is an integration platform as a service (iPaaS) that facilitates connecting applications, data, and processes across various environments. The Veza integration for Boomi Enterprise Platform uses the AtomSphere API to discover users, roles, and permissions on the platform. After enabling the integration, you can:

    • Review Boomi User to Boomi Role assignments, with support for external user mappings.

    • Get visibility on privileges granted via custom roles and review built-in role usage.

    • Monitor Boomi user accounts with the "API Access" role used for programmatic access.

    This document will help you configure the integration for your tenant. For more details see .

    Configuring Boomi

    Step one: Create an Account in Boomi

    Create an account for the integration user in Boomi:

    1. Log in to Boomi Enterprise Platform as an administrator.

    2. Go to Settings > User Management.

    3. Create a new role and assign the following Privileges. The new role should not inherit from any other role. API Access Account Administration

    See [Adding a custom role)(https://help.boomi.com/docs/Atomsphere/Platform/t-atm-Adding_a_custom_role_de2bd23b-ce3a-4db3-9656-cacab756e76e) and for official documentation.

    Step two: Generate an API token

    To create a token, you must create an integration user with the API Access role. The API Token feature must be enabled under Settings > Account Information and Setup > Boomi AtomSphere API Tokens.

    1. Log in to Boomi as the integration user.

    2. Navigate to Settings > My User Settings > AtomSphere API Tokens.

    3. Generate and copy the API token.

    Save the token to use when configuring the integration in Veza.

    See for more details.

    Configuring Boomi on the Veza Platform

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and search for Boomi. Click on it and click Next to add an integration.

    3. Enter the required information:

      • Account Id: Id of the Account. Used for Hostname in the URL (e.g.,

    Custom identity mappings for Boomi

    If your organization uses single sign-on to federate access to Boomi, you can add a custom mapping by editing the identity provider configuration. Add mappings to match external identities in your IdP to user accounts they can access with SSO.

    See .

    Notes and Supported Entities

    The integration uses the OAA Application template to model Boomi users, roles, and privileges:

    • Boomi Platform Account → Custom Application

    • Boomi Account Users → Local User

    • Boomi Account user’s Role → Local Role

    • Boomi Account Role’s Privileges → Local Permissions

    Veza creates graph entities to represent Boomi Users, Roles, and the individual Privileges they can access.

    Boomi Account Users

    Represents a local Boomi user, with the attributes:

    Attribute
    Notes

    Boomi Account Roles

    A built-in or custom role:

    Attribute
    Notes

    Built-in roles provide access to common functionality in Boomi. You can use Veza to review user-to-role assignments, or track when the number of users with a role increases or decreases. Built-in roles include:

    • Administrator: Full access to all features, including API access, API management, account administration, account group management, Atom management (both read and write), Boomi Assure, build (read and write), cloud management, dashboard access, environment management, execution of processes, integration pack management, licensing view, packaged component management and deployment, process library management, scheduling, trading partner management, user management, view audit logs, view data, and view results.

    • Standard User: Access to Atom management (both read and write), Boomi Assure, build (read and write), developer tools, environment management, execution of processes, integration pack management, licensing view, packaged component management and deployment, process library management, scheduling, trading partner management, view data, and view results.

    • Production Support: Access to Atom management (both read and write), execution of processes, licensing view, packaged component deployment, scheduling, view data, and view results.

    Administrators can also create Custom Roles. These have specific privileges tailored to organizational needs. See .

    Boomi Account Privileges

    An individual system permission assigned to a role or directly to a user:

    Attribute
    Notes

    Roles define a group of system permissions within Boomi. Example Roles and Privileges:

    Bullhorn

    Early Access: This integration is provided as an Open Authorization API (OAA) connector package. Contact our support team for more information.

    Bullhorn Connector for Veza

    The Veza connector for Bullhorn enables users to import Bullhorn User entitlements into Veza. Users are imported along with the entitlements summary to show the Bullhorn User Type for each user and the permissions that the user type is entitled to.

    Application Mappings

    The Bullhorn connector uses the OAA Custom Application model. The following table shows how Veza Custom Application entities correspond to Bullhorn entities.

    Bullhorn
    Veza

    Properties

    The following entity properties are imported:

    Entity
    Property
    Description

    Running the Importer

    Bullhorn does not currently provide the necessary API endpoints to extract the authorization information programmatically. Identity and authorization information is imported through CSV data that can be collected from Bullhorn.

    The importer takes in a parameter --name, this name will appear in the name of the Application entity in Veza as Bullhorn - {name} and will be used for the Veza data source name. The name must remain consistent for subsequent imports. After the initial run, if --name does not match a previously used name the importer will stop. To create new instances run with --create once to create the new data source.

    Bullhorn

    1. Export the User list from Bullhorn and convert to CSV file. The exported data should include the following required headers. Additional columns are ignored:

    1. Request an export of the User Type entitlements from Bullhorn support. The provided data should be converted to CSV if not already in CSV format. Expected format is Entitlements as rows and User Types as columns with Type and Entitlement columns.

    Veza

    1. Generate a Veza user API key by navigating to Administration -> API Keys. Choose Add New. Give the key a name and copy the token, which will only be shown once.

    Running the Connector

    Command Line

    1. Install the requirements:

    2. Set the secrets:

    3. Run the connector:

    Parameters

    CLI Parameter
    Environment Variable
    Description

    Databricks (Single Workspace)

    Configuring the Veza integration for Databricks

    Overview

    The Veza Databricks integration provides visibility into access and permissions for your Databricks machine learning platform. Veza integrates directly with workspace-level Databricks configurations to:

    • Discover access relationships between users, groups, service principals, and resources

    • Visualize access across catalogs, clusters, notebooks, schemas, and more with Veza's Access Graph

    • Identify excessive group assignments, admin overreach, and service principal sprawl

    This integration connects to individual Databricks workspaces using personal access token (PAT) authentication. Veza discovers entity and authorization metadata using the native Databricks REST API, including workspace resources, the hive_metastore catalog, schemas, tables, and permissions.

    For organizations that use single sign-on (SSO) for federated access to Databricks, the integration discovers authorization and effective permissions that Azure AD, Okta, and AWS Identity Center identities have on Databricks resources.

    When to use this integration: Use this integration for standalone Databricks workspaces or legacy deployments without Unity Catalog. For organizations using Unity Catalog to govern access to Databricks across multiple workspaces on Microsoft Azure, AWS, or Google Cloud, see for account-level discovery configured through cloud provider integrations.

    For details on supported entities and attributes, see .

    Requirements

    To connect to , the workspace must enable both Workspace Access Control and Cluster, Pool, and Jobs Access Control. These features require a Premium Azure Databricks plan. To enable these settings:

    1. As a Databricks administrator, click your username in the top bar of the Azure Databricks workspace and click Admin Settings.

    2. Open Workspace Settings.

    3. Toggle Workspace Access Control and Cluster, Pool and Jobs Access Control.

    4. Click Confirm.

    See for details.

    Authentication

    The integration requires a Databricks user with account admin rights (required to list all workspace entities and permissions). Using a non-admin user token will result in an incomplete discovery.

    1. Veza can connect as.

      1. As an account admin, log in to the account console.

      2. Click Account Console > User management.

      3. On the Users tab, click Add User.

    See for more information.

    Note: The account admin role ensures complete discovery of workspace resources. Personal Access Token discovery requires workspace admin permissions and may not be available on all Databricks tiers. If unavailable, the integration continues without PAT metadata.

    Creating a cluster

    To extract metadata for the Databricks storage layer, Veza needs to run SQL queries on one of the clusters in the workspace. You should create a separate cluster for this purpose. The cluster will be automatically started only when Veza is conducting extractions, and automatically stopped after a set amount of inactivity.

    To create a cluster from the Databricks UI, pick Create > Cluster:

    • The cluster can be a small single-node cluster

    • You should enable termination after an inactivity period (~10 minutes)

    • Add spark.databricks.acl.sqlOnly true to Advanced Options > Spark > Spark config

    • Ensure the user created for the Veza integration has CAN_MANAGE

    Once the cluster is running, copy the cluster's HTTP endpoint from Advanced Options > JDBC/ODBC > HTTP path.

    For more details on creating Databricks clusters see .

    Veza Configuration

    From the Veza Configuration panel, navigate to the Apps & Data Sources tab. Scroll down to the Standalone Databases section and click Add New. Choose "Databricks" and provide the required information:

    Field
    Details

    The Azure, AWS Identity Center, or Okta Identity Provider used for SSO must be integrated with Veza as a data source.

    Identity Mappings

    To enable email-based mapping between Identity Provider identities and Databricks users:

    1. Use Access Graph to search for the Azure AD Domain, Okta Domain, or AWS Identity Center service. Open the Entity Details and copy the Datasource ID.

    2. Open Data Catalog > Apps and Data Sources and find your Databricks provider under Standalone Databases. Click Edit. If you haven't configured the provider yet, click Add New and choose Databricks.

    3. Select your SSO provider as the SSO type. For SSO ID, use the Datasource ID

    Provider
    Datasource ID

    For other identity providers, or for more complex mapping rules, use .

    Notes and Supported Entities

    Every Databricks workspace has a central Hive metastore accessible by all clusters to store table metadata. This metastore (hive_metastore) is the sole catalog entity discovered by this integration, along with schemas, tables, and permissions on those entities. Hive metastores do not support assigning permissions to catalogs.

    For Databricks entity types, attributes, permissions, and effective access calculations, see the .

    Workspace Mode

    • Identity Entities: Users, Service Principals, Groups, and Personal Access Tokens at the workspace level

    • Data Entities: Workspace, hive_metastore Catalog, Schemas, Tables, and Views

    • Workspace Objects: Directories and Notebooks with permission inheritance

    Important: Permissions on data tables are only enforced when both workspace settings enable table ACLs and the cluster supports table ACLs (High Concurrency clusters only). If table ACLs are not enabled for a cluster, all users with cluster access can query all tables accessible from that cluster.

    Effective Permissions

    From Access Graph, select an EP node and click Explain Effective Permissions to view the raw Databricks ACLs that result in a set of effective permissions. Effective Permissions can account for the following scenarios:

    • In Databricks, Access Control Lists (ACLs) regulate an identity's permissions to access data tables, clusters, pools, jobs, as well as workspace objects such as notebooks, experiments, and folders. By default those controls are turned off: all users are allowed to do anything.

    • Permissions can be inherited from the parent entity.

    • Permissions on data tables are only available when enabled both in workspace settings and the cluster (available only on High Concurrency clusters).

    • If permissions on data tables aren't enabled for a cluster, then all users that have permissions on that cluster can also access all tables.

    Coupa

    Configuring the Veza integration for Coupa

    Overview

    The Veza-built connector for Coupa enables discovery of a single Coupa instance, including details for each user and their group and role memberships.

    See notes and supported entities for more details.

    Configuring Coupa

    To connect to Coupa’s REST API, Veza uses Oauth2 authentication based on a client id and secret. To generate a new client and credentials, log into Coupa as an admin user:

    1. Go to Setup > Oauth2/OpenID Connect Clients

    2. Click Create and pick Client Credentials for the Grant type

    3. Enter the required fields and enable the scope:

    See the for more details.

    Configuring Coupa on the Veza Platform

    1. In Veza, open the Integrations page.

    2. Click Add New and pick Coupa as the type of integration to add

    3. Enter the required information and Save the configuration

    Field
    Notes

    Notes and Supported Entities

    Roles and Permissions

    Veza is unable to collect role permissions automatically due to the Coupa REST API not supporting returning role permission information. By default, all Local Roles created for Coupa roles are populated with a single permission named for the role that is Uncategorized.

    Optionally, a Coupa permissions export can be uploaded when configuring the integration to map permissions to roles. When provided, this exported data is incorporated into Veza's Access Graph. Important: The role permissions in Veza will reflect the state of permissions as of the last uploaded export - there is no automatic synchronization with Coupa's current permissions.

    To create a report of Role Permissions:

    1. Go to Setup > Company Setup > Permissions

    2. Click "Export to" and select CSV file format

    The resulting CSV from Coupa should be uploaded as-is without modifications. The export should contain the following header:

    The CSV can be uploaded as part of the initial configuration of the Integration, and updated at any time by uploading a new CSV by editing the integration.

    Permission Name Handling

    Veza creates permissions by combining the Controller and Action fields from the CSV export. When the CSV contains multiple entries with identical controller-action combinations (but different descriptions or role assignments), Veza automatically appends a numeric identifier to ensure unique permission names.

    For example, if your CSV export contains:

    • requisition_lines,retry_realtime_verification,To re-initiate open buy item verification.,...

    • requisition_lines,retry_realtime_verification,Retry Realtime Verification,...

    This helps to ensure all permission mappings derived from the Coupa export are preserved in Veza's Access Graph, even when Coupa contains duplicate controller-action combinations with different role assignments.

    Coupa User

    Attribute
    Notes

    Coupa Group

    Coupa has multiple different types of Groups. Each group is mapped to a “Local Group” with a group_type property set to indicate its type. Veza currently collects User, Account and Content groups.

    Attribute
    Notes

    Coupa Role

    Attribute
    Notes

    Note: Only roles with users assigned are discovered by the integration. Unused roles will not appear in Veza.

    Google Drive

    Configuring the Veza integration for Google Drive

    Overview

    The Veza integration for Google Drive discovers shared drives, folders, and permissions within Google Drive file systems.

    How It Works

    The integration uses a Google Cloud IAM service account to interact with the Google Drive v3 API, enabling it to list Shared Drives, Folders, and folder permissions. The service account needs to be added as a viewer to shared drives to retrieve listings and permissions. New drives the service account is a viewer on are extracted during data source discovery, which runs periodically after configuration.

    Custom entity mapping:

    • Server: Google Workspace

    • Mount: Shared Drive

    • Folder: Folder

    Drive and Folder Permissions

    Google Drive has four roles that can be assigned to Shared Drives or Folders, and they are common between them. The role reference is as follows:

    • Organizer

    • File Organizer

    • Write

    • Commenter

    Note: The owner role is not currently supported.

    Sharing permissions are associated with Google Workspace Users or Groups based on the role that identity has on the drive/folder.

    Additionally properties are discovered for the sharing settings on the mount and drive:

    • domain_users_only: boolean indicating whether the drive/folder allows anyone in the domain access.

    • domain_role: string set with the domain shared role if shared.

    • shared_anyone: boolean indicating whether the drive/folder is shared with anyone with the link.

    Shared Drive Sharing Settings

    Google provides multiple settings that can be configured by an Administrator on a Shared Drive that can limit the sharing options and scopes for drives. Veza represents these as properties on each Shared Drive to allow for searching. The table below explains the relationship between the Google setting description and the Veza property.

    Google Shared Drive Setting
    Veza Property
    Value when Checked

    Setup

    Google Setup

    Google Drive connector uses a Google Workspace user to perform discovery. Permissions are granted to Veza to assume this user via an OAuth flow. Integration capabilities depend on the Workspace user's role and the shared drives they can view:

    • If the Google User is a Super Admin, Veza can discover all Google Drives and permissions. If using a Super Admin, check the Domain Admin Access box when adding the integration to Veza.

    • If the user is not a Super Admin, then the user must be added as a viewer to each Google Drive the integration will discover.

    • To discover Folder permissions on a drive, the User must be added as a viewer to the drive, regardless of role.

    To create an OAuth app, assign scopes, and retrieve the credentials:

    1. Log into Google Cloud Console https://console.cloud.google.com/

    2. Create a new project https://developers.google.com/workspace/guides/create-project and select that project

    3. Navigate to APIs & Services

    4. Select Enabled APIs & Services from the left and click + Enable APIs and Services from the top to enable a new API

    Configuring Google Drive on the Veza Platform

    1. In Veza, open the Integrations page.

    2. Click Add New and pick Google Drive as the type of integration to add

    3. Enter the required information and Save the configuration

    Field
    Notes
    1. Click the Authorize button and complete the flow through the Google consent screens.

    2. After being redirected to the Edit Integration page, save the integration.

    Automatically Add New AWS Accounts

    Integrate new AWS accounts in an organization using Landing Zones.

    Overview

    AWS Control Tower allows organizations to easily deploy AWS accounts into an organization, ensure that those accounts adhere to existing security policies, and create a baseline set of standard resources in each account.

    Veza integrates with AWS Control Tower to automatically register accounts added to an AWS Control Tower Landing Zone. When an AWS account is provisioned within the OU, the provided CloudFormation template will create the required IAM resources in the AWS account, and create a new Veza integration.

    Integration Details

    Veza’s AWS Control Tower integration is delivered as an AWS CloudFormation template that can be installed in an organization’s Control Tower root account. The integration consists of three main infrastructure components:

    1. An AWS Lambda function that runs in the Control Tower root account

      • This Lambda function executes when accounts are created or updated in the Control Tower Landing Zone (either by Service Catalog or Account Factory)

      • The function interacts with Veza APIs to ensure that the child account is registered as a Cloud Provider in the organization’s Veza instance

    The Veza-provided cloud formation script runs on account enrollment and account update. Any existing AWS accounts will need to be to trigger the script in the parent account and integrate the child accounts with Veza.

    Installation

    Before deploying the Veza AWS Control Tower integration, two pieces of data are required from the Veza instance.

    1. Make note of the URL used to connect to the Veza (ex: https://example.cookiecloud.ai)

    2. Generate an for use by the Control Tower root account

    AWS Configuration

    The following steps should be completed in the AWS Control Tower root account by an administrator IAM user:

    CloudFormation

    1. Log into the AWS console, click Services, then search for and select CloudFormation.

    2. In the left navigation bar, click Stacks.

    3. In the right corner of the main pane, click Create Stack, then select With new resources (standard) from the dropdown menu.

    Once the CloudFormation Stack is provisioned, the integration is enabled.

    Control Tower

    To see the integration in action, create an AWS account inside the Control Tower Landing Zone

    1. Log into the AWS console, click Services, then search for and select Control Tower.

    2. In the left navigation bar, click Account Factory.

    3. In the right corner of the main pane, click Enroll Account.

    The account creation and enrollment process can take up to 30 minutes. Once finished, the account will show Enrolled in the Control Tower Accounts view.

    Once the account shows as Enrolled, it will also be automatically integrated with the Veza instance referenced in the CloudFormation setup.

    Re-enroll member accounts

    Any currently-enrolled AWS accounts must be re-enrolled to trigger the script and integrate them with Veza. To remove an account from management so that it can be re-enrolled with Control Tower:

    1. Open the AWS .

    2. Open the Provisioned products list.

    3. Choose the account to remove from AWS Control Tower management.

    4. Choose Terminate from the Actions menu and confirm the decision.

    For more information see in the AWS documentation.

    S3 Information

    Veza CloudFormation scripts are hosted on AWS S3. You can either use the defaults provided below or host your own modified versions.

    If using a customized template, you should update the Amazon S3 URL when creating the CloudFormation stack, and set an appropriate VezaManagedAccountTemplateUrl when specifying the stack details.

    Hubspot

    Configuring the Veza integration for HubSpot.

    The Veza integration for HubSpot enables discovery of users, teams, and roles on the HubSpot CRM platform, enabling search, insights, and access reviews involving user access to HubSpot.

    The integration includes out-of-the-box queries. You can modify these based on your actual environment to create dashboards and rules for the risks and trends you want to monitor:

    • All HubSpot local user accounts

    • HubSpot roles that have users assigned

    • Number of users who have been granted the Super Admin role in HubSpot

    • Total number of HubSpot Roles

    • All HubSpot local Teams

    • HubSpot teams that have users assigned

    • HubSpot Local Users with an Okta identity

    • HubSpot Local Users who do not have an Okta identity

    • HubSpot Local Users with an Azure AD identity

    • HubSpot Local Users who do not have an Azure AD identity

    This document includes steps to enable the HubSpot integration in Veza, and supported entity details.

    Configuring the HubSpot Integration

    To configure the integration, you will need a HubSpot access token for a private app.

    Creating a private app enables Veza to use HubSpot's APIs to access specific data within your HubSpot account using an access token unique to the private app. You can create an app by following the instructions in . You must be a super admin to access private apps in your HubSpot account.

    Create a HubSpot private app and access token

    1. In HubSpot, click the settings icon in the main navigation bar.

    2. On the left sidebar, open Integrations > Private Apps.

    3. Click Create Private App.

    4. On the Basic Info tab, configure the details of your app:

    Enable the HubSpot integration in Veza

    1. In Veza, open the Integrations page.

    2. Click Add New and pick HubSpot as the type of integration to add.

    3. Enter the required information and Save the configuration.

    Field
    Notes

    Notes and Supported Entities

    The HubSpot integration uses standard custom application entity types to model users, teams, and permissions in the Access Graph:

    • HubSpot User → Local User

    • HubSpot Teams → Local Groups

    • HubSpot Permission Sets → Local Roles

      • HubSpot Permission Sets will only be collected for Enterprise HubSpot subscriptions.

    Veza collects the following attributes for HubSpot entities:

    Entity
    Property
    Description

    Jira Data Center

    Configuring the Veza integration for Jira Data Center

    Overview

    This integration enables discovery of Users and Groups, Projects, and Project Roles for Jira Data Center. Use it to:

    • Search and visualize relationships between Jira users and projects, and the roles granting access.

    • Review the state of authorization within Jira, such as User > Role, User > Group, or Group > Project access.

    • Create rules to trigger alerts when entities in Jira are added or removed, or when attributes change.

    • Visualize federated access to Jira Data Center for IdP identities.

    See for more information.

    Configuring Jira Data Center

    Veza connects to Jira Data Center with API keys generated for a Jira user. You should create a Jira user for the integration, and supply the user's API credentials when configuring the integration on Veza.

    Create a Jira User for the integration

    1. Log in to Jira as an administrator or system administrator.

    2. Click the Administration icon at the top right and pick User Management from the dropdown. Click Create user.

    3. Enter a username, password, and email address and save the changes.

    4. Assign the jira-administrators

    See for more details.

    Generate a Personal Access token

    Create a Personal Access Token for a user with Admin-level permissions.

    1. Log in to Jira with the new user account.

    2. In Jira, click your profile picture at the top right of the screen to open the Profile. Choose Personal Access Tokens.

    3. Click Create Token and give it a name. Optionally, you can set a date for the token to expire.

    4. Click Create to save the token. Copy the value.

    Save the token in a secure location, and enter it when configuring the integration on Veza. See .

    Configuring Jira Data Center on the Veza Platform

    To enable the integration and queue the first extraction:

    1. In Veza, go to Integrations.

    2. Click Add Integration and pick Jira Data Center as the type of integration to add.

    3. Enter the required information and Save the configuration.

    Field
    Notes

    Notes and Supported Entities

    Veza discovers the following entities and properties within Jira Data Center, and represents them in Access Graph following the OAA Application model:

    • Jira Software Data Center Business → Custom Application

    • Jira Software Data Center Project → Custom Resource

    • Jira Software Data Center Group → Local Group

    • Jira Software Data Center User → Local User

    The integration is tested with Jira Data Center and Jira Server version 9.6.

    Jira Data Center Project

    Attribute
    Description

    Project Permission Schemes: Jira Permission Schemes can grant users and groups permissions on Project through multiple mechanism. Depending on how the permission is assigned the permission can show up differently in Veza. A single permission can be assigned multiple ways.

    • Application Role- Permission is assigned to the Groups that hold the Application Role.

    • Project Role - The permissions are added to the Project Local Role. Role holders (users/groups) are assigned the role on the project.

    • User- Permission is assigned directly to the Local User.

    • Group- Permission is assigned directly to the Local Group.

    The following assignment types are not currently supported. These permissions would only apply to specific items inside the project and not the project as a whole:

    • Reporter

    • Assignee

    • Group By Custom Field

    Public permissions (Anyone) are represented as a property on the Project. The custom property has_public_permissions will be True if the Project has any public permissions. The public permissions are listed in the public_permissions property on the Project.

    Global Permissions: The connector does not currently support the discovery of global and system-level permissions.

    Jira Data Center Group

    Attribute
    Description

    Jira Data Center User

    Attribute
    Description

    Due to Atlassian API limitations, the integration cannot currently retrieve Jira user attributes: createdAt, lastLoginAt, deactivatedAt, and lastChangeAt.

    Jira Data Center Role

    Attribute
    Description

    IBM Aspera

    Configuring the Veza integration for IBM Aspera on Cloud

    Overview

    The Veza integration for IBM Aspera on Cloud enables gathering User, Groups, Roles and Workspace memberships for the cloud-based file transfer platform.

    Configuring Aspera

    1. Generate a key pair to use for authentication (if creating a new user):

      1. Use the command to generate the private portion ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key.

      2. Do not set a password.

      3. Create a public key from the private key: openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub

    Configuring Aspera on the Veza Platform

    1. On the Veza Integrations page, add a Aspera Integration with the following fields:

      1. Name - Name for integration

      2. Client Id - Client ID from the API client

      3. Client Secret

    Notes and Supported Entities

    Aspera Users

    Attribute
    Notes

    Aspera Group

    Attribute
    Notes

    Aspera Workspace

    Attribute
    Notes

    Aspera Roles

    Users are assigned roles to the Organization and Workspace based on their configured status

    Organization Roles

    • Organization Admin

    • ATS Admin

    • Member

    Workspace Roles

    • Manager

    • Member

    Bitbucket Data Center

    Configuring the Veza integration for self-managed BitBucket Data Center.

    Overview

    The Veza integration for BitBucket Data Center edition enables the discovery of Users, Groups, Projects, and Repositories within the self-managed version control system. After enabling the integration, you can:

    • Review user access to BitBucket at the group, project, or repository level.

    Clickhouse

    Configuring the Veza integration for ClickHouse.

    Overview

    ClickHouse is a high-performance columnar database management system (DBMS) optimized for Online Analytical Processing (OLAP). The Veza integration for ClickHouse Cloud enables discovery of users, roles, and services configured for your organization, providing visibility into what human and non-human identities have permissions on ClickHouse data and settings.

    Anaplan

    Configuring the Veza integration for Anaplan

    Overview

    The Veza integration for Anaplan enables the discovery of Users, Workspaces, Models, and User Workspace entitlements from the Anaplan platform. Veza users Anaplan APIs to populate the Access Graph with entities and metadata.

    This document explains how to enable and create an Anaplan integration. See for more details.

    New Relic

    This integration is provided as an Open Authorization API (OAA) connector package. Contact our support team for more information.

    Veza NewRelic Connector

    Veza Connector for NewRelic. Enables discover of NewRelic Users along with Organizations, Groups and their Roles.

    OneLogin

    Configuring the Veza integration for OneLogin

    Overview

    The OneLogin integration connects to your OneLogin environment to discover users, group memberships, applications, and role assignments managed by the identity provider.

    The integration enables:

    • Discovery of OneLogin users, groups, roles, and applications

    Oracle Cloud Infrastructure

    Enabling the Veza integration for OCI

    Overview

    The integration for Oracle Cloud adds users, storage resources, and IAM components (such as users, compartments, domains, groups, and policies) to the Veza Access Graph. An OCI user API key is required to gather identity, resource, and authorization metadata.

    See for more details on supported entity types.

    curl -X GET 'https://{{BaseURL}}/api/v1/providers/google_cloud/{{ID}}:checkpolicy' \
    -H 'authorization: Bearer {{token}}'
    {
      "requires_update": true,
      "google_cloud_customer_id": "{id}",
      "current_permissions": [],
      "required_permissions": [
        "bigquery.datasets.get",
        "bigquery.datasets.getIamPolicy",
        "bigquery.tables.get",
        "bigquery.tables.getIamPolicy",
        "bigquery.tables.list",
        "cloudkms.cryptoKeyVersions.get",
        "cloudkms.cryptoKeyVersions.list",
        "cloudkms.cryptoKeys.get",
        "cloudkms.cryptoKeys.getIamPolicy",
        "cloudkms.cryptoKeys.list",
        "cloudkms.keyRings.get",
        "cloudkms.keyRings.getIamPolicy",
        "cloudkms.keyRings.list",
        "cloudkms.locations.get",
        "cloudkms.locations.list",
        "cloudsql.databases.list",
        "cloudsql.instances.list",
        "cloudsql.users.list",
        "compute.instances.getIamPolicy",
        "compute.instances.list",
        "compute.networks.list",
        "compute.regions.list",
        "compute.subnetworks.getIamPolicy",
        "compute.subnetworks.list",
        "compute.zones.list",
        "container.clusters.list",
        "iam.roles.get",
        "iam.roles.list",
        "iam.serviceAccounts.list",
        "logging.logEntries.list",
        "resourcemanager.folders.getIamPolicy",
        "resourcemanager.folders.list",
        "resourcemanager.organizations.get",
        "resourcemanager.organizations.getIamPolicy",
        "resourcemanager.projects.get",
        "resourcemanager.projects.getIamPolicy",
        "resourcemanager.projects.list",
        "resourcemanager.tagKeys.get",
        "resourcemanager.tagKeys.list",
        "resourcemanager.tagValues.get",
        "resourcemanager.tagValues.list",
        "run.services.getIamPolicy",
        "run.services.list",
        "secretmanager.locations.get",
        "secretmanager.locations.list",
        "secretmanager.secrets.create",
        "secretmanager.secrets.createTagBinding",
        "secretmanager.secrets.delete",
        "secretmanager.secrets.deleteTagBinding",
        "secretmanager.secrets.get",
        "secretmanager.secrets.getIamPolicy",
        "secretmanager.secrets.list",
        "secretmanager.secrets.listEffectiveTags",
        "secretmanager.secrets.listTagBindings",
        "secretmanager.secrets.setIamPolicy",
        "secretmanager.secrets.update",
        "secretmanager.versions.access",
        "secretmanager.versions.add",
        "secretmanager.versions.destroy",
        "secretmanager.versions.disable",
        "secretmanager.versions.enable",
        "secretmanager.versions.get",
        "secretmanager.versions.list",
        "serviceusage.services.list",
        "storage.buckets.getIamPolicy",
        "storage.buckets.list"
      ],
      "required_actions": [
        "logging.logEntries.list",
        "secretmanager.locations.get",
        "secretmanager.locations.list",
        "secretmanager.secrets.create",
        "secretmanager.secrets.createTagBinding",
        "secretmanager.secrets.delete",
        "secretmanager.secrets.deleteTagBinding",
        "secretmanager.secrets.get",
        "secretmanager.secrets.getIamPolicy",
        "secretmanager.secrets.list",
        "secretmanager.secrets.listEffectiveTags",
        "secretmanager.secrets.listTagBindings",
        "secretmanager.secrets.setIamPolicy",
        "secretmanager.secrets.update",
        "secretmanager.versions.access",
        "secretmanager.versions.add",
        "secretmanager.versions.destroy",
        "secretmanager.versions.disable",
        "secretmanager.versions.enable",
        "secretmanager.versions.get",
        "secretmanager.versions.list"
      ],
      "overprivileged_actions": [
        "cloudkms.cryptoKeyVersions.viewPublicKey",
        "run.locations.list"
      ]
    }
    CREATE USER '[veza_user]'@'%' IDENTIFIED BY '[your-strong-password]';
    
    GRANT REFERENCES ON *.* TO [veza_user];
    GRANT SELECT ON mysql.user TO [veza_user];
    GRANT SELECT ON mysql.db TO [veza_user];
    GRANT SELECT ON mysql.tables_priv TO [veza_user];
    GRANT SELECT ON mysql.columns_priv TO [veza_user];
    GRANT SELECT ON mysql.global_grants TO [veza_user];
    GRANT SELECT ON mysql.procs_priv TO [veza_user];
    GRANT SELECT ON mysql.proxies_priv TO [veza_user];
    
    -- Only if MySQL version is up to 5.7
    GRANT SELECT ON mysql.proc TO [veza_user];
    
    -- Only if MySQL version is 8+
    GRANT SELECT ON mysql.role_edges TO [veza_user];
    GRANT SHOW_ROUTINE ON *.* TO [veza_user];
    
    -- If including triggers
    GRANT TRIGGER ON *.* TO [veza_user];
    Lifecycle Management permissions
    
     GRANT CREATE USER ON . TO [veza_user];
     GRANT DROP USER ON . TO [veza_user];
     GRANT ALTER USER ON . TO [veza_user];
     GRANT GRANT OPTION ON . TO [veza_user];
    
    : The hostname or IP address of the MySQL server.
  • Port: The port number on which the MySQL server is listening (default is usually 3306).

  • Username: The username to authenticate with the MySQL server.

  • Password: The password associated with the provided username.

  • People's data > People > Work contact details > View selected employees' Work contact details sections.

  • People > Lifecycle > View selected employees' lifecycle sections.

  • Provisioning Source

    Toggle to enable HiBob as a source of identity for Lifecycle Management.

    HiBob API documentation

    Access Token: Integration Access Token.

    State of GitLab license usage

    User

    state

    Account state active, blocked, deactivated

    User

    is_active

    True if account state is active

    User

    created_at

    Time user account was created

    User

    last_login_at

    Time of last user login to GitLab*

    Project

    visibility

    Project visibility, private, internal, public

    Project

    gitlab_id

    Unique GitLab project ID number

    Insight Point

    Provide a name and email address for the user.

  • Click Send invite.

  • Generate a personal access token.

    1. Click Settings in the lower left corner of your Databricks workspace.

    2. Click User Settings.

    3. Go to the Access Tokens tab.

    4. Click the Generate New Token button. Optionally enter a description (comment) and expiration period.

    5. Click Generate. Copy the generated token, and store it securely.

  • Assign the admin role to the user.

    1. As an account admin, log in to the account console.

    2. Click Account Console > User management.

    3. Find and click the user you created.

    4. On the Roles tab, turn on Account admin.

  • permission on the cluster (
    More > Permissions
    )
    of the Azure AD, AWS Identity Center, or Okta IdP.
    Compute Resources: Clusters, Jobs, and Pipelines with access controls

    Name

    Display name for the integration

    Workspace URL

    Web address of the Databricks workspace (without the https://)

    Access Token

    Databricks user personal token

    Cluster Endpoint

    JDBC/ODBC endpoint for the cluster configured for Veza use

    SSO Type

    The Identity Provider used for Single Sign On (optional).

    SSO ID

    Data Source ID of the identity provider used for single sign-on

    Azure AD

    Azure Tenant ID (ff57cf71-ac1c-43b8-8111-43b1be101dab)

    Okta

    Okta Domain (<domain>.okta.com)

    AWS Identity Center

    AWS Identity Center identity store ID (ff57cf71-ac1c-43b8-8111-43b1be101dab)

    Databricks Unity Catalog
    Notes and Supported Entities
    Azure Databricks
    Enable Access Control
    Create a new Databricks Admin user
    Authentication using Databricks personal access tokens
    Compute configuration reference
    Custom Identity Mappings
    Databricks Entities and Permissions Reference

    An IAM Role and Policy for the Control Tower root account to enable the Lambda function to execute and to read account update events in CloudWatch

  • An IAM Role and Policy for the child account to allow Veza to assume an IAM Role with read-only access and discover the resources inside the account

  • In Step 1: Specify Template form, enter https://veza-controltower.s3.us-east-2.amazonaws.com/veza.yaml as the Amazon S3 URL.
  • In Step 2: Specify Stack Details, provide the following details:

    1. Stack Name: enter a display name for the CloudFormation Stack.

    2. VezaApiToken: paste in the API key generated for the Veza instance.

    3. VezaApplicationUrl: paste in the URL of the Veza instance copied above.

    4. VezaDiscoveryAccountId: leave the default value unless otherwise instructed.

    5. VezaExternalId: this is the externalId that Veza will provide when attempting to assume the IAM Role in the child account. It can be set to any value.

    6. VezaManagedAccountTemplateUrl: use the default value unless hosting the CloudFormation templates in a non-Veza S3 bucket.

    7. VezaRDSUser: this is the user account that will be used to discover RDS resources.

  • For Step 3: Configure Stack Options form, accept the default values, and click Next.

  • In Step 4: Review, review the entered parameters, scroll to the bottom of the form and accept the IAM Role disclaimer, then click Create Stack.

  • Complete the Enroll Account form with the following details:
    • An email account for the root account user.

    • A display name for the account.

    • SSO details for the account user.

    • Select a parent Organizational Unit where the account will be provisioned.

  • Click Enroll Account.

  • When successful, the account status will change to Not Enrolled.

  • Environment

    Root account YAML URL

    Managed Account YAML URL

    Production

    https://veza-controltower.s3.amazonaws.com/veza-controltower.yaml

    https://veza-controltower.s3.amazonaws.com/veza-controltower-managed-account.yaml

    re-enrolled
    API key
    Service Catalog
    Unmanage an account
    group to enable Veza to gather user, group, and permissions metadata. Without admin permissions, the integration can only discover Jira projects.

    Jira Software Data Center User Role → Local Role

  • Jira Software Data Center Permission → Local Permission

  • has_public_permissions

    True if any permission on project is public

    public_permissions

    List of Project Permissions that are public

    Project Lead - Permission is assigned directly to the Local User configured as Project Lead.

    Insight Point

    Choose whether to use the default data plane or a deployed Insight Point.

    Name

    A friendly name to identify the unique integration.

    Jira Software Data Center URL

    Full URL used to access Jira, such as https://mycompany.com/jira.

    Jira Software Data Center Token

    User API token from the previous steps.

    name

    Project name

    key

    Project Key

    description

    Project Description

    archived

    True if project archived, False otherwise

    project_keys

    List of historic and current project keys

    project_lead

    Login of project lead

    name

    Group Id

    name

    Group name

    key

    User Id

    emailAddress

    User's email address

    name

    User's name

    displayName

    User's display name

    active

    True if user is active user, else False

    is_deleted

    True if user deleted, False otherwise

    project_key

    Key of the project for respective role

    notes and supported entities
    Create, edit, or remove a user
    Using Personal Access Tokens
    provider id
    New API Key Pop-up
    https://<yourCompany>.jamfcloud.com/
    .

    access_level (Custom)

    Access level: Full Access, Site Access, Group Access.

    Group

    id

    Unique ID of the group.

    name

    Name of the group.

    access_level (Custom)

    Access level: Full Access, Site Access, Group Access.

    Resource

    id

    Unique ID of the Site.

    name

    Name of the Site.

    Viewer

    anyone_role: string containing the shared role if shared.

    "Allow viewers and commenters to download, print, and copy files"

    Copy Requires Write Permission

    false

  • Search for "Google Drive API", select it from the results, and select Enable

  • Return to APIs & Services and select OAuth Consent Screen

  • Select Internal for the App type and click Create

    1. Provide a name and the contact emails

    2. Click Save and Continue

    3. Click Add or Remove Scopes

    4. Add the https://www.googleapis.com/auth/drive.readonly scope

      1. The drive.readonly scope is required to list Shared Drives

    5. Click Save and Continue

  • Return to APIs & Services and select Credentials

    1. Create credentials by click + Create Credentials and selecting OAuth Client ID

    2. Select Web Application for Application Type and enter a name

    3. Under Authorized redirect URLs add https://oauth2-redirect.on.vezacloud.com

    4. Save and download the JSON file from the creation modal

  • "Allow managers to modify shared drive settings"

    Admin Managed Restrictions

    false

    "Allow people outside of {Organization Name} to access files"

    Domain Users Only

    false

    "Allow people who aren't shared drive members to access files"

    Drive Members Only

    false

    "Allow content managers to share folders"

    Sharing Folders Requires Organizer Permission

    Customer ID

    Google Workspace ID

    Credentials

    Credentials JSON file from Google Setup procedure

    Domain Admin Access

    Check to use Domain Admin privileges during discovery (user must be Super Admin)

    Drive Allow List

    List of Drive names to discover, if provided drives that do not match this list will be ignored

    Drive Deny List

    List of Drives to exclude from discovery

    false

    .
  • Create or use an existing user for authentication:

    1. For a new user, set the user's public key to the public portion of the generated key pair.

    2. For an existing user and key pair set, use the corresponding public key to configure the integration in Veza.

  • Go to Integrations -> API clients to create an API client:

    1. Enter a name.

    2. Enter the Veza URL for the Redirect URI.

    3. Enable Enable JWT Grant type.

    4. Deselect Client can retrieve token for all users and pick the configured user.

    5. Click create and note the Client ID and Client Secret

  • Note the Aspera Organization name. This is your Aspera sub-domain, for example https://<org_name>.ibmaspera.com.

  • - Corresponding Client Secret
  • Username - Username for API client user with public key.

  • Organization Name - Aspera Organization name

  • Corresponding IBM User ID

    ats_admin

    Boolean true if user is ATS Admin

    organization_admin

    Boolean True if user is Organization Admin

    id

    Aspera on Cloud User ID

    name

    User full name as configured

    is_active

    Boolean True if user is active

    created_at

    Timestamp for user creation

    last_login_at

    Timestamp user last logged in

    email

    User's configured email

    id

    BlackLine Group ID

    name

    Group name

    created_at

    Timestamp for group creation

    manager_ids

    List of manager User IDs for Group

    owner_ids

    List of group owner IDs

    id

    Workspace ID

    name

    Workspace Name

    description

    Workspace description

    ibm_uid

    Create a new user and assign the user to the role.
    https://api.boomi.com/api/rest/v1/{{accountId}}/
    )
  • Username: Username of the integration user.

  • Token: API token for the integration user.

  • Click Create Integration to save the configuration.

  • Support: Access to Boomi Assure, developer tools, execution of processes, licensing view, view data, and view results.

  • userId

    The user ID.

    firstname

    The first name of a user.

    lastname

    The last name of a user.

    id

    The ID of the role.

    parentId

    The ID of the parent role.

    name

    The name of the role.

    description

    The description of the role.

    name

    Name of the privilege.

    notes and supported entities
    Adding a user and assigning roles
    AtomSphere API Tokens settings
    Custom Identity Mappings
    User Roles and Privileges: Common Examples
    Creating an API token.

    User

    user_id

    Bullhorn unique user ID

    User

    master_user_id

    Bullhorn master user ID

    User

    title

    User's title configured in Bullhorn

    User

    primary_department

    User's primary department

    User

    additional_departments

    List of any additional departments

    User

    user_type

    String of User's type

    -n/--name

    Name of Bullhorn instance for managing multiple instances

    --create

    Create new datasource for name if doesn't already exist

    --debug

    Enable verbose debug output

    --save-json

    Save OAA Payload as local JSON file before upload

    Instance

    Application

    User

    Local User

    User Type

    Local Role

    Entitlement

    Permission

    User

    primary id

    User's login

    User

    is_active

    Boolean if User is active

    User

    email

    Primary email configured for user

    User

    additional_emails

    --veza-url

    VEZA_URL

    URL of Veza system

    VEZA_API_KEY

    API key for Veza connection

    -u/--users

    Path to user list export CSV file

    -e/``--entitlements

    List of any additional emails configured

    Path to user type entitlements export CSV file

    core.users.read

  • Save the Client and note the Client Identifier and Client Secret

  • Veza will create permissions named:
    • requisition_lines - retry_realtime_verification - 1

    • requisition_lines - retry_realtime_verification - 2

    requisition_approval_limit_amount

    Numeric value for requisition approval limit if set on User

    requisition_self_approval_limit_amount

    Numeric value for requisition self approval limit if set on User

    Coupa URL

    URL of the instance to connect to

    Coupa Client Identifier

    OAuth Client ID

    Coupa Client Secret

    OAuth Client Secret

    Role Permissions

    Export of Role permissions from Coupa (Optional)

    authentication_method

    Authentication method user signs in by

    created_at

    Time the user was created at

    email

    Email address associated with User

    invoice_approval_limit_amount

    Numeric value for invoice approval limit if set on User

    is_active

    True if the user is active

    login

    User's login

    group_type

    What type of group the local group is

    is_active

    True if the group is active

    description

    Description from role

    omnipotent

    True if Coupa role is omnipotent

    system_role

    True if Coupa role is a system role

    Coupa documentation
    Configuring Anaplan

    The Veza integration for Anaplan utilizes both the Integration API v2 and the SCIM API to gather entity and entitlement metadata.

    Access to the SCIM API requires a non-SSO user with the User Admin role assigned.

    Create a User

    To create a user, sign in to Anaplan with an account that has the User Admin role and follow these steps or see Create a new internal user:

    1. In Users > Internal, click New. The Create new internal user dialog displays.

    2. Complete the new user dialog prompts for First Name, Last Name, and Email Address.

    3. Click Create user to create the user account or click Cancel to cancel the account creation.

    4. In the dialog, select the workspaces the user can access.

      • Click the select all box to select all the workspaces in your tenant.

    5. Deselect the Notify user when added to workspaces to prevent additional notification emails.

    6. Click Add to Workspaces to assign the user to the workspaces.

    To assign the newly created user the User Admin role for use with SCIM, follow these steps or see Assign or unassign roles for internal users

    1. Access the Administration console.

    2. Go to Access Control > Assignments

    3. Pick the internal user for the Veza integration from the list.

    4. Click the checkbox next to User Administration role to assign it.

    5. Click Save.

    To finish the registration process, open the activation link sent to the email provided when creating the user. Record the account email and password for configuring the integration in Veza.

    (Optional) Configure Certificate Authentication

    Configuration of Certificate Authority (CA) authentication to Anaplan is outside the scope of this document. See Security Certificates for information on how to get started.

    After enabling CA authentication, follow these steps or see Manage your certificates to register a certificate for the integration user:

    1. Access Administration from the Application menu.

    2. Select Security > Certificates.

    3. Select Add Certificates.

    4. Select Choose File to locate the .pem certificate that you want to add.

    5. Select Import Certificates.

    Configuring Anaplan on the Veza Platform

    To enable Veza to gather data from the Anaplan platform:

    1. In Veza, open the Integrations page.

    2. Click Add New and choose Anaplan as the type of integration to add.

    3. Enter the requested information and Save the configuration.

    Field

    Notes

    Name

    A unique display name for the Anaplan platform connection

    Username

    The username of the account recorded above

    Password

    The password of the account recorded above

    Certificate

    The public certificate PEM file recorded above

    Certificate Key

    The private key PEM file recorded above

    Authentication: Provide either username/password credentials or a certificate/key pair. If both are provided, this integration will use certificate authentication when connecting to Anaplan.

    Certificates: If your certificate and key are combined in a .p12 file, run the following commands to output them in .pem format:

    Notes and Supported Entities

    Anaplan User

    Attribute

    Notes

    email

    The user's email address

    is_active

    Boolean true if the account is not disabled

    last_login_at

    The timestamp when the user account last logged on

    Anaplan Workspace

    Attribute

    Notes

    is_active

    Boolean true if the workspaces is not archived

    Anaplan Model

    Attribute

    Notes

    active_state

    A string representation of the model's current state

    last_modified_by

    The id of the user that last modified the model

    Note: Anaplan APIs do not provide model permissions information. Available model metadata is gathered for display only.

    notes and supported entities
    {
        "id": "9ba2e34c-2818-11e6-a17b-45f3f0dc7cd7",
        "name": "MDM Administrator",
        "description": "Boomi Default MDM Administrator Role.",
        "Privileges": [
            {"name": "MDM_DESTROY"},
            {"name": "MDM_SOURCE_ATTACH"},
            {"name": "MDM_BATCH_ADMIN"},
            {"name": "MDM_DASHBOARD"},
            {"name": "MDM_EDIT_MODELS"},
            {"name": "MDM_STEWARDSHIP"},
            {"name": "MDM_VIEW_DATA"},
            {"name": "MDM_VIEW_REPOSITORIES"},
            {"name": "MDM_VIEW_MODELS"},
            {"name": "MDM_STEWARDSHIP_MGMT"},
            {"name": "MDM_REPORTING_HISTORY"},
            {"name": "MDM_VIEW_LOGS"},
            {"name": "MDM_SOURCE_MGMT"},
            {"name": "MDM_DEPLOY"},
            {"name": "MDM_REPORTING_OPS"},
            {"name": "MDM_REPOSITORY_MGMT"}
        ]
    }
    Master UserID,UserID,Login Name,First Name,Last Name,Email,Additional Email Addresses,Title,Enabled?,UserType,Primary Department,Additional Departments
    pip3 install -r requirements.txt
    export VEZA_API_KEY="ZXldTcj...JCWGU3Qlo1OHR3RTBfc00yN3lfSFk="
    ./oaa_bullhorn.py --veza-url https://<your-org>.vezacloud.com --users <user_export.csv> --entitlements <entitlements_export.csv> --name "Prod"
    Controller,Action,Description,Roles
    openssl pkcs12 -in your_file.p12 -out veza_anaplan.crt.pem -clcerts -nokeys
    
    openssl pkcs12 -in your_file.p12 -out veza_anaplan.key.pem -nocerts -nodes
  • Enter your app's name.

  • Hover over the placeholder logo and click the upload icon to upload a square image that will serve as the logo for your app.

  • Enter a description for your app.

  • Click the Scopes tab to add required scopes:

    • settings.users.teams.read

    • settings.users.read

    • crm.objects.users.read

  • Click Create App in the top right to save your changes.

  • On the Auth tab of the application details, click Show Token and copy the app access token:

  • User

    superadmin

    True if the user is a Super Admin

    User

    role_name

    User's role

    User

    created_at

    Timestamp User created at

    User

    deactivated_at

    Timestamp User deactivated at

    User

    password_last_changed_at

    Timestamp User's password was last updated at

    Group

    id

    Team's ID provided by HubSpot

    Group

    name

    Team's name

    Role

    id

    Role's ID provided by HubSpot

    Role

    name

    Role's name

    Name

    A unique display name for the HubSpot organization.

    Insight Point

    Use the default setting unless using an external Insight Point.

    Token

    Trusted access token for the HubSpot private app.

    User

    email

    User's email address

    User

    principal_id

    User's ID provided by HubSpot

    User

    primary_team_name

    User's primary team name

    User

    primary_team_id

    User's list of secondary team names

    Private Apps

    Correlate local BitBucket users with external users to understand how federated identities can access resources in BitBucket, including public repositories.

  • Configure insights, rules, and actions to understand and manage access risks, based on any attributes Veza has discovered, such as activity or last login.

  • This document provides steps to enable the integration. See Notes and Supported Entities for more information.

    For Bitbucket Cloud, see the Atlassian Cloud Connector.

    Configuring Bitbucket Data Center

    Requirements:

    • Veza requires authorization to call the Bitbucket REST API to collect authorization metadata. You will need an admin username and password to fully gather global and group permissions.

    • An Insight Point is recommended for secure communication with the BitBucket Data Center host.

    • Veza must be able to access the Bitbucket Data Center host to perform API calls. To achieve this, you can install an Insight Point or allow inbound traffic from Veza in your firewall rules.

    Recommended configuration: username and password

    For full discovery, the integration calls the Bitbucket Admin API as an admin user, configured for username and password authentication.

    1. Create a new BitBucket user with Admin privileges

      • Ensure two-factor is disabled.

      • Set a strong password for the user.

      • Specify the username and password during configuration.

    See Users and Groups: Creating a User for more details.

    Alternate configuration with a Personal Access Token

    The integration can optionally use an Access Token for an admin user for authentication. With a personal access token, the integration will not discover global permissions for BitBucket, and project permissions for groups will contain nested group members.

    See Personal Access Tokens to create a token.

    Configure the Veza integration for BitBucket Data Center

    To enable the integration and queue the first extraction:

    1. In Veza, go to Integrations.

    2. Click Add Integration and pick Bitbucket Data Center as the type of integration to add.

    3. Enter the required information and Save the configuration.

    Field
    Notes

    Insight Point

    Choose an Insight Point to use for discovery.

    Name

    A friendly name to identify the unique integration.

    Host URL

    Full URL used to access Bitbucket, such as https:/bitbucket.mycompany.com.

    Only Used Groups

    Check this box to only processes Groups used by Bitbucket Users.

    Username

    Username for authentication. Leave blank if using a Personal Access Token.

    User Secret

    The password or Personal Access Token for authentication.

    Some Bitbucket LDAP configurations can unnecessarily result in discovery of all LDAP groups. Use the Only Used Groups option to prevent discovering all groups.

    Note: The Project Allow and Deny lists are by the Project's Key. This is generally the last part of the URL when browsing to the Project.

    Notes and Supported Entities

    Veza uses the standard application template to model the following entities and properties within Bitbucket:

    • Bitbucket Data Center Workspace → Application

    • Bitbucket Data Center Project → Project Resource

    • Bitbucket Data Center Repository → Repo Resource

    • Bitbucket Data Center Group → Local Group

    • Bitbucket Data Center User → Local User

    • Bitbucket Data Center User Role → Local Role

    • Bitbucket Data Center Permission → Local Permission

    Bitbucket Data Center User

    An individual account within the Bitbucket Data Center environment, who can access and interact with the Bitbucket instance. This includes managing personal settings and cloning, committing, and reviewing code.

    Users can be assigned permissions on resources directly, or by group membership. See Global Permissions: User and Group Access for more details.

    Attribute
    Description

    id

    User Id

    email

    User's email address

    name

    User's login name

    display_name

    User's display name

    is_active

    True if user is an active user, else False

    last_login_at

    User last login time

    Bitbucket Data Center Group

    A collection of users in Bitbucket Data Center, assigning the same set of permissions to multiple users. Groups can be used to manage repository access, project roles, and other collaborative settings efficiently.

    Attribute
    Description

    id

    Group Id

    name

    Group name

    is_active

    True if group is active, else False

    Bitbucket Data Center Project

    A top-level organizational unit used to group related repositories for management and access control. Project-level settings and permissions can apply to all child repositories. Projects typically organize repositories logically by department, team, or specific initiatives.

    Attribute
    Description

    id

    Project Id

    name

    Project name

    is_public

    True if Project is marked "Public"

    Bitbucket Data Repository

    Repositories are fundamental units within Bitbucket where actual development work is tracked and managed, containing files, commit history, branches, and tags associated with a project's codebase. Users can interact with repositories by cloning, forking, committing, and pushing changes

    Attribute
    Description

    id

    Repository Id

    name

    Repository name

    slug

    Repository slug

    is_public

    True if repo is marked "Public"

    project_key

    Project key repository belongs to

    Prerequisites
    • A ClickHouse Cloud account

    • Administrator access to create API keys in ClickHouse

    • A Developer API key with permissions to read organization metadata

    • Note: The integration currently supports connecting to a single organization only

    Configuring the Veza integration for ClickHouse

    Retrieve a ClickHouse API Key

    1. In the ClickHouse Cloud Console, select API Keys from the left menu.

      Choose API Keys on the navigation menu.
    2. Click New API Key in the top-right corner. For new accounts, you'll see a prompt to create your first key.

    3. Configure the API key:

      • Enter a descriptive Key Name

      • For Organization Permissions, select Developer

      • Set an appropriate expiration time

    4. Click Generate API Key

    5. Copy and securely store both the Key ID and Key Secret. These values cannot be retrieved after leaving this page.

    Add the ClickHouse Integration to Veza

    1. Browse to your Veza instance

    2. In the left navigation, choose Integrations

    3. Click Add Integration and select ClickHouse

    4. Enter the following values:

      • Client ID: The Key ID from your ClickHouse API key

      • Client Secret: The Key Secret from your ClickHouse API key

    5. Click Create Integration to save your changes

    Notes and Supported Entities

    Organization Level Properties

    The integration captures organization-level metadata for a ClickHouse Cloud deployment. Note that the integration currently supports connecting to a single organization only.

    Veza Field Name
    Description
    Property Type

    organization_id

    Unique identifier for your ClickHouse organization

    Application Custom Property

    organization_name

    Display name of your ClickHouse organization

    Application Custom Property

    created_at

    Organization creation timestamp in ISO-8601 format

    Application Custom Property

    Users

    Users represent members of your ClickHouse organization who can access and manage services. Each user is assigned either an Admin or Developer role, which determines their access to services and organization settings.

    Veza Field Name
    Description
    Property Type

    id

    The user's unique identifier

    LocalUser Property

    name

    User's display name

    LocalUser Property

    email

    User's email address

    LocalUser Property

    created_at

    When the user joined the organization (ISO-8601 format)

    Role Assignment:

    • Users with role "admin" are assigned the Admin role with full access to all services

    • All other users are automatically assigned the Developer role with selective service access

    Services

    Services represent individual ClickHouse database instances within your organization. Each service represents a deployable database with specific configuration options across cloud providers and regions.

    Veza Field Name
    Description
    Property Type

    id

    Unique identifier for the service

    Resource ID

    name

    Display name of the service

    Resource Name

    provider

    Cloud provider where service is deployed (aws, gcp, azure)

    CustomResource Property

    region

    Cloud region where service is deployed

    Service Tiers:

    • development: Fixed-size instances with limited scaling (not available on Azure)

    • production: Fully scalable instances

    • dedicated_high_mem: Memory-optimized instances

    • dedicated_high_cpu: Compute-optimized instances

    Roles

    ClickHouse uses a role-based access control (RBAC) system with two predefined roles:

    • Admin: Full administrative access to all services and organization settings

    • Developer: Limited access focused on service usage and monitoring

    Permissions

    The integration maps ClickHouse system permissions to standardized Veza permission types. These mappings include:

    Service Management:

    • View service: DataRead, MetadataRead

    • Create service: DataCreate, MetadataCreate

    • Delete service: DataDelete, MetadataDelete

    • Stop service: DataWrite, MetadataWrite

    • Restart service: DataWrite, MetadataWrite

    • Reset service password: DataWrite, MetadataWrite

    • View service metrics: DataRead, MetadataRead

    Access Management:

    • View API key records: DataRead, MetadataRead

    • Create API key: DataCreate, MetadataCreate

    • Delete API key: DataDelete, MetadataDelete

    • View users: DataRead, MetadataRead

    • Invite users: DataCreate, MetadataCreate

    • Change user role: DataWrite, MetadataWrite

    • Delete users: DataDelete, MetadataDelete

    Organization Management:

    • View billing: DataRead, MetadataRead

    • Manage billing: DataRead, DataWrite, DataCreate, DataDelete, MetadataRead, MetadataWrite, MetadataCreate, MetadataDelete

    • View organization activity: DataRead, MetadataRead

    • Submit support requests: DataCreate, MetadataCreate

    • View integrations: DataRead, MetadataRead

    Veza Application Mapping
    NewRelic
    OAA Application
    Notes

    NewRelic.com

    Application

    Users

    Local User

    Organizations

    Custom Resources

    Groups

    Local Group

    Discovered Properties

    Entity
    Property
    Description

    User

    id

    User's ID provided by NewRelic

    User

    name

    User's name

    User

    user_type

    User's member type. It can be either Full platform or Basic

    User

    email

    Setup

    NewRelic

    1. Follow the instructions to generate API Key (User key, used for querying and configuration) A user key is required to use NerdGraph, which is used for querying data and configuring features. Each user key is tied to a specific user.Generate API Key here

    2. Note the API key is need to run the Integration.

    Veza

    1. Generate an API key for your Veza user. API keys can be managed in the Veza interface under Administration -> API Keys. For detailed instructions consult the Veza User Guide.

    Running the Connector

    Command Line

    1. Install the requirements:

    2. Set the Secrets:

    3. Run the connector:

    Parameters

    CLI Parameter
    Environment Variable
    Description

    --veza-url

    VEZA_URL

    URL of Veza system

    VEZA_API_KEY

    API key for Veza connection

    NEW_RELIC_KEY

    New Relic API Key

    --debug

    Visibility into OneLogin administrative roles

  • Review of SAML applications assigned to OneLogin users and groups

  • Mapping access between OneLogin users and AWS IAM roles they can assume

  • Configuring OneLogin

    Veza connects to your OneLogin environment using read-only API credentials. To configure the integration, you will need to create a new credential and save the client ID and secret.

    Prerequisites

    • OneLogin administrator account

    • API credentials with Read All scope

    Creating OneLogin API Credentials

    1. Log in to OneLogin as an account owner or administrator.

    2. Navigate to Developers > API Credentials.

    3. Click New Credential.

    4. Select "Read All" scope.

    5. Click Save and securely store the client ID and secret.

    See the Working with API Credentials documentation for more details.

    Configuring OneLogin on the Veza Platform

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and search for OneLogin.

    3. Click on the OneLogin tile to open the configuration form.

    4. Enter the required information.

    5. Click Create Integration to save the configuration.

    Field
    Description

    Insight Point

    Choose whether to use the default data plane or a deployed Insight Point

    Name

    A friendly name to identify the unique integration

    Domain

    OneLogin domain, e.g., your-domain.onelogin.com

    Region

    OneLogin region, e.g., us

    Client ID

    API client ID from OneLogin

    Client Secret

    API secret from OneLogin

    Notes and Supported Entities

    The OneLogin integration discovers the following entities and relationships:

    • Domain → Users

    • Domain → Applications

    • Domain → Groups (one-to-many)

    • Domain → Roles (one-to-many)

    • Users → Groups (many-to-one)

    • Users → Roles (many-to-many)

    • Applications → Users (many-to-many)

    OneLogin Domain

    A OneLogin tenant containing and managing users, applications, groups, and roles. The domain serves as the root node for discovering identity and access relationships.

    OneLogin User

    Identities in OneLogin, including core attributes and authentication status. Users can belong to groups and be assigned roles.

    Attribute
    Description

    username

    OneLogin username (required)

    email

    User's email address (required)

    firstName

    User's first name

    lastName

    User's last name

    title

    Job title (optional)

    department

    Department name (optional)

    OneLogin App

    SAML Applications integrated with OneLogin define what users can access through OneLogin SSO.

    Attribute
    Description

    oneLoginConnectorId

    OneLogin connector identifier (required)

    samlProviderIds

    Associated SAML provider IDs (optional)

    createdAt

    Application creation timestamp

    updatedAt

    Last modification timestamp

    OneLogin Group

    Groups represent collections of users, used for role-based access control at scale.

    OneLogin Role

    Admin role assignments in OneLogin grant access to platform management capabilities. Roles track administrative access with admin ID mappings.

    Attribute
    Description

    adminIds

    List of administrative user IDs (optional)

    Prerequisites

    To authenticate to Oracle Cloud you will need to create a user with a dedicated group, generate an API key, and grant the required permissions via IAM policy.

    Create a new Oracle Cloud User

    The User and its dedicated group must be in a domain located directly below your Oracle Cloud tenancy (for example, the default OCI domain).

    Create a new group that will be granted the required permissions for discovery:

    1. Go to Identity and Security > Domains > Default (or another top level domain)> Groups > Create Group

    2. Assign a name to the group (such as veza-oci-integration) and add a description

    3. Click Create

    Create a new user:

    1. From the main navigation menu, choose Identity & Security. Under Identity, click Users

    2. Click Create User

    3. Add a name, description, and email address. Click Create.

    On the user details page, add the users to the group:

    1. Click Groups

    2. Click Add User to Group

    3. Select the group from the drop-down list, and then click Add

    For more information see Managing Users in the Oracle Cloud documentation.

    Save access key and configuration file

    Open the user’s profile page (Identity → Domains → {Domain} → Users → {User})

    1. Scroll down and select API Keys under resources

    2. Select Add API Key, and then Download private key

    3. Copy and save the values in the configuration file preview

    Create a group policy

    1. From the main navigation menu, choose Identity & Security. Under Identity, click Policies

    2. Click Create Policy. Provide a name and description for the policy

    3. Under Policy Builder, click Show manual editor to open the editor.

    4. Provide the required policy and click Create.

    The policy must contain the following statements (the Group-OCID can be found on group's page):

    For more information see Create Policy in the Oracle Cloud documentation.

    Configuration

    Once you have created the Oracle Cloud user credentials, you can enable the Veza->Oracle integration under Configuration > Cloud Providers:

    1. Navigate to Configuration > Cloud Providers > Add New

    2. Choose Oracle Cloud Infrastructure from the dropdown menu.

    3. Fill out the required fields, using the Oracle Cloud configuration file for reference:

    Name

    Integration display name

    User OCID

    User id (ocid1.user.oc1..<unique_ID>)

    Fingerprint

    fingerprint value from the configuration file

    Tenant OCID

    tenancy id (ocid1.tenancy.oc1..<unique_ID>)

    Region

    Tenancy home region (us-ashburn-1). Veza will extract non-IAM information from all regions.

    Private Key File

    API Key

    Private Key Passphrase

    Key passphrase

    Click Save to begin the initial discovery and extraction.

    Notes

    Supported Entities

    Compartments

    A compartment is a collection of resources used to isolate and organize your resources. A common configuration would be to have a compartment for each major part of an organization. Compartments are like folders in that they can nest. The root compartment of an organization is the tenancy, and all other compartments exist within the tenancy.

    Identity Domains

    Each Identity Domain is a self-contained IAM service. They’re used to demarcate various use cases, and provide varying levels of security and access to different user groups. For instance, a company may have one Identity Domain to manage employee access, a second to manage supply chain and ordering systems for business partners, and a third for customers using consumer-facing applications. Identity Domains are resources, and exist within compartments.

    Users

    A user exists within an Identity Domain. A single human may be represented in multiple Identity Domains via multiple users. In Oracle Cloud, machine access is also done via user. Permissions can't be granted to individual users. Instead, they must be granted to groups, which may contain users.

    Groups

    A group contains one or more users as members. Groups can't be nested.

    Storage Buckets

    Containers for storing data objects. Each has a region and compartment. Compartment-level policies govern user and machine access to buckets and their contents.

    Policies

    Policies are made up of Policy Statements. Each policy exists in a compartment and may only grant permission to resources in that compartment or a sub-compartment. Oracle Cloud policy statements are sentences in the format:

    "Allow group group_name to verb resource-type in compartment compartment_name where condition"

    Cross Service Connections

    • IAM Domain - Okta

    Effective Permissions

    Effective Permissions calculations can account for some scenarios unique to Oracle Cloud:

    • Aggregate permissions from multiple policies - multiple policies may provide permissions for a single group, aggregated into a single Effective Permission between each user/resource.

    • Resources within child compartments - If a policy statement allows inspect permission on users in the tenancy, that permission is allowed on all users in all compartments.

    • Conditions - A policy statement may contain one or more conditions to restrict access.

    Notes

    Cisco Duo

    Configuring the Veza integration for Cisco Duo

    Overview

    The Veza integration for Cisco Duo provides visibility into your organization's multi-factor authentication (MFA) infrastructure, user access methods, and administrative privileges within Duo Security.

    The integration enables:

    • Visibility into user authentication methods and enrollment status

    • Tracking of hardware tokens, phone authentication, and WebAuthn credentials

    • Monitoring of administrative roles and permissions

    • Group membership and policy enforcement insights

    • Device trust and authentication status tracking

    See for more details.

    Prerequisites

    • A Cisco Duo account with one of the following plans:

      • Duo Premier

      • Duo Advantage

      • Duo Essentials

    Configuring Cisco Duo

    Creating API Credentials

    1. Log in to the and navigate to Applications

    2. Click Protect an Application

    3. Locate Admin API in the applications list. Click Protect to configure the application

    The secret key should be treated as a sensitive credential. Store it securely and never share it via email or insecure channels.

    Configuring API Permissions

    1. In the Admin API application settings, grant the following minimum required permissions:

      • Grant administrators: Read

      • Grant resource: Read

    Configuring Cisco Duo on the Veza Platform

    1. In Veza, go to the Integrations page

    2. Click Add Integration and search for Cisco Duo

    3. Click on the Cisco Duo icon and click Next

    4. Configure the integration with the following information:

    Notes and Supported Entities

    The integration supports the following entity types:

    • Users (including administrators)

    • Groups

    • Access Credentials

      • Phone authentication devices

    Users

    Attribute
    Description

    Groups

    Attribute
    Description

    Access Credentials

    Phone Authentication

    Attribute
    Description

    Hardware Tokens

    Attribute
    Description

    WebAuthn Credentials

    Attribute
    Description

    Administrative Roles

    The integration maps Duo administrative roles to permissions. Each role has specific capabilities mapped Veza canonical permissions:

    Role
    Key Capabilities
    Mapped Permissions

    Device42

    Configuring the Veza integration for Device42.

    Overview

    The Device42 integration enables Veza to discover and analyze users, groups, and permissions within your Device42 environment, for insights into your IT asset management and data center infrastructure.

    The integration supports:

    • Discovery of Device42 admin users and their properties

    • Mapping of Device42 admin groups and their members

    • Analysis of permissions assigned to admin users and groups

    • Visualization of Device42 data within the Veza platform for comprehensive access governance

    Prerequisites

    • A Device42 instance with administrator access

    • API access enabled in your Device42 environment

    • Veza platform access with permissions to add new integrations

    Configuring Device42

    Generate API Credentials

    1. Log in to your Device42 account as a superuser.

    2. Open the Resources tab.

    3. In the Secrets section, click on API Clients.

    4. Click Add to create a new API client.

    Note: Ensure that the user generating the API credentials is a Superuser and has their is_staff property set to False.

    Configuring Device42 on the Veza Platform

    1. In Veza, use the main menu to open the Integrations page.

    2. Click Add Integration and search for Device42.

    3. Click on Device42 and then click Next.

    4. Enter the required information:

    Verifying the Integration

    1. To check integration status:

      1. On the Veza Integrations list, click the integration name to view details.

      2. On the details page, review the list of data sources.

      3. Use the Status column to check if the data source is unavailable or has an error.

    Supported Entities and Attributes

    Users (Admin Users)

    Attribute
    Description

    Groups (Admin Groups)

    Attribute
    Description

    Built-in Queries

    The Device42 integration includes pre-configured queries to help you quickly gain insights into your Device42 environment. These queries can be used out-of-the-box or serve as a starting point for more complex analyses:

    • Monitor the overall number of admin users and groups

    • Track user activity and identify potentially dormant accounts

    • Ensure deprovisioning of inactive users

    • Identify superusers for privileged access management

    User-related Queries

    • Device42 Admin Users

      • Description: All Device42 local admin user accounts

      • Type: Inventory count

    • Device42 Active Admin Users

    Group-related Queries

    • Device42 Admin Groups

      • Description: All Device42 local admin groups

      • Type: Inventory count

    • Device42 Admin Groups with Users

    Identity Correlation Queries

    • Device42 Admin Users Related to Okta Users

      • Description: Device42 local admin users with an Okta identity

      • Type: Inventory count

    • Device42 Admin Users Not Related to Okta Users

    Additional Resources

    Confluence Server

    Early Access: This integration is provided as an Open Authorization API (OAA) connector package. Contact our support team for more information.

    Veza Confluence Server Connector

    Veza Connector for Confluence Server that discovers Users, groups access to Confluence and Spaces. The Confluence Server connector works by connecting directly the database instance to query information. Direct database access is required to discover Space permissions which are not available via the Confluence Server API.

    Proprties

    Entity
    Property
    Description

    Note: Connector currently only discovers Global spaces

    Confluence Setup

    The Connector requires access to the database used by Confluence. Exact setup instructions will depend on database technology and existing configuration.

    It is not recommend to use the same database user as Confluence configuration. Create a user for Veza discovery with limited permission below.

    1. Create a user authenticated by a password and grant access to perform SELECT operation on the following tables in the Confluence database:

      1. cwd_user

      2. user_mapping

    Veza Setup

    1. Generate an API token for your Veza user. For detailed instructions consult the Veza User Guide.

    Running the Connector

    There are multiple options to run the connector. Instructions are included for running from the command line and building a Docker container.

    Command Line

    1. Install the requirements with Python 3.8+:

      Install the specific database platform requirements:

      • MySQL

      • PostgreSQL

    Application Parameters / Environmental Variables

    Parameter
    Environmental Variable
    Required
    Notes

    Box

    Configuring the Veza integration for Box

    The Veza integration for Box gathers Box Users, Groups, Roles, and Folders from the storage platform. Search, Insights, and Workflows for Box provide the ability to:

    • See all Box users with administrative privileges on a Box tenant

    • Review folders that have external guest collaborators.

    • Review folders with Internal guest collaborators.

    • Map Okta and Azure AD users and local Box users to ensure there are no local-only users.

    • Create reports and rules for Box administrators and external collaborators

    This guide includes steps to create a Box App to enable the connection, and configure the integration for Veza. See for more details.

    Configuration - Box

    The Veza Box integration is compatible with Box, Business, Business Plus, Enterprise, and Enterprise Plus account types. Individual and Team Accounts are not supported.

    The integration uses a to collect metadata. To create this read-only service principal:

    Box enforces a monthly limit of 50,000 API calls per Box user and App. You can configure more than one Veza Box App if the limit is reached.

    1. Log in to your Box account and open the Developer Console.

    2. Click the "Create New App" button and select "Custom App".

    3. Select Server Authentication (with JWT) as the Authentication Method

    4. Click "Create App".

    Configure the custom app in Box:

    1. For "App Access Level" select App + Enterprise Access.

    2. Under the Application Scopes section ensure the following boxes are checked:

    Generate a key pair and authorize the custom app:

    1. Under Add and Manage Public Keys click Generate a Public/Private Keypair. A JSON file will be downloaded automatically, containing the private portion of the key and passphrase.

      • Optionally, you can upload an existing key pair, download the configuration file manually, and complete the key portion.

    2. Under the Authorization tab click Review and Submit to make your new app available.

    The JSON file downloaded in step 1 contains the necessary configuration information for setting up the integration in Veza:

    Configuration - Veza

    1. In Veza, go to Configuration > Integrations

    2. Click Add New and choose Box as the integration type

    3. Complete the required fields:

    Field
    Description

    Supported Entities

    • Box Enterprise

    • Box User

    • Box Group

    • Box Role

    Entity Attributes and notes:

    Box User

    A Box user represents an account on the platform used to access personal files and collaborate with others.

    User Properties
    Details

    Only users from the enterprise are represented as graph entities. External collaborators are shown in Folder properties.

    Box Role

    For Box, roles are a set of permissions that can be assigned to a user or group of users, defining the actions an identity can perform, and what data they can access within the platform.

    Role Properties
    Details

    Box User(s) and Group(s) can have a Role defined on Folder(s). Roles can be owner, co-owner, editor, viewer uploader, previewer uploader, viewer, previewer, or uploader.

    Box Folder

    Box folders are containers used to organize and store files and documents. Folders can be organized hierarchically to create a logical structure for file storage.

    A Box User's folders can be private or shared with specific collaborators or groups. Users can set permissions for each folder, determining who has access to the folder and what actions they can perform on the files within the folder.

    Box Folder entity attributes indicate external collaborators: HasExternalCollaborators, and a list of ExternalCollaborators containing user IDs, and possibly name and e-mail (if "Include External Collaborator Details" is enabled).

    In Graph search, you will be able to see the folder contents of all users' root (home) folders. Box Home Folder entities represent the root-level folder for each Box User.

    Folder Properties
    Details

    Crowdstrike Falcon

    Configuring the Veza integration for Crowdstrike

    Overview

    The Veza integration for Crowdstrike Falcon enables the discovery of Users, Roles, and permissions from the Crowdstrike Falcon platform. Veza uses Crowdstrike APIs to populate the Access Graph with entities and metadata.

    Optional: For customers with access to Crowdstrike Identity Protection, the integration supports bidirectional risk score synchronization between Veza and Falcon. See Risk Score Integration for configuration details.

    This document explains how to enable and configure a Crowdstrike Falcon integration.

    Configuring Crowdstrike

    Before adding the integration to Veza, create an API client on the Crowdstrike platform for the connection.

    1. Browse to your Crowdstrike Falcon instance (ex: https://falcon.us-2.crowdstrike.com/) and log in

    2. Click the hamburger icon in the upper-left corner to open the navigation bar

    3. Click Support and resources in the left navigation bar, then click API clients and keys in the Resources and tools section of the navigation submenu

    Configuring Crowdstrike on the Veza Platform

    To enable Veza to gather data from the Crowdstrike Falcon platform:

    1. In Veza, open the Integrations page.

    2. Click Add New and pick Crowdstrike as the type of integration to add

    3. Enter the required information and Save the configuration

    Field
    Notes

    Supported Entities

    The Veza integration for Crowdstrike Falcon discovers the following entities and attributes from the Crowdstrike API:

    Many entities include additional attributes populated by Veza's enrichment system (such as owners, identity classifications, and risk scores). See for details on configuring these attributes.

    Identity Entities

    Crowdstrike User

    User account on the Crowdstrike Falcon platform. Users can be assigned to roles that grant permissions to perform actions within Falcon.

    Attributes:

    • id

    • name (constructed from [first_name] and [last_name])

    • first_name

    Identity Mapping:

    • Users are mapped to identity providers via their email address

    Crowdstrike Role

    Role defining a set of permissions within the Crowdstrike Falcon platform. Roles are assigned to users to grant them specific capabilities.

    Attributes:

    • id

    • name (derived from [display_name])

    • description

    Notes:

    • Each role is associated with a permission entity that shares the same ID as the role

    Assignment Entities

    Crowdstrike Role Assignment

    Association linking a user to a role within the Crowdstrike Falcon platform. Role assignments determine the permissions available to each user.

    Attributes:

    • user_uuid

    • role_id

    • role_name

    Notes:

    • Each role automatically includes a permission with the same ID, representing the capabilities granted by that role assignment

    Risk Score Integration

    Risk Score Import

    When Risk Score import is enabled, Veza imports identity risk scores from Crowdstrike Falcon Identity Protection and applies them as custom tags on identities in Veza.

    Supported Identity Sources:

    • Okta users

    • Azure Active Directory / Entra users

    Custom Tags Applied:

    Tag Name
    Description

    When Risk Score import is enabled:

    • Veza queries for Okta and Azure AD identities.

    • Risk scores are retrieved from CrowdStrike Identity Protection's GraphQL API.

    • Identities are matched by email address.

    • The risk score and severity are applied as custom tags to matched identities in Veza.

    Risk Score Export

    When Risk Score export is enabled, Veza performs the following steps:

    • Queries for all identities with risk scores of 50 or higher.

    • Groups the identities by email address.

    • Marks the corresponding users in Crowdstrike Falcon for administrative investigation.

    This enables security teams to take action in Falcon based on risk signals detected by Veza's access analytics.

    Databricks (Unity Catalog)

    Configuring the Veza integration for Databricks with Unity Catalog enabled.

    Overview

    The Veza Databricks integration with Unity Catalog discovers access and permissions across your Databricks deployment. Veza integrates directly with Unity Catalog-enabled and workspace-level Databricks configurations to:

    • Discover access relationships between users, groups, service principals, and resources

    • Visualize access across catalogs, clusters, notebooks, schemas, and more with Veza's Access Graph

    • Identify excessive group assignments, admin overreach, and service principal sprawl

    For organizations using Unity Catalog to govern access to Databricks, Databricks discovery is enabled in your cloud provider integration configuration for , , or . Veza connects to your Databricks account to discover authorization metadata for all workspaces and resources the service principal can access, including:

    • Account-level users, service principals, and groups

    • Unity Catalog metastores and catalogs shared with workspaces

    • All workspace resources (clusters, notebooks, directories, jobs, pipelines)

    • OAuth applications and federation policies

    Use Unity Catalog integration for Databricks deployments with centralized governance across multiple workspaces. For standalone Databricks workspaces without Unity Catalog, see .

    For details on supported entities and attributes, see .

    Requirements

    To enable the integration, you will need:

    • A Databricks account on the Premium plan, with SSO (Unified Login) enabled.

    • Microsoft Azure, Google Cloud: The Veza service principal for the cloud provider integration must be assigned to access the account via SSO as an account admin.

    • AWS: Veza uses OAuth credentials for a Databricks service account with the Account admin role

    • The Veza service principal must be assigned as an admin on all workspaces to fully discover all sub-resources.

    Permission Requirements for Full Discovery:

    • Personal Access Tokens: Requires workspace admin role. May not be available on all Databricks pricing tiers. If unavailable, extraction continues without PAT discovery.

    • Jobs, Pipelines, and Permissions: Workspace admin enables complete discovery of all jobs, pipelines, and their permissions across the workspace.

    Configure a Veza service principal

    The integration requires a Databricks service principal with account admin privileges (required to list all workspace entities and permissions):

    • Databricks on AWS: OAuth2 token for a Databricks service account (M2M access).

    • Databricks on Google Cloud Platform: Google Service Account configured for the integration.

    • Databricks on Microsoft Azure: Azure App Integration configured for discovery.

    OAuth M2M for AWS

    To create a service principal for Databricks on AWS, log in to the Databricks account console as an administrator:

    1. Go to User management.

    2. Under Service principals, click Add service principal.

    3. Enter a name and click Add.

    4. On the Roles tab, enable Account admin to enable account-level API calls.

    Assign your service principal to identity federated workspaces.

    1. Open Workspaces and click your workspace name.

    2. Go to Permissions > Add permissions.

    3. Search for the user, Assign the Admin permission level and save the changes. Get an OAuth client secret:

    To create an OAuth secret for a service principal using the account console:

    1. In the Databricks account console, open User management.

    2. On the Service principals tab, find the service principal.

    3. Under OAuth secrets, click Generate secret.

    4. Copy the Secret and Client ID, and then click Done.

    For more details see in the Databricks documentation.

    Create a Databricks cluster

    Veza will run SQL queries on a Databricks cluster to collect metadata. Veza recommends a dedicated cluster for this purpose.

    • You will identify the cluster by when configuring the integration.

    • To extract Databricks metastore schemas, the cluster must have Unity Catalog enabled. A tag indicates when the cluster is attached to a Unity Catalog metastore and uses a Unity-Catalog-capable access mode (shared or single user).

    To create a cluster from the Databricks UI, pick Create > Cluster:

    • The cluster can be a small single-node cluster

    • You should enable termination after an inactivity period (~10 minutes). The cluster will automatically start for extractions, and stop automatically when inactive.

    • Enable spark.databricks.acl.sqlOnly true under Advanced Options > Spark > Spark config

    • Ensure the Veza service principal has

    For more details on creating Databricks clusters see .

    Assign the Veza user to Databricks workspaces

    The Veza service principal must be a workspace-level administrator to discover Workspaces subresources such as notebooks and clusters. Without admin permissions, the integration will not be able to gather metadata for the workspace.

    To add the Veza service principal to a workspace with the admin role:

    Using the Databricks account admin console (for workspaces with identity federation):

    1. Open Workspaces and click your workspace name.

    2. Go to Permissions > Add permissions.

    3. Search for the user, Assign the Admin permission level and save the changes.

    Using the Workspace admin console:

    1. Click your username in the top bar of the Databricks workspace and select Admin Settings.

    2. Open Identity and access.

    3. Go to Users > Manage > Add User.

    4. Click Add new to create a new user and enter the email of the Veza service account.

    See for more detail.

    Enable Databricks extraction

    Databricks extraction is disabled by default. To enable the service, edit the AWS, Google Cloud Platform, or Microsoft Azure integration:

    1. Go to the Veza Integrations page.

    2. Find the integration on the list and click Edit.

    3. In the third section Limit Services, tick Limit {Integration} Services

    4. Click Select All to enable all services, or tick the boxes for services your company uses. Tick the box next to

    Notes and Supported Entities

    Veza discovers Unity Catalog entities at two levels:

    Account-level entities:

    • Account

    • Account Users, Service Principals, and Groups (with role assignments)

    • Catalogs (Unity Catalog-managed)

    • Metastores

    Workspace-level entities (all entities from workspace mode):

    • Users, Service Principals, Groups, and Personal Access Tokens

    • Schemas, Tables, and Views

    • Directories and Notebooks

    • Clusters, Jobs, and Pipelines

    For more information about each entity type see .

    OpenAI

    Configuring the Veza integration for OpenAI

    Overview

    The Veza OpenAI integration provides visibility into your organization's access to OpenAI resources, helping secure AI innovations and prevent identity-based threats. This integration discovers all users with access to your OpenAI organization, maps their assigned roles, and visualizes permissions relationships to help maintain proper access control.

    The integration enables:

    • Discovery of all users with access to your OpenAI organization

    • Mapping of assigned roles (Owner/Reader) to specific permissions

    • Visibility into access rights including API usage, organization management, billing modifications, and member management

    • Access review and alert rules based on user access to OpenAI

    See for more details.

    Configuring OpenAI

    To integrate OpenAI with Veza, you'll need to obtain your Organization ID and generate an API key.

    Get your Organization ID

    1. Sign in to the OpenAI

    2. Click Manage Account from the user dropdown in the upper right corner

    3. Navigate to the Settings section

    4. Note your Organization ID (will begin with "org-")

    Generate an API Key

    1. While in the OpenAI Dashboard, navigate to API Keys

    2. Click Create new secret key

    3. Give your key a name that indicates it's for Veza integration (e.g., "Veza-Integration")

    4. Copy the API key immediately, as you won't be able to see it again

    See the for more details.

    Configuring OpenAI on the Veza Platform

    This integration is provided as an Open Authorization API (OAA) connector package. There are multiple options for running the connector, including command line and Docker.

    Prerequisites

    1. Contact your Veza support representative to obtain the preview OAA connector.

    2. Generate an for your Veza user.

    Command Line Setup

    1. Install the requirements with Python 3.8+:

    2. Export the required environmental variables:

    3. Run the connector:

    Docker Setup

    A Dockerfile is included in the repository. Running the container will perform the OpenAI discovery and OAA push then exit. Schedule the container to run on a regular interval.

    1. Build the container:

    2. Run the container with all required parameters:

    Configuration Options

    Parameter
    Environmental Variable
    Required
    Notes

    Notes and Supported Entities

    The OpenAI integration discovers users and their respective roles within your OpenAI organization.

    Organization Properties

    Entity
    Property
    Description

    User Properties

    Entity
    Property
    Description

    Supported Roles and Permissions

    The integration maps OpenAI roles to specific permissions:

    Role
    Permissions

    Custom Permissions

    Permission
    Description

    Coupa Contingent Workforce

    Configuring the Veza integration for Coupa Contingent Workforce

    Overview

    The Veza integration for Coupa Contingent Workforce (CCW) connects to a single CCW environment to discover and map contingent worker identities and relationships. The integration provides visibility into your organization's contingent workforce alongside regular employees.

    The integration supports:

    • Discovery of contingent workers with detailed attributes

    Fastly

    The Veza integration for Fastly enables the discovery of users, services, roles, and permissions within the Fastly content delivery network (CDN). Common use cases include:

    • Access Reviews: Certify Fastly user-role assignments, with support for mapping IdP identities to Fastly local accounts.

    • Access Intelligence: Create dashboards for visibility into user and service statuses, with rules to trigger alerts or actions when changes occur.

    • Access Visibility: Use Query Builder and Graph search to report on and visualize access to roles and services in Fastly.

    MuleSoft

    Configuring the Veza integration for MuleSoft Anypoint Platform

    Overview

    The MuleSoft integration enables organizations to monitor and manage access controls across their MuleSoft Anypoint Platform cloud environment. This integration provides visibility into user access patterns, role assignments, and team structures within MuleSoft.

    The integration enables:

    • Discovery of MuleSoft organization user access and permissions, incluuding role assignments and team memberships

    pip3 install -r requirements.txt
    export VEZA_API_KEY="ZXldTcj...JCWGU3Qlo1OHR3RTBfc00yN3lfSFk="
    export NEW_RELIC_KEY="6ed173a951f433d7c71214XXXXXXX"
    ./veza_newrelic.py --veza-url https://<your-org>.vezacloud.com
    Allow group id <Group-OCID> to read users in tenancy
    Allow group id <Group-OCID> to inspect compartments in tenancy
    Allow group id <Group-OCID> to read domains in tenancy
    Allow group id <Group-OCID> to read groups in tenancy
    Allow group id <Group-OCID> to inspect policies in tenancy
    Allow group id <Group-OCID> to read buckets in tenancy
    Allow group id <Group-OCID> to read objectstorage-namespaces in tenancy

    Project Allow List

    List of Project keys to include for discovery. When enabled, projects not on the list are skipped.

    Project Deny List

    List of Project keys to exclude from discovery.

    type

    Account type as reported by Bitbucket

    Roles

    Local Role

    User's email address.

    User

    last_login_at

    User's last active timestamp

    Organization

    id

    Organization's ID provided by NewRelic

    Organization

    name

    Name of the Organization.

    Organization

    customer_id

    Customer Id of the Organization.

    Role

    id

    Id of the Role.

    Role

    display_name

    Display Name of the Role.

    Role

    name

    Name of the Role.

    Role

    scope

    Scope of the Role. Scope can be account or organization

    Role

    type

    Type of the Role. Example: Role::V2::Standard

    Group

    id

    Id of the Group.

    Group

    name

    Display Name of the Group.

    Enable verbose debug output

    --save-json

    Save OAA Payload as local JSON file before upload

    Mapping Configuration

    Define rules for linking OneLogin users to other IdP identities or local users.

    Custom Properties

    Specify any Custom Fields to extract by entering the API shortname and data type.

    isLocked

    Account lock status

    lastLoginAt

    Timestamp of last login

    mfaActive

    Multi-factor authentication status

    createdAt

    Account creation timestamp

    updatedAt

    Last modification timestamp

    awsIamRoleArns

    List of AWS IAM roles the user can assume

    samlProviderArn

    SAML provider ARN for AWS role assumption

    Select Insight Point

    Use the default data plane, unless you have deployed an Insight Point

    Limit Services

    Any disabled services are skipped during extraction

    Service principal secrets and OIDC configurations

    Single Sign-On (Unified Login) enabled for the workspaces to discover. Unified Login is always enabled on Google Cloud and Microsoft Azure, but is optional for AWS deployments.

  • A dedicated cluster for running extraction queries (see below).

  • Administrator access to Databricks to create a Veza service principal and cluster.

  • ACLs: Premium tier or higher required for full access control list discovery.

    CAN_MANAGE
    permission on the cluster (
    More > Permissions
    ).
  • Click Add.

  • On the list of users, click the user.

  • Click the Entitlements tab.

  • Click the toggle next to Admin access.

  • Databricks
    .
  • Go to the Details section.

  • Enter the additional fields:

    • Databricks account ID: Databricks account id

    • Databricks collector cluster tag: Cluster tag for running queries. If empty, Veza will use the first available cluster.

    • AWS: Databricks OAuth M2M client ID: Client ID for OAuth M2M

    • AWS: Databricks OAuth M2M client secret: Veza service principal client secret

  • Click Save Integration to enable the connection.

  • Service Principal Secrets
  • Federation Policies (account-level and service principal-specific)

  • OAuth App Integrations (published and custom)

  • AWS
    GCP
    Microsoft Azure
    Databricks (Workspace Mode)
    Databricks Entities and Permissions Reference
    Google Cloud Platform
    Azure
    OAuth M2M
    tag
    Compute configuration reference
    Manage Users
    Databricks Entities and Permissions Reference
    Compute cluster with Unity Catalog Enabled
    HubSpot required scopes
    Retrieving an app access token

    LocalUser Property

    CustomResource Property

    state

    Current operational state of the service

    CustomResource Property

    tier

    Service tier determining scaling capabilities

    CustomResource Property

    is_primary

    Whether this is the primary service

    CustomResource Property

    created_at

    Service creation timestamp (ISO-8601 format)

    CustomResource Property

    API Key Creation Form
    API Key Details
    Add a ClickHouse API key.

    Administrative Actions/Manage Users

  • Under the Advanced Features section ensure the following boxes are checked:

  • Save the changes.

  • From the Box Admin console, navigate to Integrations > Platform Apps Manager to see the pending authorization.

  • Click on the integration, then click Authorize to enable the app for your Box environment. Click Authorize again to confirm the changes.

  • Disable extraction of home/all folders

    Disable user folder extraction. Will only extract Enterprise Users, Groups and Roles

    Box Effective Permission

  • Box Folder

  • Box Home Folder

  • Name

    Display Name

    Enterprise ID

    Box Enterprise ID

    App Configurations

    One or more Box Apps used for discovery (see note on API limits)

    Include Non-shared Items

    Whether to parse objects that can only be accessed by their owners

    Include External Collaborator Details

    Whether to parse full details for external collaborators

    Folder extraction maximum depth

    Maximum depth to extract for sub-folders. Setting to 0 will limit to home folder only

    status

    Box status string, active, inactive, cannot_delete_edit, cannot_delete_edit_upload

    is_exempt_from_login_verification

    Indicates whether the user must use two-factor authentication (boolean)

    role

    The user's Box role

    Permissions [0-99]

    List of System role permissions

    has_external_collaborators

    True if there are external collaborators

    external_collaborators

    List of external collaborators

    Supported Entities
    Box Custom App

    N/A

    OPENAI_API_KEY

    true

    API key for OpenAI

    --save_json

    N/A

    false

    Save a copy of the metadata JSON uploaded to the Veza instance

    --debug

    N/A

    false

    Enable verbose debug logging

    N/A

    VEZA_API_KEY

    true

    API token to connect to your Veza instance

    --veza_url

    VEZA_URL

    true

    URL of your Veza instance

    --openai-org

    OPENAI_ORG_ID

    true

    Org

    is_personal

    Boolean indicating if the organization is a personal space

    Org

    organization_id

    The unique identifier for the OpenAI organization

    User

    email

    User's email address, used for identity mapping

    Owner

    Standard API Requests, Read Organization, Modify Billing, Manage Members

    Reader

    Standard API Requests, Read Organization

    Standard API Requests

    Ability to make API calls to OpenAI services (DataRead)

    Read Organization

    Ability to view organization settings and details (MetadataRead)

    Modify Billing

    Ability to modify billing settings (MetadataWrite)

    Manage Members

    Ability to add/remove members to the organization (MetadataWrite)

    notes and supported entities
    Dashboard
    official OpenAI API documentation
    API token

    Organization ID for your OpenAI organization

    User

    last_login_at

    Date for user last login if present

    Group

    is_active

    True if Group is active

    Space

    space_type

    Confluence Space type (global, personal)

    Space

    status

    Space status, e.g. current, archived

    Space

    anonymous_access

    True if any space permission includes anonymous access

    Space

    anonymous_permissions

    List of any anonymous Space permissions

    cwd_group

  • cwd_membership

  • cwd_user_attribute

  • SPACES

  • SPACEPERMISSIONS

  • For example with database name confluence_db and user veza:

  • User must be able to connect to the database over the network.

  • Export the required environmental variables. Variables not set can be passed via arguments at run time. All parameters can be passed using environment variables if desired. See table below for variable names and descriptions.

  • Run the connector:

  • --db-host

    CONFLUENCE_DB_HOST

    true

    Hostname for database server

    --db-name

    CONFLUENCE_DB_NAME

    true

    Database name for Confluence database

    --db-user

    CONFLUENCE_DB_USER

    true

    Database user for discovery

    N/A

    CONFLUENCE_DB_PASSWORD

    true

    Database user password

    N/A

    VEZA_API_KEY

    true

    The API token which which to connect to the Veza instance

    --veza_url

    VEZA_URL

    true

    The url of the Veza instance to which the metadata will be uploaded

    --save_json

    N/A

    false

    Save a copy of the metadata JSON uploaded to the Veza instance to this directory

    --debug

    N/A

    false

    Enable verbose debug logging

    User

    user_name

    Confluence user name

    User

    email

    User's email

    User

    is_active

    True if user is active

    User

    created_at

    --mysql

    N/A

    false

    Use MySQL driver to for database connection

    --pgsql

    N/A

    false

    Use PostgreSQL driver to for database connection

    N/A

    CONFLUENCE_DB_TYPE

    false

    Date the user account was created

    Pass the driver name if not using CLI parameters. Values: mysql, pgsql

    {
      "boxAppSettings": {
        "clientID": "<clientID>",
        "clientSecret": "<clientSecret>",
        "appAuth": {
          "publicKeyID": "<publicKeyID>",
          "privateKey": "<privateKey>",
          "passphrase": "<passphrase>"
        }
      },
      "enterpriseID": "123456"
    }
    pip3 install -r requirements.txt
    export VEZA_API_KEY="your_veza_api_key"
    export VEZA_URL="https://your-instance.vezacloud.com"
    export OPENAI_ORG_ID="org-your_organization_id"
    export OPENAI_API_KEY="your_openai_api_key"
    ./veza_openai.py
    docker build . -t veza_openai
    docker run --rm \
     -e OPENAI_ORG_ID="org-your_organization_id" \
     -e OPENAI_API_KEY="your_openai_api_key" \
     -e VEZA_URL="https://your-instance.vezacloud.com" \
     -e VEZA_API_KEY="your_veza_api_key" \
     veza_openai
    export VEZA_API_KEY="Zdkemfds..."
    export CONFLUENCE_DB_PASSWORD="abc123"
    ./veza_confluence_server.py --mysql --db-host db1.example.com\
      --db-name confluence_db\
      --db-user veza\
      --veza-url https://example.vezatrial.ai
    pip3 install -r requirements.txt
    pip3 install -r requirements-mysql.txt
    pip3 install -r requirements-postgresql.txt
    CREATE USER 'veza' IDENTIFIED BY 'replace_with_secure_password';
    GRANT SELECT ON confluence_db.`cwd_user` to 'veza';
    GRANT SELECT ON confluence_db.`user_mapping` to 'veza';
    GRANT SELECT ON confluence_db.`cwd_group` to 'veza';
    GRANT SELECT ON confluence_db.`cwd_membership` to 'veza';
    GRANT SELECT ON confluence_db.`cwd_user_attribute` to 'veza';
    GRANT SELECT ON confluence_db.`SPACES` to 'veza';
    GRANT SELECT ON confluence_db.`SPACEPERMISSIONS` to 'veza';

    Administrator access with the Owner role

  • Valid Admin API credentials

  • Save the credentials:
    • Integration key

    • Secret key

    • API hostname

      Example of API credentials screen.
    Field
    Notes

    Host

    Your Duo API hostname (e.g., api-XXXX.duosecurity.com)

    Integration Key

    The integration key from your Admin API application

    Secret Key

    The secret key from your Admin API application

  • Click Create Integration to save the configuration

  • Hardware tokens

  • WebAuthn credentials

  • Administrative Roles and associated permissions

  • last_directory_sync

    Timestamp of last directory sync

    lockout_reason

    Reason for account lockout if applicable

    status

    User account status (active/bypass/disabled/locked out/pending deletion)

    is_admin

    Indicates administrator status

    password_change_required

    For admin users, indicates required password change

    created_at

    Account creation timestamp

    last_login_at

    Most recent login timestamp (admin users only)

    Security Analyst

    Can manage security settings, process events, view logs. Limited user management.

    DataRead, MetadataRead

    Help Desk

    Can manage user devices and authentication. Cannot create/delete users or run bulk operations.

    DataRead, DataWrite (limited scope)

    Billing

    Access to billing information and sub-account management only.

    DataRead (billing only)

    Read-only

    Can view basic information about users, groups, devices, and reports. No modification rights.

    DataRead

    first_name

    User's first name

    last_name

    User's last name

    username

    User's login username

    email

    User's email address

    enable_auto_prompt

    Controls automatic authentication method prompting

    is_enrolled

    Indicates if user has configured authentication methods

    status

    Group authentication status (Active/Bypass/Disabled)

    factor_type

    Set to "phone"

    platform

    Phone platform/OS

    name

    Phone identifier

    factor_type

    Set to "hardware_token"

    serial

    Token serial number

    name

    Token identifier

    factor_type

    Set to "webauthn_credential"

    label

    Credential label

    name

    Credential name

    created_at

    Credential creation timestamp

    Owner

    Full access to all actions, objects, and settings. Can manage other administrators and API applications.

    DataRead, DataWrite, MetadataRead, MetadataWrite

    Administrator

    Can manage users, devices, settings, policies, and applications (except Admin API). Cannot manage other administrators.

    DataRead, DataWrite, MetadataRead, MetadataWrite (limited scope)

    Application Manager

    Can manage protected applications and SSO sources. Limited user/device information access.

    DataRead, MetadataRead (applications only)

    User Manager

    Can manage users, phones, tokens, and bypass codes. Can run directory synchronization.

    notes and supported entities
    Duo Admin Panel
    Protect an Application in Duo Admin Panel.
    Permission settings for required Read Grant Administrators and Read Grant Resource permissions.

    DataRead, DataWrite (users only)

    Add an API client.
  • Assign a resource owner for the token.

  • Set the Token Time to Live (TTL) for the token.

  • Click Yes, I saved my keys to confirm that you have saved your Client Key and Client Secret Key.

  • Click the Download Credentials button to retrieve your credentials.

  • Field
    Description
    Required

    Device42 URL

    URL for Device42 API endpoint including protocol

    Yes

    Device42 Client Key

    Client key generated in Device42

    Yes

    Device42 Client Secret Key

    Client Secret key generated in Device42

    Yes

    Device42 CA Certificate

    CA certificate for authentication (if required by the Device42 server)

    No

  • Click Create Integration to save the configuration.

  • Click on an individual status to show more details.

  • To view discovered entities:

    1. On the Veza Integrations list, click View Dashboard to show an overview of the entities Veza has discovered.

    2. Click an entity type (e.g., Users or Groups) to view the results in Query Builder.

    3. Review the entities to validate that results and attributes are as expected.

  • last_login_at

    Timestamp of user's last login

    is_superuser

    Indicates if the user has superuser privileges

    is_staff

    Indicates if the user has staff privileges

    auth_type

    Authentication type (Local or AD)

    Correlate Device42 identities with other identity providers for consistent access management

    Description: Active accounts in Device42

  • Device42 Deactivated Admin Users

    • Description: Accounts in Device42 that have been deactivated

  • Device42 Admin Users created in the last 24 hours

    • Description: Device42 admin users created in the last 24 hours

  • Device42 Admin Users not logged in recently

    • Description: Number of Device42 admin users with last login 90 days in the past

    • Type: Inventory count

  • Device42 Superusers

    • Description: Number of admin users who are Superusers in Device42

  • Description: Device42 admin groups that have users assigned

  • Type: Inventory count

  • Description: Device42 local admin users who do not have an Okta identity

  • Type: Inventory count

  • Device42 Admin Users Related to Azure AD Users

    • Description: Device42 local admin users with an Azure AD identity

  • Device42 Admin Users Not Related to Azure AD Users

    • Description: Device42 local admin users who do not have an Azure AD identity

  • id

    Unique identifier of the user

    username

    Username of the user

    name

    Full name of the user (first_name + last_name)

    email

    Email address of the user

    is_active

    Indicates if the user account is active

    created_at

    Timestamp of user creation

    id

    Unique identifier of the group

    name

    Name of the group

    Official Device42 API Documentation
    Click Create API client in the upper-right corner of the screen
  • Enter the following details in the Create API client modal window:

    • Client name: a distinct name for the API client

    • Description: an optional description of the API client's purpose

    • Scope:

      • Locate User management and click the Read checkbox

      • If Risk Score import/export will be enabled, the following permissions are required:\

        Scope
        Permission
  • Click Create at the bottom of the modal

  • From the API client created window, record the Client ID, Secret, and Base URL output values

  • Click Done to close the modal

  • Required only if risk score import/export is enabled

    Veza Tenant URL

    Required only if Risk Score import/export is enabled

    last_name
  • email

  • is_active (derived from [status])

  • created_at

  • last_login_at

  • cid

  • cid
    - Customer ID
  • grant_type

  • The integration automatically handles GraphQL API rate limits during the retrieval process.

  • Risk scores are only imported for identities that exist in both systems.

  • If multiple identities share the same email address, all will receive the same risk score tags.

  • Name

    A unique display name for the Crowdstrike Falcon connection

    Crowdstrike Url

    The Base URL value recorded earlier

    Crowdstrike Client Id

    The Client ID value recorded earlier

    Crowdstrike Client Secret

    The Secret value recorded earlier

    Import Risk Scores

    Check this to import risk scores from Falcon Identity to Veza

    Export Risk Scores

    Check this to mark identities with a Veza Risk Score of 50 or higher in Falcon Identity

    crowdstrike_risk_score

    The numeric risk score (0-100) generated by the Falcon Identity Protection platform, formatted to two decimal places

    crowdstrike_risk_score_severity

    The risk severity level (HIGH/MEDIUM/LOW) associated with the risk score

    Enrichment Configuration

    Veza API Key

    Mapping of organizational structures (Account Segments, Cost Centers, Departments)

  • Visualization of reporting relationships between contingent workers and hiring managers

  • Support for Veza Lifecycle Management by ingesting workforce data

  • Requirements

    Prerequisites

    • Coupa CCW environment

    • User account with Customer Integration Admin privileges

    • Network connectivity from Veza to your Coupa CCW instance

    Permissions

    The integration requires an API consumer application with the following scope:

    • ccw.contingent_workers

    Configuring Coupa Contingent Workforce

    Veza collects information from Coupa CCW by executing REST API calls to interact with the Coupa CCW instance. Before adding the integration to Veza, create an API consumer application on the Coupa CCW platform for the connection.

    1. Log into the Coupa CCW platform as a user with Customer Integration Admin privileges.

    2. Navigate to Integration Toolkit -> API Consumer Apps and click Create.

    3. Provide the following information to create an API app:

      1. Application Name: Enter a name that identifies the API app

      2. Application Description: Describe what the app is used for

      3. Contact First/Last/Email Address: The technical contact responsible for the application

      4. Application Type: Select Machine to Machine (Only OpenId Connect apps that require faceless Machine to Machine integrations with Client Credential grant types are supported)

      5. Application Category: Partner

      6. Active: Check this to enable the application

      7. Credential Type: Shared Secret

      8. Client ID: This field is autogenerated; copy its value for later use

      9. API User: Choose a pre-defined API user

      10. Scopes: ccw.contingent_workers

    4. Click Save and record the Client Secret displayed in the green flash message banner

    Note: The client secret is only displayed once. Be sure to copy it somewhere secure immediately.

    Configuring Coupa Contingent Workforce on the Veza Platform

    To enable Veza to gather contingent workforce metadata:

    1. Log into Veza as an administrator.

    2. Navigate to the Integrations page.

    3. Click Add New and select CoupaCCW as the type of integration to add.

    4. Enter the required information:

      1. Url: The URL of your Coupa CCW instance (e.g., https://yourcompany.coupacloud.com)

      2. Client ID: The API consumer app client ID recorded earlier

      3. Client Secret: The API consumer app client secret recorded earlier

      4. Is Staging: Check this if the Coupa CCW tenant is non-production

    5. Click Save to create the integration.

    Verifying Integration Status

    After configuring the integration:

    1. Navigate to the Integrations page in Veza.

    2. Locate the Coupa CCW integration in the list.

    3. Check the Status column to confirm the integration is connected.

    4. Click on the integration to view detailed extraction status on the Data Sources tab.

    5. After a successful extraction, check the Integration Overview to verify that contingent worker data appears in Veza Graph as expected.

    Enable Lifecycle Management

    Coupa CCW can serve as a source of identity information for Veza Lifecycle Management. As an authoritative system for contingent worker data, Coupa CCW provides identity details that can be synchronized to target applications based on employment status, organizational assignments, and contract details.

    When enabled for Lifecycle Management, Coupa CCW supports:

    • Identity synchronization to downstream systems based on contingent worker attributes

    • Organizational mapping using Account Segments, Cost Centers, and Departments for access decisions

    • Status-based provisioning triggered by employment status changes (active, terminated)

    • Manager relationships for approval workflows and access reviews

    No additional permissions beyond the basic ccw.contingent_workers scope are required for Lifecycle Management functionality.

    To enable Lifecycle Management for your Coupa CCW integration, check the Enable usage for Lifecycle Management box in the Veza integration configuration. For detailed information about supported capabilities and workflow examples, see the Coupa CCW Lifecycle Management guide.

    Configuration Option
    Description

    Enable Usage for Lifecycle Management

    Toggle to enable capabilities

    Technical Notes

    Authentication

    The Veza integration for Coupa CCW uses OAuth2 to authenticate to the Coupa instance.

    Staging/non-production instances employ a separate authentication endpoint from production instances.

    If your Coupa CCW instance is a non-production instance, be sure to select Is Staging when configuring the integration to ensure that the proper authentication endpoint is used.

    Data Synchronization

    Data from Coupa CCW is synchronized on a scheduled basis. The integration performs an initial full extraction when first configured, followed by incremental updates based on your Veza platform's configured sync schedule.

    Supported Entities and Attributes

    The Veza integration for Coupa CCW discovers the following entities and attributes:

    Contingent Employee

    Attribute
    Notes

    Account

    The employee is added to group(s) that represent the assigned account segments

    Cost Center

    The employee is added to a group that represents the cost center

    Department

    The employee is added to a group that represents the department

    Email

    The employee's email address

    EmployeeId

    EmployeeNumber on the Veza platform

    Employment Status

    ACTIVE or TERMINATED

    Account Segment / Cost Center / Department

    Account Segments, Cost Centers, and Departments are represented as groups on the Veza platform to which contingent workers can be assigned. This allows for powerful querying and easy visualization in the Veza Access Graph.

    The Veza integration discovers the following attributes for these groups:

    Attribute
    Notes

    Code

    The numeric code of the entity

    Name

    The name of the entity

    Type

    Account Segment, Cost Center, or Department

    Hiring Manager

    Hiring managers are represented as Full Time employees on the Veza platform to which contingent workers can be associated.

    The Veza integration discovers the following attributes for these employees:

    Attribute
    Notes

    Email

    The employee's email address

    EmployeeNumber

    The HiringManagerUserName value

    Employment Status

    Unavailable

    Employment Type

    FULL_TIME

    First Name

    The employee's first name

    ID

    The HiringManagerUserName value

    This document provides steps to enable the Fastly integration. See Notes and Supported Entities for more information about entities and attributes gathered by Veza.

    Configuring the Fastly Integration

    Generate a Fastly API Token

    To create an API token:

    1. Log in to the Fastly UI.

    2. Navigate to Account > Personal Profile > API Tokens.

      Managing Fastly API Tokens
    3. Click Create Token.

    4. Enter your password to re-authenticate.

    5. Fill out the "Create a Token" field. The token scope must be either Read-only access or Global API access.

    6. Click Create Token to save the token.

    For detailed instructions, see Using API Tokens.

    Configuring Fastly on the Veza Platform

    To enable the integration:

    1. In Veza, go to the Integrations page.

    2. Click Add Integration, search for Fastly, select it, and click Next.

    3. Enter the required information.

    4. Click Create Integration to save the configuration.

    Field
    Description

    Insight Point

    Choose the default data plane or a deployed Insight Point.

    Name

    A friendly name to identify the integration.

    Token

    The API token used to access the Fastly API.

    Notes and Supported Entities

    The integration uses the OAA custom application template to model entities in Fastly:

    • Fastly Customer: Application

    • Fastly Service: Local Resources

    • Fastly Users: Local Users

    • Fastly Role: Local Roles

    • Fastly Permissions: Local Permissions

    Fastly Customer

    A Fastly customer account is the base object that owns users and services.

    Fastly User

    A platform user is associated with a unique email address and can be granted access to Fastly. Users are always linked to a parent customer account.

    Fastly Field Name
    Veza Field Name
    Description
    Property Type

    id

    id

    User’s ID

    LocalUser Property

    name

    name

    User’s Name

    LocalUser Property

    created_at

    created_at

    Time when the user was created

    Fastly Service

    A service represents the configuration for a website, app, API, or any other service hosted on Fastly. Services can have multiple versions where backends, domains, and more are configured.

    Fastly Field Name
    Veza Field Name
    Description
    Property Type

    id

    id

    Service’s ID

    Resource Property

    name

    name

    Service’s Name

    Resource Property

    created_at

    created_at

    Time when the service was created

    Fastly Roles

    All user roles in a Fastly account have access to all services. The Engineer role can have limited access to services with specific permissions granted by a Service Authorization API.

    Fastly includes predefined user roles:

    • User: Limited ability to view service configurations and stats; no access to billing.

    • Billing: Full access to view service configurations, invoices, billing history, and manage payment information.

    • Superuser: Full account access, including management of service configurations, billing, and TLS settings.

    • Engineer: Ability to create and manage services. Access can be limited on a per-service basis with the following permissions:

      • Read-only: View service configuration without making changes.

      • Purge select: View configuration and issue purge requests for specific parts of a service.

      • Purge all: View configuration and issue purge requests for the entire service.

      • Full access: Full access to service configuration and management.

    Tracking of administrative privileges, role group assignments, and and security configurations

  • Analysis of user activity, correlating Mulesoft users to external identities (Okta, Azure AD)

  • See notes and supported entities for more details.

    Configuring MuleSoft

    To set up the integration, you'll need to create a Connected App in MuleSoft with appropriate permissions.

    Requirements

    • Administrator access to your MuleSoft Anypoint Platform organization

    • Permissions to create and manage Connected Apps

    • The following API scopes available for assignment:

      • Access Controls Viewer

      • View Organization

      • View Users in a particular organization

    • A Veza admin account with permissions to create integrations

    Note: This integration currently supports Anypoint Platform cloud deployments. Self-hosted MuleSoft deployments are not supported.

    Creating a Connected App

    1. Navigate to Access Management in your MuleSoft Anypoint Platform

    2. Click Connected Apps in the navigation menu

      MuleSoft connected apps.
    3. In the Owned Apps section, click Create App

      Configure a connected app.
    4. Complete the following fields:

      • Name: Enter a unique name for your integration

      • Type: Select "App acts on its own behalf (client credentials)"

    5. Click Save to create the Connected App

    Configuring Required Scopes

    1. Click "Add Scopes" and select the following required scopes:

      • Access Controls Viewer

      • View Organization

      • View Users in a particular organization

    2. Save the scope configuration

    3. Note down the Client ID and Client Secret for use in Veza configuration

    Add scopes for the connected app.

    See the MuleSoft Access Management documentation for more details.

    Configuring MuleSoft on the Veza Platform

    1. In Veza, go to the Integrations page

    2. Click Add Integration and search for MuleSoft. Click on the tile to add an integration

    3. Enter the required information

    4. Click Create Integration to save the configuration

    Field
    Notes

    Name

    A friendly name to identify this integration

    Client ID

    Client ID from the MuleSoft Connected App

    Client Secret

    Client Secret from the MuleSoft Connected App

    Notes and Supported Entities

    Organization

    The organization entity represents your MuleSoft Anypoint Platform organization and its configuration.

    Attribute
    Notes

    org_id

    Unique identifier for the organization

    org_name

    Display name of the organization

    mfa_required

    MFA requirement status for the organization

    org_type

    Type of organization

    domain

    Organization's domain

    subscription_category

    Subscription level category

    Users

    Users represent individuals with access to the MuleSoft platform.

    Attribute
    Notes

    id

    Unique identifier for the user

    username

    User's login name

    name

    Display name (combination of first and last name)

    email

    Email address

    first_name

    User's first name

    last_name

    User's last name

    Groups (Teams)

    Groups represent organizational structures within MuleSoft.

    Attribute
    Notes

    team_id

    Unique identifier for the team

    team_name

    Display name of the team

    team_type

    Classification of team

    created_at

    Team creation timestamp

    updated_at

    Last update timestamp

    Roles

    Roles define sets of permissions that can be assigned to users and groups.

    Attribute
    Notes

    role_id

    Unique identifier for the role

    name

    Display name of the role

    description

    Detailed description of the role's purpose

    editable

    Whether the role can be modified

    created_at

    Role creation timestamp

    updated_at

    Last update timestamp

    Connected App Ownership

    The ownership of the Connected App used for integration automatically transfers to the root organization owner if the creating user:

    • Is deleted from the system

    • Is removed from the root organization

    • Loses administrative privileges

    Organization administrators can modify Connected App ownership through Access Management > Connected Apps > Owned Apps.

    Using AWS Secrets Manager for Database Extraction

    Configure the AWS integration to use Secrets Manager secrets to extract standalone databases.

    Early Access Using AWS Secrets Manager to store database extraction credentials is currently supported in Early Access for compatible integrations. Please contact our support team to enable this feature.

    Credential Fallback Behavior

    When using AWS Secrets Manager for database credentials:

    • Primary: Credentials are retrieved from AWS Secrets Manager first

    • Fallback: If secrets retrieval fails, the system falls back to username and password fields (if provided)

    For maximum security, omit username/password fields to rely solely on Secrets Manager. Including backup credentials can provide operational resilience for temporary secrets issues.

    Overview

    Veza can retrieve database credentials from AWS Secrets Manager with automatic fallback to direct credentials for standalone databases (MySQL, PostgreSQL, Oracle, SQL Server, MongoDB, Cassandra). The system prioritizes secrets but provides resilience through fallback authentication.

    Secrets must contain "username" and "password" keys as JSON properties.

    Configuration Requirements

    ✅ Requirements Checklist

    Configuration

    Required Fields

    • resource_id: Connection string in format protocol:hostname:port

    • secret_id: ARN of the AWS Secrets Manager secret

    • aws_assume_role_name: IAM role name for secrets access

    Supported Databases

    Database
    Protocol
    Example Resource ID

    Example Configuration

    IAM Role and Trust Policy Setup

    You must create an IAM role in the AWS account containing the secrets with a trust policy that allows the Veza Insight Point role to assume it.

    IAM Role Trust Policy

    Create an IAM role (e.g., veza-secrets-access-role) with this trust policy:

    IAM Role Permissions Policy

    Attach this permissions policy to the IAM role to allow access to secrets:

    Note: The trust policy and role assumption are required for all standalone database configurations. The trust policy allows Veza's Insight Point role to assume the customer role that has access to Secrets Manager.

    Secrets API

    API Endpoints

    Operation
    Method
    Endpoint

    When making API requests, ensure that the resource_id parameter is URL-encoded. This is particularly important because the resource_id can be an AWS ARN or an SQL connection string. These values can contain special characters, such as : and /, which can interfere with API routing if not properly encoded.

    For example, if the resource_id is mysql:db.example.com:3306, the URL-encoded request should be:

    Get Secrets Mapping

    List all resource-to-secret mappings for an AWS Integration

    GET <BASE URL>/api/private/providers/{provider_id}/secrets

    Response:

    Set Secrets Mapping

    Set a mapping of all secrets for an AWS integration.

    PUT <BASE URL>/api/private/providers/{provider_id}/secrets

    Example API Call:

    Clear Secrets Mapping

    Delete all secrets mapped for an integration, specified by AWS integration ID.

    DELETE <BASE URL>/api/private/providers/{provider_id}/secrets

    Delete Secrets Mapping

    Remove a single mapping, specified by ID.

    DELETE <BASE URL>/api/private/providers/{provider_id}/secret/{resource_id}

    Get Mapping for Resource

    Return the secret id for a specified resource.

    GET <BASE URL>/api/private/providers/{provider_id}/secret/{resource_id}

    Request body:

    Set Mapping for Resource

    Update the integration secrets mapping to use a new secret ID for the specified resource.

    PUT <BASE URL>/api/private/providers/{provider_id}/secret/{resource_id}

    Request body:

    Troubleshooting

    Common Issues and Solutions
    Issue
    Cause
    Solution

    Known Limitations

    Important Limitations:

    1. Secret Updates: Once a secret is injected into a datasource configuration, it cannot be changed. To update credentials, you must delete and recreate the integration.

    2. Temporary Solution: The current AWS Secrets Manager integration for standalone databases is a temporary solution. A more comprehensive secret vault implementation is planned for future releases.

    Additional Resources

    AWS DocumentDB

    Discovering Amazon DocumentDB clusters and database-level permissions with Veza

    When connecting an AWS account to Veza, the recommended IAM policy includes permissions to discover DocumentDB clusters. To gather database-level metadata (users, roles, and permissions), Veza will need to be able to execute database commands as a local user, as described in this document.

    Overview

    Amazon DocumentDB is a fully managed document database service designed for MongoDB compatibility. Veza provides two-tier discovery similar to RDS MySQL and PostgreSQL: cluster infrastructure metadata is discovered through AWS APIs, while database-level permissions are extracted using the MongoDB wire protocol.

    When you enable DocumentDB in your AWS integration, Veza automatically discovers all DocumentDB clusters (both regular and elastic) in your account. If you provide database credentials, Veza connects to each cluster, lists available databases, and creates separate datasources for each one to extract users, roles, and granular permissions.

    Authorization Entities

    Cluster metadata is always discovered when DocumentDB is enabled. Database-level entities require credentials:

    Discovery Tier
    Entity Types
    Requirements

    Prerequisites

    Cluster discovery requires an existing in Veza with at least one successful extraction and appropriate IAM permissions (detailed in ). This discovers cluster metadata for both regular and elastic DocumentDB clusters.

    To enable database-level discovery, you'll need network connectivity from Veza to your DocumentDB endpoints. An is recommended for production environments and must be configured to allow outbound connections to your DocumentDB clusters through . You'll also need admin access to create a MongoDB-compatible read-only user as described in .

    IAM Configuration

    Recommended: Least-Privilege Custom Policy

    Veza recommends creating a custom IAM policy with only the required permissions for DocumentDB cluster discovery:

    • rds:DescribeDBClusters - DocumentDB regular clusters are built on RDS technology and use RDS APIs

    • docdb-elastic:ListClusters - Lists all elastic DocumentDB clusters in your account

    • docdb-elastic:GetCluster - Retrieves detailed metadata for each elastic cluster

    These are included in the recommended Veza connector policy, enabling cluster-level discovery as part of the default AWS integration:

    AWS provides managed policies that include the necessary permissions, though they grant additional permissions beyond what Veza requires:

    • AmazonDocDBReadOnlyAccess - Includes rds:DescribeDBClusters plus 35+ other RDS permissions

    • AmazonDocDBElasticReadOnlyAccess - Includes both elastic DocumentDB permissions plus ec2:CreateTags and ec2:DescribeSubnets

    Database User Configuration

    To enable database-level discovery, create a local user in your DocumentDB cluster with read-only access to database metadata. Veza needs listDatabases to enumerate databases, find on the system.users collection to read user definitions, and viewRole to inspect role definitions and permissions.

    Connect to your DocumentDB cluster and run the following commands to create a role with these privileges and assign it to a new user:

    Note: The user and role names (veza-extractor-user and veza-extractor-role) are examples. You can use any names that comply with your organization's naming conventions.

    Veza Configuration

    Enable DocumentDB in Your AWS Integration

    1. In Veza, go to the Integrations overview

    2. Find your existing AWS integration and click to edit it

    3. In the integration configuration, enable the DocumentDB service

    4. (Optional) To enable database-level discovery, configure the following fields:

    The next time Veza connects, DocumentDB clusters are discovered automatically through AWS APIs. If database credentials are configured, Veza connects to each cluster and discovers databases. Each discovered database is displayed as a separate datasource under Integrations > All Data Sources.

    Notes and Supported Entities

    When DocumentDB is enabled in your AWS integration, Veza automatically discovers cluster infrastructure for both regular and elastic clusters in available or ACTIVE status. If database credentials are configured, Veza connects to each cluster to extract database-level authorization metadata. Each discovered database appears as a separate datasource in Veza.

    DocumentDB Cluster

    Represents a DocumentDB cluster infrastructure resource discovered via AWS APIs. Clusters serve as the parent container for databases and provide network connectivity configuration.

    Attribute
    Description

    DocumentDB Database

    Represents an individual database within a DocumentDB cluster. Discovered through MongoDB wire protocol when database credentials are configured. Each database becomes a separate datasource in Veza.

    Attribute
    Description

    DocumentDB User

    Represents a database user identity with authentication and authorization privileges. Users are scoped to a specific database (the authentication database) but may have permissions across multiple databases through role assignments.

    Attribute
    Description

    DocumentDB Role

    Represents a role that grants specific privileges on database resources. Roles can be assigned to users and can inherit from other roles. Veza discovers both built-in roles (like read, readWrite, dbAdmin) and custom roles.

    Attribute
    Description

    Permissions

    DocumentDB uses the MongoDB privilege system with three resource scopes. Veza translates these MongoDB-specific actions into abstract permissions (DataRead, DataWrite, MetadataRead, etc.) for cross-platform analysis:

    • Cluster-level privileges (56 actions): Administrative operations affecting the entire cluster, such as listDatabases, serverStatus, addShard, replSetConfigure

    • Database-level privileges (25 actions): Database management operations like createUser, dropUser, grantRole, viewRole

    For the complete list of supported actions and their abstract privilege mappings, see .

    Credential Configuration

    Database credentials are optional; the integration will still discover cluster metadata. After configuring credentials, the same username and password apply to all clusters in your AWS account.

    The integration currently supports MongoDB native authentication (username and password); AWS IAM database authentication is not supported.

    MongoDB Compatibility

    DocumentDB implements the MongoDB 3.6, 4.0, or 5.0 wire protocol. Veza connects using a standard MongoDB-compatible client, making database-level discovery functionally identical to standalone MongoDB integration.

    Network Requirements

    Database-level discovery requires network connectivity from your Veza Insight Point to DocumentDB cluster endpoints. For production environments, you can deploy an in the same AWS region as your clusters and configure security group inbound rules to allow connections from the Insight Point's IP address. For multi-region deployments, ensure your Insight Point can reach all cluster endpoints or deploy region-specific Insight Points.

    Testing and Security

    Before enabling production discovery, test with a non-production cluster to verify connectivity and permissions. Use the least-privilege IAM policy for cluster discovery and create a dedicated read-only MongoDB user with only the required privileges (listDatabases, find on system.users, viewRole).

    Activity Monitoring for AWS

    Identify overprovisioned and inactive users using CloudTrail logs.

    ℹ️ Early Access: Monitoring for AWS is part of Access Monitoring, which must be enabled by our support team.

    Veza gathers CloudTrail logs to audit user activity and generates Over Provisioned Scores (OPS) to show the percentage of unutilized access. This document provides steps to enable audit log extraction for an integrated AWS account.

    Notes

    • Supported Entities: Veza generates over-provisioned scores for these relationships:

      Source Entity
      Destination Entity

      * Requires Activity Monitoring for Okta

    • Monitoring for multiple AWS accounts: To enable Activity Monitoring across several accounts in your organization, you'll need to repeat these steps for each integration for each account. In Query Builder results, OPS will be N/A for users from accounts where Activity Monitoring is not enabled.

    • The Activity Monitoring dashboard shows the dormant and over-provisioned AWS IAM Users, based on the resources they can access and the current Activity Monitoring time range. You can add constraints on OPS to Queries and Rules to enforce policies around user activity and actual resource usage.

    • Activity Monitoring Attributes: Veza creates properties to track different types of activity based on the resource type:

      • AWS IAM User:

        • Last Activity At: Timestamp of the most recent activity where the user was the principal, including activities in services not currently supported in Activity Monitoring (e.g., EC2 RunInstances)

    Enabling Activity Monitoring for AWS

    You can enable monitoring for a single AWS account with an account-level trail, or create an organization trail containing events from several regions and accounts:

    • In AWS, create an organization or account-level trail for activity monitoring, or use an existing one. If you have many accounts where you want to enable monitoring, an organization trail is recommended for easier configuration.

    • In AWS, ensure the Veza service principal has authorization to discover cloud trails and read the trail in S3.

    • In Veza, enable audit logs for each AWS account integration. You can specify the same S3 bucket and organization trail (identified by its AWS resource name) for all integrations.

    Enabling Activity Monitoring with AWS Control Tower For organizations that use AWS Control Tower to govern a multi-account AWS environment, AWS CloudTrail is configured by default, with two key accounts:

    • A Management account at the organization root, where Control Tower is configured.

    • A Log Archive

    See the following steps for more details. Apply the appropriate policies based on your CloudTrail configuration:

    Step 1: Retrieve CloudTrail region and trail name

    Each account integration connects to a single Trail with event logs for the desired regions, accounts, and resources to gather activity data.

    • To use an existing Trail, search for CloudTrail on the AWS Console, and save the name and region for configuring the integration in Veza. The trail must include S3, Secret Manager, and IAM events.

    • If Veza cannot use an existing Trail, see for the current instructions from AWS.

    Step 2: Update AWS integration permissions

    To enable Audit Log Extraction and Activity Monitoring for several AWS account integrations in Veza, you will need to update the within each AWS account to grant access to the S3 bucket and trail.

    The AWS IAM Policy used by each Veza-AWS integration must grant permissions to read CloudTrail metadata, and list and retrieve objects in the S3 bucket and path where the CloudTrail logs are stored.

    Follow the instructions below for organization or account trails, depending on your AWS architecture.

    To update the integration trust policy:

    1. On the AWS IAM Console, open the Policies page and locate the one used by the Veza-AWS Integration.

    2. Search for the following SID, and create it if necessary:

      This is required to discover if trails exist in the AWS account. Creating an AWS integration using the recommended policy includes the CloudTrail statement by default.

    3. Enable access to account and organization-level cloud trails, using the examples below.

    Policy for audit log extraction

    Update the integration IAM policy for the account where the organization trails resides to include the following statement. Depending on your environment, this could be the management account, or a dedicated log archive account. The following statement will allow Veza read access to retrieve logs from S3:

    To configure Activity Monitoring, use the organization trail ARN to for accounts in the organization where you want to enable monitoring. Choose "Extract for Organization" for the account where logs are stored. For other accounts in the organization, enter the trail ARN and select "Skip Extraction".

    See for more on configuring organization trails in AWS.

    To enable audit logs for multiple AWS accounts with account-level trails configured, each AWS account integration must have read permissions to discover trails and retrieve logs from S3.

    See for more information about account-level trails.

    Integration trust policy

    For each account where you want to enable activity monitoring, update the integration policy to include the statement:

    Step 3: Enable Audit Logs for the AWS Integration

    In Veza, enable audit logs for each account where activity monitoring will be active:

    1. On the Veza Integrations page, go to the Integrations page and click Enable Audit Logs next to the name of the AWS integration.

    2. In the modal, enter the values from AWS:

      • The name of the Trail Veza will connect to, e.g., veza_s3_monitoring. For Organization trails, use the full ARN as the name, or when the trail is owned by an account other than the integration account.

    iManage

    Configuring the Veza integration for iManage

    Overview

    The Veza integration for iManage connects to the work management platform to discover users, their groups and roles, and the shared libraries they can access. Use the integration to:

    • Search for employees with access to data in iManage, based on their group and role assignments.

    • Review user permissions within iManage based on groups, roles, or the resources they can access.

    • Filter queries and create alert rules based on the authorization metadata discovered by Veza.

    To configure the integration, you must enable the Veza - iManage Integration app for your organization's iManage account and add the integration to Veza using the app's credentials.

    See for more details.

    Configuring iManage

    The integration requires a custom application installed by the iManage team.

    For customers who use iManage Cloud, request an application for your account by emailing .

    For self-managed iManage, create an app registration for your app in Control Center. Ensure the application is configured to use the OAuth2 client_id and secret. Note the values for the configuration steps below.

    Once the app is installed, you can log in to iManage to get the application client ID. The client secret will be provided to the email requesting the custom application from iManage's team.

    1. Request the Veza - iManage Integration app. The app must have access to the iManage Control Center.

    2. Log in to iManage. Your account needs the App Management, Group Management, Role Management, and User Management privileges to access and use the integration.

    3. The user must have access to the Veza - iManage Integration application to get Client ID and Client Secret for configuration.

    Add an iManage integration to Veza

    To configure the iManage integration in Veza:

    1. Log in to your Veza instance.

    2. Choose Integrations from the main navigation to open the overview page.

    3. In the main pane, click Add Integration.

    4. Choose iManage

    Notes and Supported Entities

    Veza represents identities and access within iManage with the following graph entities:

    • iManage Customer → iManage Application

    • iManage Library → iManage Resource

    • iManage Group & Library Group → iManage Group

    • iManage User & Library User → iManage User

    User Attributes

    • allow_logon: Indicates if the user is allowed to sign in. If true, the user is allowed to sign in. If false, the user is not allowed to sign in.

    • create_date: User’s created date.

    • last_modified_at: User’s edit date. (Custom Property: Yes, Used field edit_date)

    Group Attributes

    • id: Group’s ID.

    • full_name: Group's name.

    • group_number: Group’s Number.

    • create_date: Group’s Creation time.

    Role Attributes

    • id: Role's ID.

    • name: Role's name.

    • description: Indicates the description of the role.

    • database: Indicates the database of the role.

    Permission Attributes

    • app_management: Either admin or no_access.

    • encryption_management: Either admin or no_access.

    LDAP

    Configuring the Veza integration for LDAP directories.

    Overview

    Veza provides a generic LDAP integration to connect to directory services that support the Lightweight Directory Access Protocol (LDAP). This integration enables you to discover users, groups, and their relationships within your LDAP directory and map them to the Veza access graph.

    The LDAP integration provides centralized identity discovery, group membership analysis, cross-system identity correlation, and organizational context. The generic nature of this integration allows it to work with any LDAPv3-compliant directory service, including OpenLDAP, Red Hat Identity Manager, Oracle Unified Directory, IBM Directory Server, and ForgeRock Directory Services.

    Prerequisites

    To configure a new LDAP integration, you will need:

    • The LDAP server hostname or IP address and port (typically 389 for LDAP or 636 for LDAPS)

    • A username and password for an LDAP user with read access to the directory

    • For LDAPS (recommended): SSL/TLS certificate used by the LDAP server

    • The base DN for the directory search (example: dc=example,dc=com)

    Required LDAP Operations

    The Veza LDAP connector performs these operations on your directory:

    Authentication: Binds to the LDAP server using the configured service account credentials.

    User Discovery: Executes subtree searches from the Base DN to find all entities matching the specified Users Object Class (e.g., person, inetOrgPerson).

    Group Discovery: Performs subtree searches to identify group entities using configurable object classes (default: groupOfUniqueNames, also supports groupOfNames and others), and extracts membership information using the appropriate member attribute.

    Attribute Reading: Retrieves specific attributes from discovered users and groups to populate the Veza access graph with identity and relationship data.

    Required Attributes

    The integration reads these attributes from your LDAP directory:

    Entity Type
    Required Attributes
    Optional Attributes
    Purpose

    *The member attribute is automatically determined based on the group object class: uniqueMember for groupOfUniqueNames, member for groupOfNames, or can be explicitly configured.

    Configuration

    Configure the LDAP integration in Veza to connect to your directory server and begin discovering identity data.

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and search for "LDAP". Click on the LDAP tile to open the integration configuration.

    3. Complete the required configuration parameters detailed below.

    4. Click Create Integration to save and create the integration.

    Configuration Parameters

    Parameter
    Required
    Type
    Description

    Mapping Configuration: Define how identities or groups map to each other. This optional section allows you to configure between your LDAP directory and other integrated systems.

    Configuration Best Practices

    LDAP URL Format: If no protocol is specified, ldaps:// is automatically added for security. Always use LDAPS when possible for encrypted communication.

    Multiple Object Classes: For Users Object Class, you can specify multiple classes separated by commas (e.g., person,inetOrgPerson) to accommodate mixed environments.

    Group Object Class Flexibility: The integration supports different LDAP group implementations. By default, it uses groupOfUniqueNames with uniqueMember attributes, but can be configured for groupOfNames with member attributes, or other custom group schemas. This enables compatibility with various LDAP implementations including Red Hat Identity Manager.

    Custom Properties: All custom property lists use semicolon (;) separators. For optimal performance, only gather essential custom attributes.

    Included Groups: Use full DN format with semicolon separators (e.g., ou=Engineering,dc=example,dc=com;ou=Sales,dc=example,dc=com) to limit scope and improve extraction performance.

    Custom Properties

    The LDAP integration supports extracting custom user attributes beyond the standard LDAP schema. To include custom attributes during discovery, specify them by name and data type in the integration configuration.

    For example, if your LDAP directory includes a custom attribute for employee department, you can use this information for by adding it to the configuration.

    Configuration: Add custom attribute names (semicolon-separated) to the appropriate field based on data type:

    • Custom String Properties: Text-based attributes (e.g., department, title, telephoneNumber)

    • Custom Number Properties: Numeric attributes (e.g., employeeNumber, uidNumber)

    The specified attributes will appear on Access Graph entities after the next extraction, enabling Search, Rules, and Access Reviews based on the values.

    Red Hat Identity Manager

    Red Hat Identity Manager (IdM) uses groupOfNames object class with member attributes instead of the default groupOfUniqueNames with uniqueMember. Configure the Veza integration with these specific settings:

    • Groups Object Class: groupOfNames

    • Group Member Attribute: member (or leave blank for auto-detection)

    Advanced Configuration Options

    Filtering and Scoping: Use the "Included Groups" parameter to limit extraction scope to specific organizational units. This improves performance and focuses the integration on relevant directory sections.

    Performance Optimization: For large directories with 100,000+ users, use "Included Groups" to limit scope to relevant organizational units, limit custom properties to essential attributes only, and monitor extraction performance through the Veza integrations dashboard.

    See for detailed information about supported entities and schema variations.

    See for platform-specific LDAP server setup guidance.

    Notes & Supported Entities

    Supported entity types and more information about the Veza-Google connector.

    Veza integrates with Google to parse service and resource metadata using native workspace and project APIs, using a service account with read-only permissions.

    Veza creates entities in the data catalog to represent the discovered projects, services, resources, and identities.

    The identities, resources, and authorization relationships that Veza discovers are limited by the service account role, the project APIs you have enabled, and any limits set on data source extraction.

    Cross-Service Connections

    Veza discovers authorization relationships for federated Azure AD and Okta users with permissions on Google Cloud Platform resources. These correlations are made based on user and and groups assignment to the Google Cloud and Google Cloud SSO Okta Apps and AzureAD Enterprise Applications.

    • For Okta domains configured to sync to Google Workspace, entities are mapped based on user email address or group name.

    • For Azure RBAC users, mapping can use email address, name, or service principal. Groups are mapped by name.

    Supported Entities

    Workspace, Group, and Domain Entities

    The Google integration supports the following entities are part of the IAM and Workspace services which are enabled by default:

    • Google Domains

    • Google Organization Unit

    • Google User

    • Google Workspace Account

    Google Cloud Project Entities

    • Organization

    • Project

    • Folder

    • Service Account

    Google Cloud Storage Entities

    For projects with the Cloud Storage API enabled:

    • Storage Service

    • Storage Bucket

    Google Cloud Compute Entities

    For projects with the Compute Engine API enabled:

    • Compute Service

    • Subnet

    • VPC

    • Virtual Machine

    Key Management Service Entities

    For projects with the KMS API enabled:

    • KMS Service

    • KMS Key Ring

    • KMS Key

    BigQuery Entities

    For projects with the BigQuery API enabled:

    • BigQuery Service

    • BigQuery Dataset

    • BigQuery Table

    Cloud Run

    • Google Cloud Run Service

      • parent_id: ID of the parent project, e.g. projects/696313754797

      • google_cloud_organization_name: Organization name, e.g. organizations/475292842812

    Google Kubernetes Engine

    Veza automatically discovers the following Kubernetes entities and attributes. To discover cluster-level permissions, use the dedicated integration.

    • Google Kubernetes Engine Service

      • parent_id: ID of the parent project, e.g. projects/696313754797

      • google_cloud_organization_name: Organization name, e.g. organizations/475292842812

    Cloud SQL Entities

    Veza discovers the following entities and attributes when provided optional :

    • Google Cloud SQL Service

      • parent_id: ID of the parent project, such as projects/696313754797

      • google_cloud_organization_name: Organization name, such as organizations/475292842812

    Vertex AI Entities

    Veza discovers the following entities and attributes for projects with the Vertex AI API enabled and when provided optional :

    • Vertex AI Service

      • parent_id: ID of the parent project, such as projects/696313754797

      • google_cloud_organization_name: Organization name, such as organizations/475292842812

    Vertex AI Reasoning Engines represent AI agents that execute custom code and tools. They are classified as non-human identities and have connections to Google Cloud IAM Service Accounts. Vertex AI Endpoints use Vertex AI Models for serving predictions and support resource-level IAM policies. The integration supports effective permission analysis across 1,249+ Vertex AI-specific permissions.

    Effective Permissions

    • Google Cloud IAM Effective Permission

    Effective Permissions represents the C/R/U/D data and non-data actions a principal can take on a resource. Using , specify an EP to show only users who can take those actions. Click Explain Effective Permissions on an un-grouped EP node to show the native actions it represents.

    Google Workspace User Active Status

    The Is Active property for a Google Workspace user is determined by their suspended and archived status. A user is considered Is Active: true unless their account is either suspended or archived.

    If a user's suspended property is true or their archived property is true, their Is Active status will be false. The Is Suspended and Is Archived attributes can be used for more granular filtering.

    Oracle Database (AWS RDS)

    Configuring the Veza integration for Oracle Database on AWS RDS.

    Overview

    Veza supports Oracle Database on AWS RDS as part of the AWS integration. When enabled for an AWS integration, Veza will discover Oracle Database instances and clusters in the account, and connect to each database to extract authorization metadata.

    This document includes steps to enable Oracle Database extraction for a configured AWS integration. See Notes and Supported Entities for more information about the metadata collected by Veza.

    Configure Oracle Database discovery for AWS RDS

    To discover Oracle Database on RDS, you will need:

    • An enabled for the host AWS account.

    • A local database user created in each Oracle database to discover, including any tenant databases.

    • An is recommended for secure communication between Veza and the databases to extract. The parent AWS integration should be configured to use this insight point.

    Update Veza-AWS extraction policy

    • In the AWS account console, ensure that the includes the rds:DescribeTenantDatabases capability. The RDS section should look like:

    Create local database users

    Create a local user in each Oracle database to discover (including tenant databases):

    1. Log in to the Oracle Database instance as an administrator.

    2. Create a local user. This user must have the same name and password for all Oracle databases the integration will discover.

    3. Grant permissions: GRANT SELECT ANY DICTIONARY TO veza_db_user;

    4. Repeat this process for each database to extract authorization metadata.

    Enable Oracle Database discovery and extraction

    1. In Veza, go to the Integrations page.

    2. Search for the parent AWS account integration and click Edit.

    3. In the configuration, check that the DB User matches the name of the user you created.

    4. Enter the user Password.

    Connection Security

    AWS RDS Oracle instances can require SSL/TLS encrypted connections depending on your RDS instance configuration. The integration supports three connection security modes for RDS Oracle databases.

    TLS with CA Certificate

    The integration establishes an encrypted TLS connection using a CA certificate to verify the RDS Oracle server's identity. Upload a PEM-encoded CA certificate file (.pem, maximum 1MB) through the integration configuration interface. AWS provides RDS certificate bundles that can be downloaded from the . The integration automatically detects whether your RDS instances use port 1521 (standard) or 2484 (SSL/TLS default) and negotiates appropriate TLS protocol versions.

    To configure TLS with a CA certificate, select TLS from the Connection Security dropdown and upload your CA certificate file when prompted.

    Oracle Wallet

    The integration establishes an encrypted connection using an Oracle Wallet file. Upload an auto-login wallet file (cwallet.sso, maximum 1MB) that contains the necessary certificates, private keys, and trusted Certificate Authorities. This method is less common for RDS deployments but supported for organizations that standardize on Oracle Wallet across all Oracle database types.

    To configure Oracle Wallet authentication, select Oracle Wallet from the Connection Security dropdown and upload your wallet file when prompted.

    Default (Unencrypted)

    The integration connects without SSL/TLS encryption. Database credentials and authorization metadata are transmitted in cleartext. This mode should only be used for development or testing RDS instances that do not process sensitive data.

    Notes and Supported Entities

    The AWS integration discovers RDS Services, RDS Clusters, and RDS Instances, which can be RDS Oracle instances. These can contain a single Oracle DB Database, or multiple tenant databases, modeled with the following graph entities:

    OracleDB Database

    Represents an Oracle database instance. Multitenant configurations can have more than one database within a single RDS Oracle instance.

    Attribute
    Description

    OracleDB Object Privilege Grants

    Represents the privilege grants for objects in the Oracle database. These are granted explicitly to Users and Roles and apply to specific Tables.

    Attribute
    Description

    There are no explicit privileges over schemas in OracleDB versions currently supported by AWS. Each user owns their own schema, created for each user.

    Note that Column privileges are not yet modeled. Schema privileges are only available in Oracle DB version 23 (not currently supported on AWS RDS).

    OracleDB Roles

    Represents the roles defined within the Oracle database. Roles describe Object Privilege Grants that enable specific actions on tables. OracleDB roles can assume other roles.

    Attribute
    Description

    OracleDB Schema

    Represents a schema within the Oracle database. A schema within an OracleDB Database contains individual tables. Users can be assigned to Schema as owners.

    Attribute
    Description

    OracleDB User

    Represents a user within the Oracle database. OracleDB Users are local accounts within a database.

    Attribute
    Description

    OracleDB Table

    Represents a table within the Oracle database. Veza shows effective permissions from OracleDB Users to OracleDB Tables.

    Attribute
    Description

    Amazon Web Services

    Configuring the Veza integration for AWS

    There are several ways to configure Veza to connect to Amazon Web Services (AWS). The method you choose depends on your security requirements and the data sources in your environment. Typically, Veza should connect by .

    If you need to discover non-cloud native data sources within an AWS account, you should use an for secure authentication. As a less secure but easy-to-establish connection method, you can optionally .

    If possible, you should integrate your primary AWS Organization account, to enable full extraction of Service Control Policies (SCPs) and Organizational Units (OUs). When a primary OU is configured, other accounts not yet connected to Veza can still be audited using the Veza Access Graph.

    After establishing an AWS Control Tower Landing Zone, you can in your AWS Organization to Veza. Once enabled, Veza will register accounts whenever they are enrolled or provisioned into an OU governed by AWS Control Tower.

    To programmatically add all current accounts in an Organization with AWS CloudFormation, see

    Atlassian Cloud Products

    Configuring the Veza integration for Atlassian Cloud Admin, Jira Cloud, and Confluence Cloud.

    Overview

    This integration enables a connection between Veza and an Atlassian Cloud tenant to discover the following services:

    • Atlassian Cloud Admin

    JFrog Artifactory

    Configuring the Veza integration for JFrog Artifactory

    Overview

    JFrog Artifactory is a universal artifact repository manager for storing, organizing, and managing binary artifacts throughout the software development lifecycle. The Veza integration enables:

    • Discovery and analysis of users, groups, and their access permissions

    NetSuite

    Configuring the Veza integration for NetSuite

    Overview

    The Veza integration discovers a single Oracle NetSuite tenant and its users, roles, and subsidiary resources. To discover more than one environment, (for example, production and staging), follow the instructions to configure two separate instances of the integration.

    See for more details.

    Cassandra

    Configuring the Veza integration for Apache Cassandra

    Overview

    The Veza integration for Apache Cassandra enables discovery of roles, keyspaces, tables, and permissions. Veza connects to your Cassandra deployment to collect authorization metadata, and creates graph entities to model principals and resources within the open source NoSQL distributed database. After enabling the integration, you can use this information to:

    • Understand and visualize which roles can interact with specific tables and keyspaces in Cassandra.

    Identity Protection Assessment

    Read

    Identity Protection Detections

    Read

    Identity Protection Enforcement

    Read

    Identity Protection Entities

    Read

    Identity Protection GraphQL

    Write

    Identity Protection Health

    Read

    Identity Protection on-premise enablement

    Read

    Identity Protection Timeline

    Read

    Identity Protection Entities

    READ/WRITE

    User Management

    Read

    Google Workspace Groups
  • Google Workspace Role

  • Network Interface

  • Google Cloud Run Service Instance

    • parent_id: ID of the parent project, e.g. projects/696313754797

    • google_cloud_organization_name: Organization name, e.g. organizations/475292842812

    • allows_unauthenticated_invocation: Boolean indicating if the service allows unauthenticated invocation ( )

    • created_at: Creation time, e.g. 2023-10-11T07:03:04.067573Z

  • Google Cloud Run Policy

  • Google Cloud Run Role Binding

  • Google Kubernetes Engine Cluster
    • parent_id: ID of the parent project, e.g. projects/696313754797

    • google_cloud_organization_name: Organization name, e.g. organizations/475292842812

    • master_global_access_enabled: Boolean indicating whether the GKE API endpoint is globally accessible

    • created_at: Creation time, e.g. 2023-10-11T07:03:04.067573Z

  • Google Kubernetes Engine Policy

  • Google Kubernetes Engine Role Binding

  • Google Cloud SQL Database Instance

    • parent_id: ID of the parent project, such as projects/696313754797

    • google_cloud_organization_name: Organization name, such as organizations/475292842812

    • created_at: Creation time, such as 2023-10-11T07:03:04.067573Z

  • Google Cloud SQL Database

    • parent_id: ID of the parent database instance, such as google_sql_cloud::project:project1::instance:databaseInstance1

    • google_cloud_organization_name: Organization name, such as organizations/475292842812

  • Google Cloud SQL User

    • parent_id: ID of the parent database instance, such as google_sql_cloud::project:project1::instance:databaseInstance1

    • google_cloud_organization_name: Organization name, such as organizations/475292842812

    • user_type (optional): User type can be CLOUD_IAM_USER or CLOUD_IAM_SERVICE_ACCOUNT

  • Vertex AI Reasoning Engine

    • display_name: Display name of the reasoning engine

    • description: Description of the reasoning engine

    • location: GCP region where the reasoning engine is deployed, such as us-central1

    • project_id: Project ID where the reasoning engine resides

    • service_account: Service account email used by the reasoning engine (either explicitly configured or default Vertex AI service account)

    • created_at: Creation timestamp, such as 2023-10-11T07:03:04.067573Z

    • updated_at: Last update timestamp, such as 2023-10-11T07:03:04.067573Z

    • parent_id: ID of the parent project, such as projects/696313754797

    • google_cloud_organization_name: Organization name, such as organizations/475292842812

    • identity_type: Non-human

    • identity_subtypes: ["ai_agent"]

    • is_active: Boolean (true)

  • Vertex AI Model

    • display_name: Display name of the model

    • description: Description of the model

    • location: GCP region where the model is stored, such as us-central1

    • project_id: Project ID where the model resides

    • version_id: Model version identifier

    • created_at: Creation timestamp, such as 2023-10-11T07:03:04.067573Z

    • updated_at: Last update timestamp, such as 2023-10-11T07:03:04.067573Z

    • parent_id: ID of the parent project, such as projects/696313754797

    • google_cloud_organization_name: Organization name, such as organizations/475292842812

  • Vertex AI Endpoint

    • display_name: Display name of the endpoint

    • description: Description of the endpoint

    • location: GCP region where the endpoint is deployed, such as us-central1

    • project_id: Project ID where the endpoint resides

    • network: VPC network connection for the endpoint

    • created_at: Creation timestamp, such as 2023-10-11T07:03:04.067573Z

    • updated_at: Last update timestamp, such as 2023-10-11T07:03:04.067573Z

    • parent_id: ID of the parent project, such as projects/696313754797

    • google_cloud_organization_name: Organization name, such as organizations/475292842812

  • Vertex AI Policy

  • Vertex AI Role Binding

  • Kubernetes
    integration permissions
    integration permissions
    Search

    Employment Type

    CONTRACT

    First Name

    The employee's first name

    ID

    The Coupa EmployeeId

    IsActive

    Set true if the employee is marked active on the Coupa platform

    Job Title

    The Job title listed in the employee's current contract

    Manager

    A relationship is created between the contingent worker and the hiring manager

    Name

    The employee's first and last names, joined with a space

    Site Location Code

    The site location code of the employee's current contract

    StartDate

    The employee's start date

    Supplier Email

    The email address of the supplier contact on the employee's current contract

    TerminationDate

    The employee's termination date

    IsActive

    Set true if the employee is marked active on the Coupa platform

    Name

    The employee's first and last names, joined with a space

    Lifecycle Management

    LocalUser Property

    deleted_at

    is_active

    Indicates if the user is active

    LocalUser Property

    updated_at

    updated_at

    Time when the user was last updated

    LocalUser Custom Property

    deleted_at

    deleted_at

    Time when the user was deleted

    LocalUser Custom Property

    last_active_at

    last_login_at

    Last active time of the user

    LocalUser Property

    limit_services

    limit_services

    Indicates if the user has limited access to services

    LocalUser Custom Property

    two_factor_auth_enabled

    two_factor_auth_enabled

    Indicates if two-factor authentication is enabled

    LocalUser Custom Property

    login

    email

    The login associated with the user (typically an email address)

    LocalUser Property

    locked

    locked

    Indicates if the account is locked for editing

    LocalUser Custom Property

    require_new_password

    require_new_password

    Indicates if a new password is required at next login

    LocalUser Custom Property

    Resource Custom Property

    updated_at

    updated_at

    Time when the service was last updated

    Resource Custom Property

    deleted_at

    deleted_at

    Time when the service was deleted

    Resource Custom Property

    type

    type

    Type of service (VCL or WSAM)

    Resource Custom Property

    version

    version

    Version of the service

    Resource Custom Property

    is_version_active

    is_version_active

    Indicates if the service version is active

    Resource Custom Property

    paused

    paused

    Indicates if the service is paused

    Resource Custom Property

    locked

    locked

    Indicates if the service version is locked

    Resource Custom Property

    Creating a Fastly API Token

    subscription_type

    Type of subscription

    subscription_expiration

    Expiration date of current subscription

    subscription_justification

    Justification for subscription type

    created_at

    Organization creation timestamp

    updated_at

    Last update timestamp

    deleted_at

    Deletion timestamp (if applicable)

    enabled

    Whether the user account is active

    created_at

    Account creation timestamp

    updated_at

    Last update timestamp

    last_login

    Most recent login timestamp

    mfa_verifiers_configured

    Whether MFA verification is set up

    mfa_verification_excluded

    Whether user is excluded from MFA requirements

    is_federated

    Whether the user is managed by an identity provider

    type

    User type classification

    password_updated_at

    Last password change timestamp

    An Insight Point with network access to your LDAP server if not publicly accessible

    Monitor the initial extraction in the Integrations page to ensure successful data discovery.

    Base DN

    Yes

    String

    Starting point for directory searches (e.g., dc=example,dc=com)

    Bind DN or User

    Yes

    String

    Username for LDAP authentication (format: cn=admin,dc=example,dc=com or username)

    Bind Password

    Yes

    String (Secret)

    Password for the bind user

    CA Certificate

    No

    Base64 File (Secret)

    SSL/TLS certificate for secure LDAP connections

    Users Object Class

    Yes

    String

    The objectClass that defines users (e.g., person, inetOrgPerson)

    Groups Object Class

    No

    String

    The objectClass for groups (default: groupOfUniqueNames, also supports groupOfNames)

    Group Member Attribute

    No

    String

    Attribute containing group members (auto-detected by default: uniqueMember or member)

    Included Groups

    No

    String

    Semicolon-separated list of DN nodes (and their children) to include. Empty includes all

    Custom String Properties

    No

    String

    Semicolon-separated list of additional string user attributes to extract

    Custom Number Properties

    No

    String

    Semicolon-separated list of additional numeric user attributes to extract

    Custom Date Properties

    No

    String

    Semicolon-separated list of additional date/timestamp user attributes to extract

    Custom Bool Properties

    No

    String

    Semicolon-separated list of additional boolean user attributes to extract

    Provider Icon

    No

    Base64 File

    Custom icon for the integration in Veza

    Custom Date Properties: Date/timestamp attributes (e.g., accountExpires, pwdLastSet)
  • Custom Bool Properties: Boolean attributes (e.g., accountEnabled, accountLocked)

  • Users

    dn, cn or uid

    displayName, email, mail, sn

    Identity, naming, contact information

    Groups

    dn, cn, member attribute*

    N/A

    Group identity and membership relationships

    Custom

    User-configured

    Varies by implementation

    Insight Point

    No

    Selection

    Choose whether to use the default data plane or a deployed Insight Point

    IDP Name

    Yes

    String

    The name of the LDAP IDP provider (internal identifier)

    LDAP URL

    Yes

    String

    custom identity mappings
    attribute filters
    LDAP Integration Reference
    LDAP Server Configuration Examples

    Extended user properties and organizational data

    LDAP server URL (e.g., ldaps://ldap.example.com:636 or ldap.example.com:389)

    External ID configured for the IAM role

  • aws_assume_role_external_id: External ID for role assumption

    MongoDB

    mongodb

    mongodb:db.example.com:27017

    Cassandra

    cassandra

    cassandra:db.example.com:9042

    Set single secret

    PUT

    /api/private/providers/{provider_id}/secret/{resource_id}

    Delete single secret

    DELETE

    /api/private/providers/{provider_id}/secret/{resource_id}

    Incorrect format

    • Use protocol:hostname:port format • Ensure protocol is lowercase • URL-encode when using in API paths

    "Secret not found"

    Wrong secret ARN or permissions

    Verify secret exists and IAM can access it

    "Cannot assume role"

    Missing role parameters (standalone)

    Add aws_assume_role_name and aws_assume_role_external_id

    Authentication Flow

    Credential Priority Order:

    1. First: AWS Secrets Manager (if configured)

    2. Fallback: Username/password fields (if provided)

    3. Failure: Only occurs when both methods fail or are unavailable

    For production environments, rely on Secrets Manager only. Use fallback credentials for development or operational resilience.

  • Feature Flag Requirement: This feature requires the AWS_RDS_SECRETS_MANAGER feature flag to be enabled for your tenant. Contact support to enable this feature.

  • MySQL

    mysql

    mysql:db.example.com:3306

    PostgreSQL

    postgresql

    postgresql:db.example.com:5432

    Oracle

    oracle

    oracle:db.example.com:1521

    SQL Server

    sqlserver

    List all secrets

    GET

    /api/private/providers/{provider_id}/secrets

    Set all secrets

    PUT

    /api/private/providers/{provider_id}/secrets

    Clear all secrets

    DELETE

    /api/private/providers/{provider_id}/secrets

    Get single secret

    GET

    /api/private/providers/{provider_id}/secret/{resource_id}

    "Username and password required"

    No credentials available (secrets failed and no fallback)

    • Fix secrets configuration and permissions • Or provide username/password as fallback credentials

    "Access denied"

    Missing IAM permissions or role configuration

    • Verify secretsmanager:GetSecretValue permission • Check aws_assume_role_name and aws_assume_role_external_id (standalone) • Verify KMS key permissions

    AWS Secrets Manager Best Practices
    IAM Policies for Secrets Manager
    MySQL Integration Guide
    AWS Integration Guide

    sqlserver:db.example.com:1433

    "Invalid resource_id"

    DocumentDB DB User: The username created in Database User Configuration (e.g., veza-extractor-user)

  • DocumentDB DB Password: The password for the database user

  • Save the integration configuration

  • engine

    DocumentDB engine version (e.g., docdb-3.6, docdb-4.0, docdb-5.0)

    is_elastic

    Boolean indicating whether this is an elastic cluster

    created_at

    Cluster creation timestamp

    identity_type

    Set to human by default

    aws_account_id

    AWS account ID (for external authentication scenarios)

    ,
    createCollection
  • Collection-level privileges (21 actions): Data operations like find (read), insert (create), update (modify), remove (delete)

  • Cluster-level

    DocumentDB Cluster

    AWS IAM permissions only

    Database-level

    DocumentDB Database DocumentDB User DocumentDB Role

    AWS IAM permissions + MongoDB user credentials

    name

    Cluster name as shown in AWS Console

    aws_account_id

    AWS account ID containing the cluster

    aws_account_name

    AWS account name

    region

    AWS region where cluster is deployed

    endpoint

    Network endpoint for database connections

    port

    Connection port (defaults to 27017 for MongoDB compatibility)

    name

    Database name

    cluster_id

    Parent cluster ARN

    username

    User's login name

    user_id

    Unique identifier (username@database composite key)

    database_name

    Authentication database where user is defined

    cluster_id

    Parent cluster ARN

    external

    Boolean indicating external authentication (e.g., LDAP)

    is_active

    Always true (DocumentDB doesn't track disabled state)

    role_id

    Role name (e.g., read, dbAdmin, custom role name)

    database_name

    Database where role is defined

    cluster_id

    Parent cluster ARN

    AWS integration
    IAM Configuration
    Insight Point
    security group inbound rules
    Database User Configuration
    MongoDB documentation
    Insight Point

    Configure Connection Security if your RDS Oracle instances require encrypted connections. See Connection Security below.

  • Save the configuration.

  • Password Required

    Indicates if a password is required for the role.

    Identity Type

    The type of identity of the user.

    Is Active

    Indicates if the user is active.

    Profile

    The profile associated with the user.

    System Privileges Admin.

    List of system privileges granted to the user.

    Created At

    Timestamp when the user was created.

    Last Used At (Optional)

    Timestamp when the user was last active, optional.

    Oracle Maintained

    Indicates if the user is maintained by Oracle.

    System Privileges Non-Admin

    List of non-admin system privileges granted to the user.

    System Privileges Common Admin

    List of common admin system privileges granted to the user, optional.

    System Privileges Common Non-Admin

    List of common non-admin system privileges granted to the user, optional.

    Name

    The name of the Oracle database.

    Id

    Unique identifier for the database.

    Type

    The type of the database entity.

    Name

    The name of the privilege grant.

    Id

    Unique identifier for the privilege grant.

    Type

    The type of the privilege grant entity.

    Privileges Grantable

    List of grantable privileges.

    Privileges Non Grantable

    List of Non Grantable privileges.

    Name

    The name of the role.

    Id

    Unique identifier for the role.

    Type

    The type of the role entity.

    Authentication Type

    The type of authentication used for the role.

    Common

    Indicates if the role is common across databases.

    Oracle Maintained

    Indicates if the role is maintained by Oracle.

    Name

    The name of the schema.

    Id

    Unique identifier for the schema.

    Type

    The type of the schema entity.

    Name

    The name of the user.

    Id

    Unique identifier for the user.

    Type

    The type of the user entity.

    Account Status

    The status of the user's account.

    Authentication Type

    The type of authentication used for the user.

    Common

    Indicates if the user is common across databases.

    Name

    The name of the table.

    Id

    Unique identifier for the table.

    Type

    The type of the table entity.

    AWS Integration
    Insight Point
    IAM policy for the Veza Integration
    AWS RDS SSL/TLS documentation
    {
      "secrets": [{
        "resource_id": "mysql:db.example.com:3306",
        "secret_id": "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysql-creds",
        "aws_assume_role_name": "veza-secrets-access-role",
        "aws_assume_role_external_id": "veza-external-id-12345"
      }]
    }
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::276883211366:role/live-insight-point"
                },
                "Action": "sts:AssumeRole",
                "Condition": {
                    "StringEquals": {
                        "sts:ExternalId": "your-external-id-here"
                    }
                }
            },
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::276883211366:role/staginglive-insight-point"
                },
                "Action": "sts:AssumeRole",
                "Condition": {
                    "StringEquals": {
                        "sts:ExternalId": "your-external-id-here"
                    }
                }
            }
        ]
    }
    {
        "Version": "2012-10-17",
        "Statement": [{
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:secretsmanager:region:account-id:secret:*",
                "arn:aws:kms:region:account-id:key/*"
            ]
        }]
    }
    GET <BASE URL>/api/private/providers/123/secret/mysql%3Adb.example.com%3A3306
    {
      "secrets": [
        {
          "resource_id": "mysql:db1.example.com:3306",
          "secret_id": "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysql-db1"
        },
        {
          "resource_id": "postgresql:db2.example.com:5432",
          "secret_id": "arn:aws:secretsmanager:us-east-1:123456789012:secret:postgres-db2"
        }
      ]
    }
    curl -X PUT 'https://your-veza.com/api/private/providers/{provider_id}/secrets' \
      -H 'Authorization: Bearer YOUR_API_TOKEN' \
      -H 'Content-Type: application/json' \
      -d '{
        "secrets": [{
          "resource_id": "mysql:db.example.com:3306",
          "secret_id": "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysql-creds",
          "aws_assume_role_name": "veza-secrets-access-role",
          "aws_assume_role_external_id": "veza-external-id-12345"
        }]
      }'
    {
      "secret_id": "<secret_arn>"
    }
    {
      "secret_id": "<secret_arn>"
    }
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "DocumentDBClusterDiscovery",
          "Effect": "Allow",
          "Action": [
            "rds:DescribeDBClusters",
            "docdb-elastic:ListClusters",
            "docdb-elastic:GetCluster"
          ],
          "Resource": "*"
        }
      ]
    }
    use admin
    
    db.createRole(
       {
         role: "veza-extractor-role",
         privileges: [
           { resource: { cluster: true }, actions: [ "listDatabases" ] },
           { resource: { db: "", collection: "system.users" }, actions: [ "find" ] },
           { resource: { db: "", collection: "" }, actions: [ "viewRole" ] }
         ],
         roles: []
       }
    )
    
    db.createUser(
      {
        user: "veza-extractor-user",
        pwd: passwordPrompt(),  // or cleartext password
        roles: [
           { role: "veza-extractor-role", db: "admin" }
        ]
      }
    )
    {
      "Sid": "RDS",
      "Effect": "Allow",
      "Action": [
        "rds:DescribeDBClusters",
        "rds:DescribeDBInstances",
        "rds-db:connect",
        "rds:DescribeTenantDatabases"
      ],
      "Resource": "*"
    },

    AWS KMS Key:

    • Last Activity At: Timestamp of the most recent key usage of any type

    • Last Viewed: Timestamp of the most recent cryptographic operation that consumed key material (e.g., Decrypt)

    account containing the S3 bucket where audit logs are stored.

    In this scenario, you will need to configure Veza to extract audit logs from the log archive account, and skip extraction for the management account and other accounts in the organization:

    1. Integrate the Log Archive account with Veza, if it is not already. To do so, use Cloud Formation for AWS Organizations, or add an AWS Account Integration.

    2. Ensure that the Log Archive integration trust policy includes a policy for audit log extraction, allowing s3:ListBucket and s3:GetObject on the bucket and log files.

    3. Enable audit logs for the Log Archive account integration. Enable the option "Extract for Organization" for this account.

    4. Enable audit logs for all other accounts in the organization, choosing the "Skip Extraction" option for each account.

    Save the changes to the policy.

    The path contains the AWS account ID. In the example above, <path to files for the Veza account> should have a unique value in each integration trust policy.

    Key and bucket policies

    You will need to update the S3 bucket policy or ACL, and possibly add a key policy, to ensure the Veza service principal (user or role) for each account integration has permission to read the files in S3. The required privileges are:

    • s3:ListBucket on the S3 bucket that CloudTrail logs into

    • s3:GetObject on the files logged by this trail in the bucket

    • kms:Decrypt on the KMS key (if a key is used to encrypt the trail)

    Example bucket policy:

    Example key policy:

    You can find the file and key location under “General details” on the trail details page.

    Testing audit log permissions

    To validate if an integration can access a trail in S3, try to download the file with the user or role that Veza assumes to access AWS:

  • The AWS region the CloudTrail service resides, e.g., us-east-2.

  • For organization trails, check "Extract for Organization" for the management account, and "Skip Extraction" for other accounts in the organization.

  • If your environment uses a log archive account for trail storage, check "Extract for Organization" for that account, and "Skip Extraction" for all other integrations.

  • For account trails, leave both checkboxes unchecked.

    Enabling an organization trail for the owner account.
  • Save your changes. The integration will gather CloudTrail logs to calculate Over-Provisioned Access Scores during the next extraction cycle.

  • Repeat this step for each AWS integration where you want to enable Activity Monitoring.

  • AWS IAM User

    AWS S3 Bucket

    AWS IAM User

    AWS Secrets Manager Secret

    AWS IAM User

    AWS KMS Key

    Okta Identity*

    AWS S3 Bucket

    Okta Identity*

    AWS Secrets Manager Secret

    Okta Identity*

    AWS KMS Key

    Creating a Trail
    integration trust policy
    enable audit logs
    Creating a trail for an organization
    Creating a trail for your AWS account
    Enabling audit logs.
    In this example, the Trail name is 'entra', and the AWS region is 'us-east-2'

    Click on the left menu Applications and Add Application button on the right side to configure a new application.

  • Select Veza - iManage Integration application and click Authentication.

  • Update authentication settings if required, otherwise, click Access.

  • Update Access settings if required, otherwise, click Review.

  • Review before clicking Add application. Enable the application as shown below if not enabled.

  • Click on Finish to add application. Once the application is added successfully, you should be able to see it on the Applications list.

  • as the integration to create and enter the required details:
    • iManage URL: URL for iManage API endpoint for self-managed, including protocol. Can leave empty for default Cloud deployments.

    • iManage Client Identifier: The client ID used to access the iManage API

    • iManage Client Secret: The client Secret used to access the iManage API

    • iManage Username: The username used to access the iManage API

    • iManage Password: The password used to access the iManage API

    iManage User Role and Library Role → iManage Role

  • iManage User Role’s capabilities → iManage Permission

  • email: User's primary email.
  • failed_logins: Indicates the current number of user's failed attempts to sign in.

  • full_name: User’s full name.

  • id: User’s ID.

  • is_external: Indicates the user is an external user. If false, the user is not an external user, also called a regular user.

  • is_locked: Indicates if the user was locked. If true, not allowed to access iManage Work Server. If false, allowed to access iManage Work Server.

  • preferred_library: Indicates a user's preferred library (formerly called a database).

  • imanage_user_type_no: Indicates the type of user as number. 2 indicates Virtual users. 6 indicates Enterprise users. (Custom Property: Yes, Used user_nos)

  • imanage_user_type: Indicates the type of user as string. Allowed values, Virtual users, and Enterprise users. (Custom Property: Yes)

  • library_id: Indicates the library ID of the user. (Custom Property: Yes)

  • database: Indicates the database of the user.

  • is_tierone: Indicates the user has tier1 privilege access. If true, the user has tier1 privilege access. (Custom Property: Yes, Used is_tier1)

  • is_tiertwo: Indicates if the user has tier2 privilege access. (Custom Property: Yes, Used is_tier2)

  • is_tierthree: Indicates if the user has tier3 privilege access. (Custom Property: Yes, Used is_tier3)

  • is_virtual_user: Indicates the user is a virtual user. If true, the user is a virtual user. If false, the user is not a virtual user.

  • system_user: Indicates the user is a system user. If true, the user is a system user. If false, the user is not a system user.

  • super_user: Indicates the user is a superuser. If true, the user is a superuser. If false, the user is not a superuser.

  • user_num: Indicates User Number.

  • enabled: Indicates if the group is enabled or disabled. If true, the group is enabled. If false, the group is disabled.

  • is_external: Indicates if the group is intended for external users. If true, the group is intended for external users. If false, the group is intended for regular users (non-external users).

  • imanage_group_type_no: Indicates the type of group as number. 2 indicates Group for virtual users. 6 indicates Group for enterprise users. (Custom Property: Yes, Used group_nos)

  • imanage_group_type: Indicates the type of group as string. Allowed values, Group for virtual users, Group for enterprise users. (Custom Property: Yes)

  • global_id: Indicates the group global ID. If global id is zero, the current group is library group, else global group.

  • library_id: Indicates the group library ID. (Custom Property: Yes)

  • database: Indicates the database of the group.

  • feature_management
    : Either
    admin
    or
    no_access
    .
  • group_management: Either admin or no_access.

  • role_management: Either admin or no_access.

  • settings_management: Either admin or no_access.

  • user_management: Either admin or no_access.

  • Notes and Supported Entities
    [email protected]
    1. Create a Veza-AWS connector policy

    Whether connecting using an IAM role or IAM user, you will need to create an IAM policy that grants Veza permission to make read-only API calls.

    If your organization uses AWS CloudFormation with Terraform, you can use the following configuration to automate creation of a new policy and role:

    To create the role manually using AWS IAM Console, choose Policies > Create and select the JSON tab. Copy the policy shown below, and give it a name (for example veza-aws-connector):

    Trust Policy for Veza 2025.9.22
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "STS",
          "Effect": "Allow",
          "Action": [
    

    This policy grants the attached principal (IAM user, role, or Insight Point EC2 Instance Profile) the privileges required to discover Organization, IAM, and tags metadata for the AWS account. It enables Veza to gather entities and authorization relationships for:

    • S3 Buckets

    • EC2 Instances

    • RDS Databases (MySQL, PostgreSQL)

    • DocumentDB Clusters and Databases (regular and elastic clusters)

    • Neptune Databases (Global Databases, Clusters, and Instances)

    • Redshift Data Warehouses

    • Systems Manager Parameter Store

    • IAM Identity Providers (both SAML and OIDC)

    • IAM Roles Anywhere (Trust Anchors, Certificate Revocation Lists, and Profiles)

    • AWS Certificate Manager (X.509 certificates)

    • AWS Bedrock (AI agents, foundation models, custom models, knowledge bases, prompts, guardrails)

    To enable discovery of AWS IAM Identity Center entities, Trusted Access needs to be enabled for the service using either the AWS IAM Identity Center console or the AWS Organizations console:

    1. From the AWS Organizations console, navigate to Services.

    2. Choose AWS IAM Identity Center.

    3. Choose Enable trusted access.

    4. Check the box to show the option to enable trusted access without performing additional setup steps.

    5. Type "enable" to confirm the change, then click to enable trusted access.

    See for detailed instructions.

    Notes:

    • Full extraction of Redshift, RDS, and DocumentDB databases requires a local user, which you will need to create and identify in the Veza access policy. For detailed instructions, see the setup guides for RDS MySQL, PostgreSQL, DocumentDB, and AWS Redshift.

    • More details are available on the Administration > Events page and the integration details view when required permissions are unavailable, or credentials are invalid.

    • If you want to limit the extraction of specific AWS services and resources, you can do so when adding the provider to Veza or using the "Edit Integration" menu.

    • Service control policies (SCPs) and organization units (OUs) are discovered only when connecting to an AWS .

    • AWS Certificate Manager Support: Additional IAM permissions (acm:ListCertificates, acm:DescribeCertificate, acm:ListTagsForCertificate) are required to discover and track X.509 certificates used for authentication across AWS services.

    • Enhanced Identity Provider Discovery: The integration now discovers both SAML and OIDC Identity Providers from AWS IAM, providing complete visibility into identity federation configurations.

    • IAM Roles Anywhere: The integration discovers trust anchors, certificate revocation lists, and profiles used for certificate-based authentication, enabling organizations to track workload access from outside AWS.

    See Notes & Supported Entities for more details on the Veza-AWS integration and supported services

    2. Configure AWS discovery

    Using an IAM role

    AWS discovery using an assumed IAM role is the recommended method, especially when you don't need to discover additional, non-AWS-native data sources such as SQL databases or a Trino server. This method is reliable to implement, secure, and doesn't require additional steps to deploy an Insight Point to your cloud.

    The steps below will enable a Veza AWS principal to assume a new role within your organization's AWS account for identity, resource, and authorization discovery.

    You will need the ID of the Veza AWS account the role will apply to. To get this value:

    1. Go to Veza Integrations > Add Integration

    2. Select AWS and add a new AWS account

      • Choose "Assume AWS IAM Role" as the Authentication Method.

      • Enter your actual AWS Account ID and regions you want to discover in the respective fields.

      • For the Role Name and External ID fields, you can use temporary values for now (these will be updated after creating the AWS role).

      • Click "Save". A policy will display the Veza account ID

    Example policy shown in Veza:

    When creating the role in AWS, ensure that the principal AWS account and external ID values match the ones in the Veza-provided policy.

    To create the AWS role, you will need administrator access to the AWS account. Complete the steps below using the AWS Management Console:

    1. Navigate to IAM > Roles. Click “Create a role”.

    2. Select "AWS account" as the trusted entity, then choose "Another AWS account" as the trusted entity type. Provide the Veza AWS account ID retrieved using the steps above, or provided by your support team.

    3. Check the box to require an External ID and give it a unique value. Copy down this External ID, and supply it when adding the AWS account to Veza using the New Cloud Provider wizard.

      • If you've already saved the Veza configuration, verify that the External IDs are the same.

    4. Attach the that will permit Veza to extract information about your AWS account.

    5. Add optional tags, and give the role a name, description, and verify the trusted entity is correct.

    Keep note of the new role's name, as it will be required to finish adding the provider on the Veza Integrations page.

    Using an Insight Point

    Connecting using a role or user will allow Veza to extract information for cloud-native data services using the appropriate APIs (such as AWS S3 and Redshift). However, for data services (for example SQL Server on EC2 Instance, or Oracle on EC2 Instance) that are not cloud-native or not available to external callers, Veza will need to establish connections directly to the entity using an Insight Point deployed to your cloud or local environment.

    If you are connecting the account using an Insight Point, the AWS IAM policy must be updated to enable connection to the Veza ECR repository. Instead of attaching the policy to an IAM user, you will apply the policy to the role assigned to an Insight Point's EC2 instance profile.

    See the full Insight Point instructions for detailed steps. You will need to deploy the Insight Point, and:

    1. Create an AWS IAM role with EC2 as the trusted entity.

    2. Attach the Veza IAM policy to the role.

    3. Assign the role to your Insight Point instance profile.

    Using an IAM user

    From your AWS account dashboard, create an IAM user and attach the appropriate policy:

    1. From the Specify User Details interface, input a user name (such as veza_connector) and click Next.

    2. Select the policy you created earlier, and attach it to the new user.

    3. Once you have created the IAM user, copy the Access Key ID and Secret Access Key (you will need to repeat the previous steps if the key is lost).

    3. Add the AWS account to Veza

    To enable the provider as a new data source for Veza, navigate to Veza Integrations > Add Integration > AWS. Depending on the authentication method you select in Step 2 above, some different information will be required:

    Assuming an AWS IAM Role: This is the recommended method for conducting discovery on AWS and allows Veza to assume an IAM role with the appropriate privileges.

    • Account ID: Enter your AWS Account ID (12-digit number).

    • Name: Provide a display name for this AWS integration in Veza.

    • Role Name: Provide the name of the AWS IAM role you configured with the Veza IAM account as a trusted entity. Use the role name as it appears in the AWS UI (not the full ARN).

    • External ID: This must match the IAM role "trusted entity":

      • If you have created the AWS role, enter the External ID you provided from the AWS console.

      • If you haven't created the role at this point, copy the random identifier that appears here, and provide it as the External ID when adding .

    When you click Save, a policy will display, showing the UUID that will be used as the external ID and the trusted AWS account number. If the values aren't the same, you should copy the policy on this screen, and update the Veza connector policy in AWS to match.

    Using an IAM user Access Key ID / Secret Access Key: While user credentials are easy to generate and configure, this option should be considered less secure than IAM role assumption.

    • Provide the AWS Access Key ID and Secret Access Key for the IAM user created in Step 2.

    Using an Insight Point: Once you have deployed an Insight Point, you can opt to conduct discovery using the IAM role assigned to the Insight Point's EC2 instance profile.

    • Provide a Name to display for the new provider, the AWS Account ID, and the local DB Username.

    • From the Insight Point list, choose the Insight Point associated with the policy to use for discovery.

    AWS configuration fields

    Field
    Details

    Insight Point

    Leave default unless using an Insight Point for discovery.

    Authentication Method

    See options below (assuming an AWS IAM Role is recommended).

    Account ID

    Your AWS account ID (12-digit number).

    Role name

    IAM role to assume.

    External ID

    Role external ID (if assuming an AWS IAM role).

    Regions

    Regions to discover (required).

    You can additionally set allow and deny lists to databases and buckets, or by choosing Limit Services Extracted and selecting the services to enable. See Limiting Extractions for more information.

    Enable Lifecycle Management

    The AWS integration supports Lifecycle Management capabilities for AWS IAM Identity Center, enabling automated user provisioning, deprovisioning, and group membership management across your AWS organization.

    To enable Lifecycle Management for your AWS integration, you will need additional SCIM API permissions beyond the standard read-only permissions required for basic integration. These include permissions for creating, updating, and deleting users and groups in AWS IAM Identity Center.

    Key requirements:

    • AWS IAM Identity Center must be configured for programmatic access

    • Additional IAM permissions for Identity Store operations (create, update, delete users and groups)

    • SCIM API access must be enabled in your AWS IAM Identity Center instance

    To enable Lifecycle Management:

    1. In Veza, go to the Integrations overview

    2. Search for your AWS integration

    3. Check the box to Enable usage for Lifecycle Management

    For detailed configuration instructions, supported actions, and workflow examples, see the AWS IAM Identity Center Lifecycle Management guide.

    Enable Audit Log Extraction

    AWS integrations can process CloudTrail audit logs to enable Activity Monitoring and usage analytics. This requires you to enable audit log extraction in the integration details after saving the configuration. To enable this option, expand the additional actions dropdown menu (three dots), and click Enable Audit Logs:

    Enabling Audit Log Extraction for an AWS integration.
    • CloudTrail Name: The ARN or name of the CloudTrail trail to process (e.g., arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail)

    • CloudTrail Region: The AWS region where the CloudTrail trail is configured

    • Extract for Organization: When enabled, processes CloudTrail logs for all accounts in the AWS Organization (requires Organization management account)

    • Skip Audit Log Extraction: Disable CloudTrail log processing entirely (default: false)

    When enabled, audit log extraction provides:

    • Activity Monitoring: Track user and service activities across AWS resources

    • Usage Metadata: Collect data access patterns for compliance and security analysis

    • Principal Activity Tracking: Monitor IAM user activities and access patterns

    Audit log extraction requires the AUDITLOG_DATA_ACTIVITY feature enabled for your tenant.

    assuming an IAM role
    Insight Point
    connect to AWS as an IAM user
    Automatically Add New AWS Accounts
    Add existing AWS accounts
    8KB
    AWS_Terraform_Veza.tf
    Open
    Bitbucket
  • Jira Cloud

  • Confluence Cloud

  • The integration includes cross-service connections to show relationships between IdP identities, Cloud Admin users and groups, and the local BitBucket, Confluence, or Jira accounts that those users can assume.

    This integration deprecates the original OAA connectors for BitBucket Cloud, Jira, and Confluence. You can now enable these products when configuring the Atlassian Cloud integration, and safely remove the original integrations. You should disable any integration secrets or service accounts that are no longer in use.

    Configuring Atlassian Cloud

    Two sets of credentials are required to enable the integration:

    • An admin API key, used to connect to the Cloud Admin API. See Manage an Organization With Admin APIS for more details.

    • A user API key, used to connect to products such as Jira and Confluence. These are managed on a per-user basis. For more details, see Manage API Tokens for your Atlassian Account

    • Bitbucket OAuth Consumer credentials, required when including Bitbucket in the products to discover. See the Bitbucket OAuth Credentials Setup section below for detailed instructions.

    Why is an administrator key required?

    To provide a complete and accurate view of your users and groups, Veza requires access to Atlassian's User Management and Organizations REST APIs. These APIs contain authorization metadata that is not available using product-level APIs for non-admin users.

    Veza uses the administrator key strictly for read-only purposes. The integration does not perform any administrative actions or make changes within your Atlassian Cloud environment.

    Create a User for the Integration

    We recommend creating a unique user for the integration. The integration user should have read-only permissions to all products to discover, for listing entities and permissions.

    1. Log in to the Admin portal at admin.atlassian.com.

    2. Open the Users List and click Invite Users.

    3. Enter an email address for the invitation.

    4. Grant the user access to the products the integration will discover.

    The user status will change to active once you have accepted the invitation and accessed an Atlassian product.

    See Create, Edit, and Delete Users for additional guidance.

    Retrieve an Admin API Key

    Veza connects to the Cloud Admin APIs to collect information about groups and users.

    1. Log in to admin.atlassian.com.

    2. Go to Settings > API Keys.

    3. Choose Create API key.

    4. Enter an identifying name for API key.

    5. By default, keys expire in one week. To change the expiration date, pick a new Expires on date.

    6. Select Create to save the API key Copy the Organization ID and API key values for configuring the integration on Veza.

    7. Click Done. The key will appear in the list of API keys.

    Retrieve Product API Key for a User

    Atlassian product APIs enable access to individual services, such as Jira or Confluence.

    1. As the integration user, log in to https://id.atlassian.com/manage-profile/security/api-tokens.

    2. Click Create API Token.

    3. Enter a label for the token and click Create.

    4. Copy the token, which will only appear once.

    Bitbucket OAuth Credentials Setup

    To enable Bitbucket discovery within the Atlassian Cloud integration, you need to create an OAuth Consumer in your Bitbucket workspace. This provides the necessary credentials for Veza to access Bitbucket repositories, projects, and user permissions.

    OAuth Consumer vs. App Keys

    Veza recommends using OAuth Consumer credentials for Bitbucket authentication. While legacy App Keys are still supported, OAuth Consumers are the preferred and more secure method. If you have existing App Keys, you should delete them after successfully configuring OAuth Consumer credentials.

    Create an OAuth Consumer

    For more information, see Atlassian's documentation on creating an OAuth consumer.

    1. From your profile avatar in the top-right, select the Bitbucket workspace you want to connect to Veza.

    2. Select Workspace Settings > OAuth consumers (under Apps and Features).

    3. Click the Add Consumer button to create a new OAuth Consumer.

    4. Configure the following parameters for the new Consumer:

      • Name: Enter a descriptive name for the integration (e.g., "Veza Integration")

      • Callback URL: Set to http://localhost (this value is required but not used by the integration)

      • Check the box for This is a private consumer

    5. Under Permissions, check the following boxes:

      • Account - Read

      • Workspace Membership - Read

      • Projects - Read

    Repositories Admin Permission

    The Repositories - Admin permission is required to discover repository permissions by group membership (e.g., when the Developers group has write access). Without Admin permission, Veza will fall back to user-based permission discovery, which may be significantly slower and could encounter timeout issues in larger deployments.

    1. Click Save to create the Consumer.

    2. After the Consumer is created, click on it to view its Key and Secret values.

    3. Copy both the Key and Secret - you'll need these when configuring the integration in Veza.

    Legacy App Keys (Not Recommended)

    Previous versions of the connector utilized user App Keys for authentication. This method is still supported but no longer recommended. If you are using OAuth Consumer credentials, any previous App Keys should be deleted for security purposes.

    Configuring Atlassian Cloud on the Veza Platform

    To enable the integration:

    1. In Veza, go to Integrations and choose Add Integration.

    2. Pick Atlassian Cloud as the integration to add and click Next.

    3. Enter the required information and Save the configuration.

    Field
    Notes

    Insight Point

    Choose whether to use the default data plane or a deployed Insight Point.

    Name

    A friendly name to identify the unique integration.

    Atlassian Url

    Host URL, e.g. veza.atlassian.net.

    Admin API Key

    Admin token from the previous steps.

    Products

    Comma-separated list of products to discover (jira, confluence, bitbucket).

    Product User

    Integration username, e.g. [email protected].

    If you do not enter an admin API key, Veza can still extract data from Jira & Confluence. It will not, however, be able to correlate Jira & Confluence users with users from identity providers.

    | Enable Usage for Lifecycle Management | Toggle to enable Lifecycle Management capabilities |

    Enable Lifecycle Management

    Atlassian Cloud supports automated user lifecycle management including user provisioning, group membership management, and deprovisioning across all Atlassian products (Admin, Jira, Confluence, and Bitbucket).

    To use Atlassian Cloud with Lifecycle Management, you will need the following additional configuration:

    • SCIM URL - The SCIM endpoint URL for your Atlassian organization

    • SCIM Token - Authentication token for user provisioning and deprovisioning operations

    • SCIM Organization ID - Your organization's SCIM identifier

    • Admin API Key - Required for group management and cross-system coordination

    The integration uses Atlassian's SCIM API for user provisioning and deprovisioning, while group membership management uses the Atlassian Cloud Admin API. Note that product_token and product_user are only required if you're also performing discovery operations (viewing Jira projects, Confluence spaces, and Bitbucket repositories) and are not needed for lifecycle management operations.

    For detailed configuration instructions, supported actions, and workflow examples, see the Atlassian Cloud Lifecycle Management guide.

    Notes and Supported Entities

    Atlassian Cloud Admin

    • Atlassian Cloud Tenant

      • tenant_unique_id

    • Atlassian Cloud User

      • account_type

      • account_status

      • access_billable

      • product_access

      • user_type

    Limitations:

    • Admin API access: The integration user must be assigned to Bitbucket as an administrator to discover group permissions on repositories. This is optional. Without admin permission, the connector will discover users' effective permissions, which can be slower and will not indicate when these are derived through group membership.

    • Atlassian Cloud Admin is not able to discover external (unmanaged) users. External users have emails belonging to a domain outside of your organization, added manually to your Atlassian organization.

    • Atlassian and Jira support adding groups to groups to reduce duplication of entitlements, but do not return the details on group assignments within groups via their public API. The integration will discover all users that are members of a group directly or indirectly, but will not know if the user is directly assigned or inherited by group membership.

    Bitbucket Cloud

    • Bitbucket Cloud Project

      • name Project name

      • key Project Key

      • description Project Description

      • is_private True if the project is private

      • has_publicly_visible_repos List of publicly visible repos

    • Bitbucket Cloud Repo

      • name

      • is_private

      • slug

    • Bitbucket Cloud Group

      • name

    • Bitbucket Cloud User

      • key User ID.

      • emailAddress User's email address.

      • name

    • Bitbucket Cloud Role

    • project_key Key of the project for the respective role

    Branch Protection Policies

    For Bitbucket Cloud repositories, Veza collects branch protection policies on the default branch. The property default_branch_protected will be True if any type of branch protection is configured. Additionally, the following boolean properties are True indicating the specific type of policy:

    • allow_auto_merge_when_builds_pass

    • require_passing_builds_to_merge

    • enforce_merge_checks

    • require_approvals_to_merge

    • require_default_reviewer_approvals_to_merge

    • require_tasks_to_be_completed

    Gathering branch protection policies will increase extraction time. You can disable this option when configuring the Atlassian Cloud integration.

    Confluence Cloud

    • Confluence User

      • account_type

      • email

      • external_collaborator

    • Confluence Space

      • type

      • status

      • id

    Jira Cloud

    • Jira Group

    • Jira Instance

    • Jira Project

    • Jira Project Role (shown in Veza as <project name> - <role name>)

    • Jira User

    Notes:

    • Due to Atlassian API limitations, the integration cannot currently retrieve Jira user attributes: createdAt, lastLoginAt, deactivatedAt, and lastChangeAt.

    • As roles are defined on a per-project basis, and role names can be duplicated across a Jira Cloud instance, project roles are translated as <project name> - <role name>

    Visibility into repository access controls and permission mappings
  • Project-level access management insights

  • Role-based access control (RBAC) assessment

  • Identification of admin privileges and effective permissions

  • Mapping repository permissions to canonical access types

  • Tracking shared repository access across projects

  • Prerequisites

    • JFrog Artifactory instance (validated with Trial License 7.98.9 Rev 79809900)

    • Admin access to generate API tokens

    • Network connectivity between your Veza platform or Insight Point and your Artifactory instance

    • The integration currently supports only self-hosted Artifactory instances.

    Artifactory Configuration

    Generating an Access Token

    1. Log in to JFrog Artifactory as an administrator

    2. Under "User Management," select "Access Tokens"

      Navigate to Access Tokens
    3. Click the "Generate Token" button

      Create a token
    4. Fill out the following fields:

      • Token scope: Admin (token with admin permission)

      • Description: Brief description of the token's purpose

      • Expires time: Use "Never" or choose a shorter lifespan. The token will need to be regenerated when it expires.

      • Service: Choose which product the token should have access to (Artifactory)

    5. Click the "Generate" button

    6. Copy the full token for configuring the integration in Veza

    Note: Only users with Admin privileges can generate Access Tokens.

    See the official Artifactory API documentation for more details.

    Veza Platform Configuration

    Adding the Integration

    1. In Veza, go to the Integrations page

    2. Click Add Integration and search for Artifactory

    3. Click on it and click Next to add an integration

    4. Configure the integration settings (see Configuration Fields below)

    5. Click Create Integration to save the configuration

    Configuration Fields

    Field
    Description
    Example

    Hostname

    The fully qualified hostname of your Artifactory instance, including the port number. This is the same URL you use to access the Artifactory web interface.

    artifactory.company.com:443

    Token

    The authentication token generated from Artifactory. Must be an admin token or a token with sufficient permissions to read users, groups, permissions, and metadata.

    eyJ2ZXIiOiIyIiwidH...

    Gather User Details

    When enabled, Veza will collect extended user attributes.

    Supported Entities

    Users

    Attribute
    Description

    name

    Name of the user

    id

    Unique identifier for the user

    email

    User's email address

    last_login_at

    Last login timestamp

    admin

    Boolean flag indicating admin status. True if user is admin, false by default

    realm

    String value representing the authentication realm for the user (e.g., internal, SAML, OAuth, LDAP, crowd, SCIM)

    Note: The attributes disable_ui_access, effective_admin, profile_updatable, internal_password_disabled, email, and last_login_at are only populated when Gather User Details is enabled for the integration.

    Groups

    Attribute
    Description

    name

    Name of the group

    id

    Unique identifier for the group

    auto_join

    Boolean flag indicating if new users automatically join this group. False by default

    admin_privileges

    Boolean flag indicating if the group has admin privileges. False by default

    realm

    Authentication realm for the group (e.g., internal, SAML, LDAP, crowd, SCIM)

    description

    Descriptive text about the group's purpose

    Roles

    Attribute
    Description

    name

    Name of the role

    id

    Unique identifier for the role

    description

    Descriptive text about the role's purpose

    type

    Classification of the role (PREDEFINED, CUSTOM, CUSTOM_GLOBAL and ADMIN)

    Repositories

    Attribute
    Description

    name

    Name of the repository

    id

    Unique identifier for the repository

    description

    Repository description.

    type

    Classification of repository type ("LOCAL", "REMOTE", or "DISTRIBUTION")

    package_type

    Artifact format type (e.g., Maven, npm, Docker) used for optimized storage, management, and handling of dependencies

    repository_owner

    The project key that owns the repository.

    Projects

    Attribute
    Description

    name

    Name of the project

    id

    Unique identifier for the project

    manage_members

    Boolean flag indicating if project has member management privileges

    manage_resources

    Boolean flag indicating if project has resource management privileges

    index_resources

    Boolean flag indicating if project has resource indexing privileges

    soft_limit

    Boolean flag indicating if project has soft limit privileges

    Permission Mappings

    Repository-Level Permissions

    Artifactory Permission
    Veza Mapped Permissions

    DELETE

    DataDelete, MetadataDelete

    DEPLOY/CACHE

    NonData

    MANAGE

    DataRead, MetadataRead, DataWrite, MetadataWrite, DataCreate, MetadataCreate, DataDelete, MetadataDelete

    READ

    DataRead, MetadataRead

    SCAN

    DataRead, MetadataRead

    ANNOTATE

    DataRead, MetadataRead, DataWrite, MetadataWrite

    Project-Level Permissions

    Artifactory Permission
    Veza Mapped Permissions

    READ_REPOSITORY

    DataRead, MetadataRead

    ANNOTATE_REPOSITORY

    DataRead, MetadataRead, DataWrite, MetadataWrite

    DEPLOY_CACHE_REPOSITORY

    DataWrite, MetadataWrite

    DELETE_OVERWRITE_REPOSITORY

    DataDelete, MetadataDelete

    MANAGE_XRAY_MD_REPOSITORY

    DataRead, MetadataRead, DataWrite, MetadataWrite, DataCreate, MetadataCreate, DataDelete, MetadataDelete

    Permission Categories

    Permission Category
    Description

    Release Bundle Management

    Permissions for managing release bundles including read, create, distribute, and delete operations

    Build Management

    Permissions for build operations including read, deploy, and delete capabilities

    Pipeline Operations

    Permissions for managing pipeline sources, integrations, and triggers

    Security Controls

    Permissions for managing security settings, policies, and watches

    Member Management

    Permissions for managing project membership and access control

    Configuring NetSuite

    Authentication is done through an Oauth2 workflow. The integration uses a JWT exchange based on a client ID and certificate to exchange for a bearer token. The bearer token is used for all the SuiteQL API calls.

    Follow these steps to create the credentials Veza will use for NetSuite discovery:

    Ensure that REST API and Oauth2 are enabled

    1. Navigate to Setup -> Company -> Enabled Features

    2. Under the Analytics tab:

      • In the SuiteAnalytics Workbook section, enable SUITEANALYTICS WORKBOOK if it is not enabled.

    3. Under the SuiteCloud tab:

      • In the SuiteTalk (Web Services) section, enable REST WEB SERVICES if it is not enabled.

      • In the Manage Authentication section, enable Oauth2

    Create a Role for Veza discovery

    1. Navigate to Setup -> Users/Roles -> Manage Roles and create a new role

    2. Provide a name for the role such as "Veza Discovery"

    3. Under Subsidiary Restrictions set Accessible Subsidiaries to All Subsidiaries

    4. Assign the following permissions to the role:

      • Reports

        • SuiteAnalytics Workbook: Edit

      • Lists

    Assign the role to a user

    The user can be an existing user, or you can create a user for Veza discovery. To review users' roles, go to Setup > Users/Roles > Manage Users.

    Create an integration

    1. Navigate to Setup > Integration > Manage Integrations and create a new integration

    2. Provide a name for the integration such as "Veza Discover" and an optional description

    3. Under the Oauth2 section enable CLIENT CREDENTIALS (MACHINE TO MACHINE) GRANT and Scope REST Web Services

    4. After saving the integration, a consumer key and secret will be displayed. Save these values, which only appear once. New credentials can be created by editing the integration and selecting "Reset Credentials."

    Configure client credentials

    1. Generate a new x509 Certificate to use.

      1. Use the following command to generate a new RSA certificate:

      openssl req -new -x509 -newkey rsa:4096 -days 365 -keyout private.pem -sigopt rsa_padding_mode:pss -sha256 -sigopt rsa_pss_saltlen:64 -out public.pem -nodes

      The certificate expires after the specified number of days.

    2. Go to Setup > Integration > Oauth 2.0 Client Credentials (M2M)

      • Create a new set of credentials

      • Select the desired User for the Entity, the created Veza Role and the new Integration for Application

      • Upload the public portion of the Certificate public.pem

    Configuring NetSuite on the Veza Platform

    ​To enable the NetSuite integration in Veza you will need the following:​

    1. In Veza, open the Integrations page.

    2. Click Add New and pick NetSuite as the type of integration to add

    3. Enter the required information and Save the configuration

      • NetSuite instance ID: this is the first part of your NetSuite URL, usually a seven digit number. For sandbox deployments include the -SBXX.

      • Consumer Key from the earlier steps

      • Certificate ID and private portion of the certificate from the credentials configuration

      • Certificate Key upload the private portion of the certificate private.pem

      • Permission By Name toggle to display permissions by full name e.g. Access Token Management - Full instead of shorthand key ADMI_ACCESSTOKENMANAGEMENT - Full

    Notes and Supported Entities

    The integration utilizes NetSuite's REST API and SuiteQL (SQL like query language) to collect necessary information about Users, Roles, and NetSuite Subsidiaries (resources). Roles can be assigned based on Subsidiary.

    NetSuite User

    Users are individuals with access to a NetSuite account. Users are typically employees, but can also represent vendors, partners, or customers.

    Veza only gathers NetSuite users with the capability to login to NetSuite.

    Attribute
    Notes

    is_active

    Boolean True if user account is active

    email

    User email

    external_id

    User's external ID for SSO

    supervisor_id

    NetSuite ID of the user's supervisor

    title

    User's title

    give_access

    Boolean if the user has access to NetSuite

    NetSuite Role

    Roles are configurations defining the level of access and sets of permissions users can have.

    Role Permission Display Format: By default, role permissions in Veza are displayed using the shorthand permission key appended with the permission level. For example: ADMI_ACCOUNTING - Full, LIST_ACCOUNT - View, or TRAN_CUSTINVC - Edit.

    Enabling the optional Permission By Name configuration setting will instead display the full permission name with the level appended. For example: Accounting Management - Full, Accounts - View, or Invoice - Edit.

    Permission levels in NetSuite include: None, View, Create, Edit, and Full. These levels define the degree of access granted for each permission.

    Attribute
    Notes

    accessible_subsidiaries

    Subsidiary access type for role, e.g. "all", "own", "selected", "active"

    crosssubsidiary_record_viewing

    Boolean if cross-subsidiary record viewing is enabled for role

    is_active

    Boolean if role is active

    is_sso_only

    NetSuite configuration if role requires users from in-bound SSO only

    NetSuite Subsidiary Resource

    Subsidiaries represent separate, hierarchical legal entities (distinct companies) within NetSuite.

    Attribute
    Notes

    is_active

    Boolean for subsidiary active status

    is_elimination

    Boolean if subsidiary is an elimination subsidiary

    parent_id

    NetSuite ID of parent subsidiary

    country

    Country designation for subsidiary

    full_name

    Subsidiary full name which includes all parent names

    Limitations

    NetSuite Support Center Roles

    The NetSuite integration does not support discovery of NetSuite Support Center (Basic) and NetSuite Support Center roles. These roles are managed separately within NetSuite outside of the standard role management system and are not accessible via the NetSuite REST API that Veza uses for integration.

    For more information about these special roles, see NetSuite's documentation on support center roles.

    Note: Organizations using these Support Center roles will need to implement a manual review process for users assigned to these roles, as they will not appear in Veza's discovery or access reviews.

    notes and supported entities

    Create rules to trigger downstream actions when Cassandra entities are added, removed, or modified.

  • Map external identities within your identity provider to Cassandra roles they can assume via SSO.

  • This document provides the requirements and steps to configure the integration. See Notes and Supported Entities for more details about the metadata collected by Veza.

    Configuring Apache Cassandra

    Requirements

    • To support the roles and permission grants described in this document, the following configurations are required in your cassandra.yaml file:

      • authenticator: PasswordAuthenticator

      • authorizer: CassandraAuthorizer

    • An external is recommended for secure communication with the Cassandra host in production environments. You can use the internal Insight Point for testing.

    Commands to Create a Role with Minimal Permissions

    1. Log in to the Cassandra database as a superuser, or as a user with permission to create roles.

    2. Run the following commands to create a new role using password authentication. Replace and with actual values:

    For more details on creating a role, see Security in the official Cassandra documentation.

    Configuring Apache Cassandra on the Veza Platform

    To configure the integration in Veza:

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and search for Apache Cassandra. Select it and click Next to open the configuration editor.

    3. Enter the required information.

    4. Click Create Integration to save the configuration.

    Field
    Notes

    Name

    A friendly name to identify the unique integration.

    Insight Point

    Choose whether to connect using the default data plane or a deployed Insight Point.

    Host

    IP address of the Cassandra host.

    Port

    Port to use for the connection.

    Username

    Integration role password.

    Password

    Integration role name.

    Notes and Supported Entities

    Cassandra Database

    The primary container for all roles and keyspaces. A database serves as the top-level organizational unit within Cassandra, holding the structures necessary for data storage and access control.

    Cassandra Role

    A role in Cassandra represents a set of permissions that can be granted to perform various operations on the database.

    • Unlike traditional user accounts, Cassandra uses roles to define access control, with each role potentially inheriting permissions from other roles.

    • Roles are hierarchical; assigning one role to another allows the grantee to inherit the permissions of the granted role.

    • Login capabilities are not inherited and must be explicitly assigned.

    • Roles can have superuser status, granting them unrestricted access to all operations within Cassandra. This status can be inherited by other roles.

    Role Attributes

    Can Login

    True if the role is allowed to log in.

    Is Superuser

    True if the role has superuser privileges.

    Identity Type

    Veza sets this field to "Human" by default. You can add enrichment rules to mark certain roles as "Non-Human."

    Is Active

    Veza sets this field to "True" by default.

    Cassandra Role Effective Permission

    Represents the cumulative permissions that a role has, either directly assigned or inherited from other roles. These permissions dictate what actions the role can perform on the Cassandra Database or on other roles.

    Cassandra Table Effective Permission

    Represents the permissions that govern access to specific tables and keyspaces. These permissions determine what operations a role can perform on data stored within the tables of a keyspace, such as reading or modifying the data.

    Cassandra Keyspace

    A keyspace is a namespace that contains tables in Cassandra. It is a logical grouping that helps organize data within the database, defining attributes such as replication strategies and the number of replicas for data stored in the tables it contains.

    Cassandra Table

    A table is a collection of data organized into rows and columns, similar to a table in a relational database. Tables reside within a keyspace and store the actual data within the Cassandra database.

    Notes & Supported Entities

    Supported entity types and more information about the Veza-Azure connector.

    Veza integrates with Azure to parse service and resource metadata using Microsoft Graph APIs, connecting as an Enterprise Application granted read-only permissions. Veza creates entities in the data catalog to represent the discovered tenants, subscriptions, resources, and identities.

    You can interact with the catalog using Veza's search interfaces, or get immediate insights using built-in reporting queries.

    See the sections in this document for more information about the supported entity types for Microsoft Azure:

    User Risk Information

    Veza can collect and display risk information for users in your Azure AD tenant. This includes the user's risk level, risk state, risk details, and when the risk status was last updated. This feature requires a Microsoft Entra ID P2 license and the IdentityRiskyUser.Read.All permission for the Microsoft Graph API.

    The following risk-related properties are collected:

    • riskLevel: Indicates the level of risk for the user (low, medium, high, hidden, none)

    • riskState: Shows the current state of the user's risk (none, confirmedSafe, remediated, dismissed, atRisk, confirmedCompromised)

    • riskDetail: Provides detailed information about the risk state

    This information can help identify and monitor potentially compromised or risky user accounts in your Azure AD environment.

    Azure CosmosDB Support

    The integration supports Azure CosmosDB NoSQL databases, for visibility into database accounts, role assignments, and access patterns. The integration discovers:

    • CosmosDB Account Services

    • Database Accounts

    • SQL Role Definitions and Assignments

    • Effective Permissions

    CosmosDB extraction is disabled by default. To enable this functionality:

    1. When configuring the Azure integration, select "Limited services" under Limit Services

    2. In the services selection list, choose "Azure CosmosDB" along with all other services you want to extract.

    Authorization & Access

    CosmosDB uses three authorization mechanisms:

    • Role-Based Access Control (RBAC) with Azure Active Directory

    • Primary/Secondary Keys

    • Resource Tokens

    Veza focuses on RBAC permissions to show connections between Azure AD identities and CosmosDB resources. This provides visibility into:

    • Which users and groups have access to CosmosDB accounts and databases

    • How these permissions are assigned through role memberships

    • The effective permissions users have on CosmosDB resources

    Scope & Limitations

    • Only CosmosDB NoSQL (core) API accounts are supported at present

    • Container-level resources and permissions are not included in extraction

    • Database-level users and permissions typically used for application end-users are not extracted

    Required Permissions

    The Veza service principal needs the Cosmos DB Account Reader role for extraction, which provides access to:

    • Microsoft.DocumentDB/databaseAccounts/read

    • Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read

    • Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read

    These permissions allow Veza to discover core CosmosDB resources. No additional Microsoft Graph API permissions are required beyond the standard set used for Azure integration.

    Azure RBAC

    • Azure Subscription

    • Azure Tenant

    • Azure Management Group

    • Azure Resource Group

    Azure Cloud Infrastructure

    • Azure Infrastructure Service

    • Azure Virtual Machine

    • Azure Virtual Network

    • Network Security Group

    Azure AD

    AzureAD entities appear on left in Access Graph results, and can have federated access (cross-service connections) to external resources such as Snowflake tables or AWS S3 buckets.

    If Veza cannot automatically detect your single sign-on configuration, you can add a to correlate Azure AD users with local accounts in other integrations.

    • Azure AD Domain

    • Azure AD User

    • Azure AD Group

    • Azure AD Role

    An Azure AD Premium P1/P2 license is required to gather Azure AD User last login dates. The Veza integration must also have the AuditLog.Read.All graph permission.

    If your organization uses Azure AD as an identity provider, but no other services, you might want to to skip extracting unnecessary resources.

    SharePoint Online

    To enable optional discovery of SharePoint Online, you will need to upload a valid LDAP certificate and ensure the service account has the required API permissions. See for more details.

    • SharePoint Online (service)

    • SharePoint User

    • SharePoint Group

    • SharePoint Site

    Storage

    • Azure Blob Service

    • Azure Blob Container

    • Datalake Filesystem

    • Datalake Directory

    Azure Data Lake

    No additional configuration is needed to discover Azure Data Lake Storage (ADLS). You can enable or disable ADLS as a data source using the provider configuration menu for the Azure tenant Select Services to Enable.

    • ADLS Gen. 1 is not supported. The max directory extraction depth is 2 levels.

    • Storage accounts have new properties: allowBlobPublicAcccess, allowSharedKeyAccess (default value null is equivalent to false), is_adls_gen2_enabled

    Azure SQL

    To collect granular authorization for each Azure SQL database, you will need to create a local SQL user that Veza can use to execute read-only queries. See for instructions to create a SQL database user for Veza.

    • SQL Server Service

    • SQL Server Instance

    • SQL Server Login

    • SQL Server Role

    Microsoft Intune

    Microsoft Intune requires .

    • Intune Managed Device

    • Intune Role Assignment

    • Intune Role

    • Intune Resource Action

    Microsoft Teams

    The Azure integration can discover teams, channels, and guest users for Microsoft Teams, providing visibility into your Azure AD user and group permissions on shared resources, and access for external organization users.

    Required permissions:

    • Team.ReadBasic.All

    • TeamMember.Read.All

    • Channel.ReadBasic.All

    Supported entities:

    • Team

    • Channel

    • External Organization User

      • Represents a team or channel member from an external organization, which might not exist as a discovered Azure AD User.

    Note that the following metadata is not available from the current version of Graph API:

    • Membership Settings For Shared And Private Channels

    • Public Channel Moderators

    Microsoft Copilot Studio

    Microsoft Copilot Studio integration discovers AI bots (Copilots) and their components within Power Platform environments. This integration requires Dynamics 365 environments to be configured.

    Prerequisites:

    • Dynamics 365 environments must be configured in the Azure integration

    • The service principal requires Dynamics CRM API access with user_impersonation scope

    Supported entities:

    • Microsoft Copilot Studio Bot

    • Microsoft Copilot Studio Topic

    • Microsoft Copilot Studio Action

    • Microsoft Copilot Studio Custom GPT

    The integration maps permissions through Azure Dynamics 365 security roles, providing visibility into who can access, modify, or invoke conversational AI bots. Both system-level permissions (Owner, Service Principal) and role-based access control through Dynamics 365 security roles with depth-level scoping (Global/Deep/Local/Basic) are supported.

    Microsoft Dynamics 365 CRM

    Configuring the Veza integration for Microsoft Dynamics 365 CRM

    Veza's integration with Microsoft Dynamics 365 CRM allows you to discover and visualize permissions data from your Dynamics 365 CRM environments, including Business Units, Users, Teams, Application Users, and Security Roles. This integration shows connections between Azure AD Users, Groups, and Service Principals, and the permissions they can assume within Dynamics 365 CRM.

    Prerequisites

    Before setting up the Dynamics 365 CRM integration:

    1. Complete the Microsoft Azure integration guide. The integration will use the enterprise application created during setup.

    Finding the Dynamics 365 CRM Environment URL

    When configuring the Dynamics 365 CRM integration, you must provide the correct URL, which can be found on the organizations page:

    1. Log in to

    2. Click on Environments

    3. Select the Environment you are integrating

    4. Locate the URL shown under the Environment URL field (the top field)

    Important: URLs must include the https:// protocol and must NOT include any trailing slashes at the end. For example, use https://org1.crm.dynamics.com not https://org1.crm.dynamics.com/.

    Grant Azure AD Enterprise Application access to Dynamics 365 CRM

    In order for Veza to extract Dynamics 365 CRM data, you need to grant your Azure AD Enterprise Application access to the Dynamics 365 environments:

    1. Visit and choose the environment to connect to

    2. Go to Settings > Users + Permissions > Application Users and click New app user

    3. Select the Microsoft Azure AD enterprise application you created during Azure integration setup

    4. Pick the Business unit and assign a Service Reader

    Enabling Enterprise App to access your Dynamics 365 CRM Environment does not use a paid license.

    Configure Dynamics 365 CRM in Veza

    After setting up the necessary permissions:

    1. Log in to Veza and navigate to Integrations

    2. Edit your existing Microsoft Azure integration (or add a new one)

    3. In the Dynamics 365 CRM Environments field, enter a comma-separated list of environments to discover

      • Example: https://org1.crm.dynamics.com,https://org2.crm.dynamics.com

    Integration Architecture

    The Dynamics 365 CRM integration operates as part of the Microsoft Azure integration rather than as a standalone connector. It leverages the same Enterprise Application credentials used for the Azure integration to access Dynamics 365 CRM environments.

    The integration discovers organizational structure, security roles, and permission assignments within Dynamics 365 CRM environments and maps them to Azure AD identities. This allows you to visualize which Azure AD users, groups, and applications have access to Dynamics 365 CRM resources.

    Supported Entities and Attributes

    Veza discovers the following resources and permissions in Dynamics 365 CRM:

    Environment

    The Dynamics 365 CRM environment serves as the top-level container for all CRM resources.

    • Type: Dynamics365Environment

    • Key Properties:

      • environment_url - The URL used to access the environment

    Business Units

    Business Units are organizational divisions that structure a company within Dynamics 365, separating access to business data while sharing core information.

    • Type: Dynamics365BusinessUnit

    • Key Properties:

      • cost_center - Cost center associated with the business unit

    Users

    Users represent people who access the Dynamics 365 system, mapped to Azure AD accounts, with permissions defined by their security roles and business unit assignments.

    • Type: Dynamics365User

    • Key Properties:

      • access_mode - User's access mode (read-write, admin, etc.)

    Teams

    Teams are groups of users who share common access permissions, providing a way to manage access across business functions or project boundaries.

    • Type: Dynamics365Team

    • Key Properties:

      • azure_ad_object_id - Azure AD object ID for teams mapped to Azure AD groups

    Application Users

    Application Users represent non-interactive service accounts or applications that need programmatic access to Dynamics 365 data using service principals.

    • Type: Dynamics365ApplicationUser

    • Key Properties:

      • application_user_id - Unique identifier for the application user

    Security Roles

    Security Roles define permission sets that control which actions users can perform on different record types, determining create, read, write, and delete access levels.

    • Type: Dynamics365SecurityRole

    • Key Properties:

      • is_inherited - Whether the security role is inherited

    Relationship Types

    The Dynamics 365 CRM integration discovers the following relationship types:

    Relationship
    Description

    Technical Limitations

    • The integration currently does not support custom entity types in Dynamics 365 CRM

    • Field-level security permissions are not currently extracted

    • Limited to API-accessible security metadata; does not include permissions managed through custom code

    Troubleshooting

    If you encounter issues connecting to your Dynamics 365 CRM environment:

    1. Verify the URL is formatted correctly with https:// and no trailing /

    2. Confirm the Azure AD Enterprise Application has been properly set up as an Application User in Dynamics 365

    3. Ensure the Application User has at least the Service Reader security role

    For more details about managing application users in Power Platform, see the Microsoft documentation:

    Oracle HCM

    Configuring the Veza integration for Oracle Human Capital Management (HCM)

    This integration is designed for Lifecycle Management workflows and provides worker information only.

    For access visibility and user role insights, use the , which discovers user access across Fusion Cloud infrastructure, including HCM.

    Oracle Database

    Configuring the Veza integration for Oracle Database.

    Overview

    The Veza integration for Oracle Database connects to a standalone Oracle deployment to discover Databases, Object Privilege Grants, Roles, Schemas, Users, and Tables. Veza connects as a local user to discover authorization entities and metadata within the root database and any container databases and pluggable databases in a multi-tenant configuration. After configuring the integration, you can:

    • Review effective and system-level permissions for users with access to the Oracle database, schemas, and tables.

    LDAP Integration Reference

    Detailed reference information for LDAP integration entities, schema variations, and limitations.

    Supported LDAP Implementations

    The integration is designed to work with any LDAPv3-compliant directory server, including:

    • OpenLDAP - Open-source LDAP implementation

    {
      "Sid": "CloudTrail",
      "Effect": "Allow",
      "Action": [
      "cloudtrail:GetTrail"
      ],
      "Resource": "*"
    }
    {
      "Sid": "CloudTrail",
      "Effect": "Allow",
      "Action": [
        "cloudtrail:GetTrail"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CloudTrail-S3",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::<bucket name>/AWSLogs/<organization id>/*",
        "arn:aws:s3:::<bucket name>"
      ]
    }
    {
      "Sid": "CloudTrail-S3",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
         "arn:aws:s3:::<bucket name>/AWSLogs/<path to the files for the veza account>/*",
         "arn:aws:s3:::<bucket name>"
      ]
    }
    {
      "Sid": "sid",
      "Effect": "Allow",
      "Principal": {
        "AWS": "<ARN of the Veza user or role>"
      },
      "Action": [
        "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::<bucket name>/AWSLogs/<path to the files for the veza account>/*",
    }
    {
      "Sid": "sid",
      "Effect": "Allow",
      "Principal": {
        "AWS": "<ARN of the Veza user or role>"
      },
      "Action": [
        "s3:ListBucket",
      ],
      "Resource": [
        "arn:aws:s3:::<bucket name>"
      ]
    }
    {
      "Sid": "sid",
      "Effect": "Allow",
      "Principal": {
        "AWS": "<ARN of the Veza user or role>"
      },
      "Action": "kms:Decrypt",
      "Resource": "<the key ARN>"
    }
    aws s3api get-object --bucket <the S3 bucket for the trail> --key <any log file in the bucket> <path to save the file>
    To: [email protected]
    Subject: Veza – iManage Integration for <CompanyName> in cloudimanage.com
    
    Body: Please create a new Veza – iManage Integration application for <CompanyName> in cloudimanage.com
    Name: Veza – iManage Integration
    Customer Name: ______
    Customer/Tenant ID: ______
    Redirect URL (if applicable): ______
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::[[ACCOUNT_ID]]:role/[[TENANT_ID]]-insight-point"
          }
        }
      ]
    }
    CREATE ROLE <ROLENAME> WITH PASSWORD = <PASSWORD> AND LOGIN = true;
    GRANT SELECT ON system_schema.keyspaces TO <ROLENAME>;
    GRANT SELECT ON system_schema.tables TO <ROLENAME>;
    GRANT SELECT ON system_auth.roles TO <ROLENAME>;
    GRANT SELECT ON system_auth.role_permissions TO <ROLENAME>;

    Repositories - Admin

  • project_key

  • fork_policy

  • default_branch_protected

  • User's name
  • displayName User's display name

  • active True if the user is an active user

  • deleted True if user deleted

  • unlicensed_access

  • anonymous_access

  • Product Token

    User API token from the previous steps.

    Bitbucket OAuth Key

    OAuth Consumer Key from the Bitbucket OAuth Consumer setup (required when bitbucket is included in Products).

    Bitbucket OAuth Secret

    OAuth Consumer Secret from the Bitbucket OAuth Consumer setup (required when bitbucket is included in Products).

    Workspace

    Bitbucket workspace name (required when bitbucket is included in Products). This should match the workspace name shown in your Bitbucket login URL.

    Skip Branch Protection Discovery

    Optionally omit extraction of branch protection policies

    Employee Record: View

  • Employees: View

  • Subsidiaries: View

  • Setup

    • Bulk Manage Roles: Full

    • OAuth 2.0 Authorized Applications Management

    • Log in using OAuth 2.0 Access Tokens

    • REST Web Services: Full

    • View Login Audit Trail: Full

  • After creating the credentials, note the Certificate ID from the display table​

    subsidiary_id

    NetSuite ID number of User's Subsidiary

    subsidiary

    User's subsidiary name

    created_at

    Creation time for employee record

    last_login_at

    Date of last successful User login to NetSuite from Audit Trail

    Insight Point

    riskLastUpdatedDateTime: Indicates when the user's risk status was last updated

    Database Instances
    Microsoft.DocumentDB/databaseAccounts/databases/read

    Azure Managed Identity

  • Azure Role

  • Azure Classic Administrator

  • Azure Deny Assignment

  • Azure Role Assignment

  • Azure RBAC Effective Permission

  • Azure Key Vault

  • Network Interface Card

  • Azure Subnet

  • Azure AD Enterprise Application

  • Azure AD App Role

  • Azure AD Effective Permission

  • SharePoint Library

  • SharePoint Folder

  • SharePoint Effective Permission

  • Storage containers now indicate if
    publicAccess
    is enabled
  • If a filesystem or directory has an access control list, the full ACL string is shown as a property when viewing node details

  • ChannelMember.Read.All
  • User.Read.All

  • Microsoft Copilot Studio Knowledge Source
  • Microsoft Copilot Studio AI Model

  • Microsoft Copilot Studio External API

  • Microsoft Copilot Studio Power Automate Flow

  • custom identity mapping
    set limits
    SharePoint Online
    Azure SQL
    additional Microsoft Graph API permissions

    Copy the full URL which should look like: https://orgXXXXXXX.crm.dynamics.com

    security role to enable read access
  • Optionally add other security roles necessary for accessing the Dynamics 365 environment

  • Confirm with Create

  • Addresses must include the https:// protocol and omit any trailing /

  • Save the configuration.

  • Monitor the extraction progress in the Integrations dashboard

  • Verify successful extraction by checking that Dynamics 365 CRM entities appear in search results

  • environment_id - Unique identifier for the environment
  • environment_region - Geographic region where the environment is hosted

  • datacenter_id - Identifier for the datacenter hosting the environment

  • organization_version - Version of the Dynamics 365 organization

  • organization_id - Unique identifier for the organization

  • tenant_id - Azure AD tenant ID associated with the environment

  • description - Description of the business unit
  • disabled_reason - Reason for disabling the business unit (if applicable)

  • division_name - Name of the business division

  • website_url - URL of the business unit's website

  • workflow_suspended - Whether workflows are suspended for this business unit

  • is_disabled - Whether the business unit is disabled

  • created_at - When the business unit was created

  • updated_at - When the business unit was last updated

  • application_id - Associated application ID (if applicable)
  • azure_ad_object_id - Azure AD object ID for the user

  • user_license_type - Type of license assigned to the user

  • on_prem_license_type - On-premises license type (if applicable)

  • disabled_reason - Reason for disabling the user (if applicable)

  • display_in_service_views - Whether the user appears in service views

  • domain_name - Domain name for the user

  • primary_email_status - Status of the user's primary email

  • employee_id - Employee ID for the user

  • invitation_status - Status of the user's invitation

  • integration_user_mode - Whether the user is an integration user

  • is_licensed - Whether the user has a license

  • is_synced_with_directory - Whether the user is synced with Azure AD

  • job_title - User's job title

  • outgoing_email_delivery_method - Method for delivering outgoing emails

  • owner_id - ID of the owner of this user record

  • personal_email - User's personal email address

  • setup_user - Whether the user is a setup user

  • windows_live_id - Windows Live ID for the user

  • business_unit_id - ID of the business unit the user belongs to

  • hierarchy_position - User's position in the organizational hierarchy

  • parent_user_id - ID of the user's parent in the hierarchy

  • organization_id - ID of the organization the user belongs to

  • email - User's primary email address

  • first_name - User's first name

  • last_name - User's last name

  • administrator_id - ID of the team administrator
  • description - Description of the team

  • email - Team's email address

  • is_default - Whether this is a default team

  • is_sas_token_set - Whether a SAS token is set for the team

  • membership_type - Type of team membership

  • business_unit_id - ID of the business unit the team belongs to

  • organization_id - ID of the organization the team belongs to

  • owner_id - ID of the team owner

  • is_system_managed - Whether the team is system-managed

  • team_type - Type of team

  • created_at - When the team was created

  • updated_at - When the team was last updated

  • application_type - Type of application
  • business_unit_id - ID of the business unit the application user belongs to

  • can_impersonate_system_user - Whether the application can impersonate system users

  • component_state - State of the application component

  • is_managed - Whether the application user is managed

  • solution_id - ID of the solution associated with the application

  • state_code - Code representing the application state

  • status_code - Code representing the application status

  • created_at - When the application user was created

  • updated_at - When the application user was last updated

  • is_managed - Whether the security role is managed
  • solution_id - ID of the solution associated with the role

  • business_unit_id - ID of the business unit the role belongs to

  • organization_id - ID of the organization the role belongs to

  • created_at - When the security role was created

  • updated_at - When the security role was last updated

  • Has role assignment

    Connects Users/Teams to their assigned Security Roles

    Assumes user

    Maps Azure AD users to their corresponding Dynamics 365 identities

    Assumes group

    Maps Azure AD groups to their corresponding Dynamics 365 teams

    Check the extraction logs for any specific error messages

  • Verify that the Enterprise Application has all required permissions for Microsoft Graph API

  • Ensure that there are no network restrictions preventing access to the Dynamics 365 CRM environment

  • Has environment

    Connects Azure AD tenant to Dynamics 365 Environment

    Has business unit

    Connects Environment to Business Unit entities

    Has user

    Connects Business Unit to User entities

    Has group

    Connects Business Unit to Team entities

    Has service principal

    Connects Business Unit to Application User entities

    In group

    Connects Users to their Team memberships

    Power Platform admin center
    Power Platform Admin Center
    Manage Application Users
    Connect as an App
    Add an iManage app
    Configure iManage app
    Configure app authentication
    Configure app access settings
    Review app settings
    Enabled iManage app
    "sts:GetCallerIdentity"
    ],
    "Resource": "*"
    },
    {
    "Sid": "Tag",
    "Effect": "Allow",
    "Action": [
    "tag:GetResources"
    ],
    "Resource": "*"
    },
    {
    "Sid": "SSO",
    "Effect": "Allow",
    "Action": [
    "sso:ListAccountAssignments",
    "sso:ListPermissionSets",
    "sso:ListAccountsForProvisionedPermissionSet",
    "sso:ListInstances",
    "sso:DescribePermissionSet",
    "sso:ListTagsForResource",
    "identitystore:DescribeUser",
    "identitystore:DescribeGroup",
    "identitystore:ListUsers",
    "identitystore:ListGroups",
    "identitystore:ListGroupMemberships"
    ],
    "Resource": "*"
    },
    {
    "Sid": "IAM",
    "Effect": "Allow",
    "Action": [
    "iam:ListPolicies",
    "iam:GetPolicy",
    "iam:GetPolicyVersion",
    "iam:ListRoles",
    "iam:ListGroupsForUser",
    "iam:ListAttachedRolePolicies",
    "iam:ListAttachedUserPolicies",
    "iam:ListUsers",
    "iam:ListAttachedGroupPolicies",
    "iam:ListGroups",
    "iam:GetUser",
    "iam:GetRole",
    "iam:ListUserPolicies",
    "iam:ListGroupPolicies",
    "iam:ListRolePolicies",
    "iam:GetUserPolicy",
    "iam:GetGroupPolicy",
    "iam:GetRolePolicy",
    "iam:ListSAMLProviders",
    "iam:GetSAMLProvider",
    "iam:ListOpenIDConnectProviders",
    "iam:GetOpenIDConnectProvider",
    "iam:ListAccessKeys",
    "iam:GetAccessKeyLastUsed",
    "iam:ListInstanceProfiles",
    "iam:ListAccountAliases",
    "iam:ListMFADevices",
    "iam:GetLoginProfile"
    ],
    "Resource": "*"
    },
    {
    "Sid": "EC2",
    "Effect": "Allow",
    "Action": [
    "ec2:DescribeSecurityGroups",
    "ec2:DescribeVpcs",
    "ec2:DescribeInstances"
    ],
    "Resource": "*"
    },
    {
    "Sid": "Redshift",
    "Effect": "Allow",
    "Action": [
    "redshift:DescribeClusters",
    "redshift:GetClusterCredentials",
    "redshift-data:ExecuteStatement",
    "redshift-data:GetStatementResult",
    "redshift-data:DescribeStatement"
    ],
    "Resource": "*"
    },
    {
    "Sid": "RDS",
    "Effect": "Allow",
    "Action": [
    "rds:DescribeDBClusters",
    "rds:DescribeDBInstances",
    "rds:DescribeGlobalClusters",
    "rds-db:connect",
    "rds:DescribeTenantDatabases"
    ],
    "Resource": "*"
    },
    {
    "Sid": "DocumentDB",
    "Effect": "Allow",
    "Action": [
    "docdb-elastic:GetCluster",
    "docdb-elastic:ListClusters"
    ],
    "Resource": "*"
    },
    {
    "Sid": "DynamoDB",
    "Effect": "Allow",
    "Action": [
    "dynamodb:ListTables",
    "dynamodb:DescribeTable",
    "dynamodb:ListStreams",
    "dynamodb:DescribeStream"
    ],
    "Resource": "*"
    },
    {
    "Sid": "EMR",
    "Effect": "Allow",
    "Action": [
    "elasticmapreduce:ListClusters",
    "elasticmapreduce:DescribeCluster",
    "elasticmapreduce:ListNotebookExecutions",
    "elasticmapreduce:DescribeNotebookExecution",
    "elasticmapreduce:ListInstanceGroups",
    "elasticmapreduce:ListInstanceFleets",
    "elasticmapreduce:ListInstances",
    "elasticmapreduce:ListStudios",
    "elasticmapreduce:DescribeStudio"
    ],
    "Resource": "*"
    },
    {
    "Sid": "S3",
    "Effect": "Allow",
    "Action": [
    "s3:GetBucketPolicy",
    "s3:ListAllMyBuckets",
    "s3:GetBucketLocation",
    "s3:GetBucketPublicAccessBlock",
    "s3:GetAccountPublicAccessBlock",
    "s3:GetBucketObjectLockConfiguration",
    "s3:GetEncryptionConfiguration",
    "s3:GetBucketLogging",
    "s3:GetBucketOwnershipControls",
    "s3:GetBucketRequestPayment",
    "s3:GetReplicationConfiguration",
    "s3:GetBucketWebsite",
    "s3:GetBucketPolicyStatus"
    ],
    "Resource": "*"
    },
    {
    "Sid": "KMS",
    "Effect": "Allow",
    "Action": [
    "kms:GetKeyPolicy",
    "kms:ListAliases",
    "kms:ListKeyPolicies",
    "kms:ListKeys",
    "kms:ListResourceTags",
    "kms:DescribeKey"
    ],
    "Resource": "*"
    },
    {
    "Sid": "Organization",
    "Effect": "Allow",
    "Action": [
    "organizations:DescribeOrganization",
    "organizations:DescribePolicy",
    "organizations:ListChildren",
    "organizations:DescribeOrganizationalUnit",
    "organizations:ListPolicies",
    "organizations:ListPoliciesForTarget",
    "organizations:ListRoots",
    "organizations:DescribeAccount"
    ],
    "Resource": "*"
    },
    {
    "Sid": "Cognito",
    "Effect": "Allow",
    "Action": [
    "cognito-identity:DescribeIdentityPool",
    "cognito-identity:GetIdentityPoolRoles",
    "cognito-identity:ListIdentityPools"
    ],
    "Resource": "*"
    },
    {
    "Sid": "Lambda",
    "Effect": "Allow",
    "Action": [
    "lambda:ListFunctions",
    "lambda:ListTags",
    "lambda:GetFunctionConfiguration"
    ],
    "Resource": "*"
    },
    {
    "Sid": "EKS",
    "Effect": "Allow",
    "Action": [
    "eks:ListClusters",
    "eks:DescribeCluster"
    ],
    "Resource": "*"
    },
    {
    "Sid": "SecretsManager",
    "Effect": "Allow",
    "Action": [
    "secretsmanager:DescribeSecret",
    "secretsmanager:ListSecrets"
    ],
    "Resource": "*"
    },
    {
    "Sid": "SystemsManager",
    "Effect": "Allow",
    "Action": [
    "ssm:DescribeParameters",
    "ssm:ListTagsForResource"
    ],
    "Resource": "*"
    },
    {
    "Sid": "ECR",
    "Effect": "Allow",
    "Action": [
    "ecr:DescribeRegistry",
    "ecr:DescribeRepositories",
    "ecr:ListTagsForResource",
    "ecr-public:DescribeRepositories",
    "ecr-public:ListTagsForResource"
    ],
    "Resource": "*"
    },
    {
    "Sid": "CloudTrail",
    "Effect": "Allow",
    "Action": [
    "cloudtrail:GetTrail"
    ],
    "Resource": "*"
    },
    {
    "Sid": "CertificateManager",
    "Effect": "Allow",
    "Action": [
    "acm:ListCertificates",
    "acm:DescribeCertificate",
    "acm:ListTagsForCertificate"
    ],
    "Resource": "*"
    },
    {
    "Sid": "RolesAnywhere",
    "Effect": "Allow",
    "Action": [
    "rolesanywhere:ListTrustAnchors",
    "rolesanywhere:GetTrustAnchor",
    "rolesanywhere:ListCrls",
    "rolesanywhere:GetCrl",
    "rolesanywhere:ListProfiles",
    "rolesanywhere:GetProfile",
    "rolesanywhere:ListTagsForResource"
    ],
    "Resource": "*"
    },
    {
    "Sid": "Bedrock",
    "Effect": "Allow",
    "Action": [
    "bedrock:ListFoundationModels",
    "bedrock:ListCustomModels",
    "bedrock:ListImportedModels",
    "bedrock:ListAgents",
    "bedrock:GetAgent",
    "bedrock:ListAgentAliases",
    "bedrock:ListAgentVersions",
    "bedrock:ListAgentActionGroups",
    "bedrock:ListAgentKnowledgeBases",
    "bedrock:ListKnowledgeBases",
    "bedrock:ListDataSources",
    "bedrock:ListPrompts",
    "bedrock:ListPromptRouters",
    "bedrock:ListGuardrails"
    ],
    "Resource": "*"
    }
    ]
    }

    AWS Access Key ID

    For the IAM user to connect as (optional).

    AWS Secret Access Key

    For the IAM user to connect as (optional).

    Extraction Policy Name

    If provided, Veza will check that the specified policy exists in the AWS account and contains all required permissions.

    Gather system tables

    Option to gather additional RDS MySQL system tables sys, performance_schema, mysql, and information_schema.

    Gather PostgreSQL system schemas

    Option to gather PostgreSQL system schemas like pg_catalog and information_schema (default: false).

    RDS database-level only

    Extract only database-level metadata for RDS, skipping table and column details (default: false).

    DB User

    Database local username for all RDS and Redshift extraction (optional).

    Redshift DB User

    Local username for Redshift extraction (optional).

    RDS MySQL DB User

    Local username for MySQL extraction (optional).

    RDS PostgreSQL DB User

    Local username for PostgreSQL extraction (optional).

    RDS Oracle DB User

    Local username for Oracle extraction (optional).

    RDS Oracle DB Password

    Password for Oracle database extraction (optional, encrypted).

    DocumentDB DB User

    Local username for DocumentDB database extraction (optional). See DocumentDB for setup.

    DocumentDB DB Password

    Password for DocumentDB database extraction (optional, encrypted).

    Enable usage for Lifecycle Management

    Toggle to enable Lifecycle Management capabilities for AWS IAM Identity Center

    Enabling trusted access with IAM Identity Center
    organization management account
    IAM policy
    Veza as the trusted entity in AWS

    disable_ui_access

    Boolean flag indicating whether the user has access to the UI

    effective_admin

    Boolean flag indicating whether the user has effective admin privileges

    profile_updatable

    Whether the user can update their profile

    internal_password_disabled

    Whether internal password authentication is disabled

    status

    Current user status (invited, enabled, disabled, locked)

    shared_with_all_projects

    Boolean flag indicating if the repository is shared across all projects

    shared_read_only

    Boolean flag indicating if the repository is shared in read-only mode

    WRITE

    DataWrite, MetadataWrite

    Token details

    Red Hat Identity Manager (IdM) - Enterprise identity management solution

  • Oracle Unified Directory - Enterprise directory solution

  • IBM Directory Server - Enterprise LDAP directory

  • ForgeRock Directory Services - Enterprise directory platform

  • Oracle Directory Server Enterprise Edition - Legacy enterprise solution

  • Supported Entities

    LDAP Users

    LDAP users represent individual identities in your directory and are mapped to IDP User entities in Veza. Users are identified by entities matching the specified Users Object Class configuration.

    Attribute
    Notes

    identity

    Distinguished Name (DN) - unique identifier in LDAP tree

    name

    Derived from displayName, cn, or uid (in order of preference)

    fullName

    Same as name - primary display identifier

    email

    Extracted from email or mail attributes

    parentOU

    Organizational Unit containing the user

    customProperties

    User-defined additional attributes based on configuration

    LDAP Groups

    LDAP groups represent collections of users and other groups, mapped to IDP Group entities in Veza. Groups are identified as all entities that do not match the Users Object Class configuration.

    Attribute
    Notes

    identity

    Distinguished Name (DN) - unique identifier

    name

    Derived from cn attribute or DN component

    members

    List of user DNs from member attribute (configurable)

    parentId

    Parent group or OU in the hierarchy

    displayName

    Human-readable name for the group

    LDAP Domains

    LDAP domains provide organizational context and are derived from the Base DN configuration. Domains are mapped to IDP Domain entities in Veza and represent the top-level organizational boundary.

    Attribute
    Notes

    name

    Derived from Base DN (e.g., example.com)

    identity

    Base DN value

    Group Membership and Hierarchy

    The LDAP integration preserves the hierarchical structure of your LDAP directory within Veza. Group membership is resolved through configurable member attributes (uniqueMember for groupOfUniqueNames, member for groupOfNames, or custom-specified attributes), which contain the distinguished names of users who belong to each group. The integration validates group membership to ensure both users and groups exist in the extraction.

    LDAP's tree structure is maintained in Veza through parent-child relationships between organizational units and groups. Users inherit effective permissions through the group membership hierarchy, enabling comprehensive access path analysis across your LDAP directory structure.

    Schema Variations

    The integration supports various LDAP schema implementations:

    Object Classes:

    • Users: person, inetOrgPerson, organizationalPerson, and custom user object classes

    • Groups: groupOfNames, groupOfUniqueNames, posixGroup, and custom group object classes

    Attribute Variations:

    • Names: displayName, cn, uid for user identification and display

    • Email: email, mail for contact information

    • Groups: uniqueMember (for groupOfUniqueNames), member (for groupOfNames), or custom member attributes for group membership relationships

    Known Limitations

    • The integration is read-only and cannot modify LDAP directory data

    • Custom attributes are limited to the four supported data types (string, number, date, boolean)

    • Group membership is resolved through configurable member attributes (defaults to uniqueMember or member based on group object class)

    • Very large directories (1M+ entries) may require scope limiting for optimal performance

    Common Issues

    Connection Issues: Certificate errors for LDAPS connections, authentication failures due to incorrect bind DN format, or network connectivity issues.

    Extraction Issues: No users found due to incorrect Users Object Class configuration, missing groups due to incorrect Group Object Class or member attribute configuration, or custom attributes not accessible to service account.

    Performance Issues: Slow extractions in large directories, extraction timeouts requiring scope limitation.

    Permission Validation

    Test service account access using:

    For additional technical details, see the official LDAP documentation.

    # Test LDAP bind and search capabilities
    ldapsearch -x -H ldaps://your-ldap-server:636 \
        -D "cn=veza-service,ou=serviceaccounts,dc=example,dc=com" \
        -W -b "dc=example,dc=com" \
        "(objectClass=person)" cn displayName mail
    Overview

    The Veza integration for Oracle Human Capital Management (HCM) is designed specifically for Lifecycle Management and collects Worker information from Oracle HCM Cloud for use as a source of identity in automated provisioning workflows. This integration uses Oracle HCM REST APIs (version 11.13.18.05) and BI Publisher reports to extract worker data and supports SCIM 2.0 for user operations.

    For access visibility, the Oracle Fusion Cloud integration extracts user role assignments and access insights across the Fusion Cloud infrastructure, including HCM.

    Technical Specifications:

    • Oracle HCM REST API version: 11.13.18.05

    • REST Framework version: 4

    • Authentication: HTTP Basic Authentication

    • SCIM 2.0 support for user management operations

    See notes and supported entities for more details.

    Configuring Oracle HCM

    Veza uses Oracle HCM REST APIs and BI Publisher reports to collect worker information. The integration requires proper configuration of reports and API access.

    1. Create a service user for the connector to use. The connector uses this username and password combination to connect to both the Oracle HCM REST API and BI Publisher.

    2. Configure the necessary BI Publisher reports for worker data extraction:

      • Report path must start with /Custom and end with .xdo

      • Must output CSV with specific column headers (see technical requirements below)

      • Example path: /Custom/HCM/WorkerDataReport.xdo

    3. Ensure the service user has appropriate permissions to access worker data and update email addresses:

      • Access to /hcmRestApi/resources/11.13.18.05/workers endpoint

      • Access to /hcmRestApi/scim/Users endpoint for email updates

    Employee Report

    Veza uses the BI Repoorts API to pull a preconfigured report of employee information. Veza processes a set of standard columns from this report and customers have the option to add additional columns that Veza can ingest as custom properties to further enrich the Employee entity.

    Column
    Usage
    Unique
    Required

    CORRELATION_ID

    Identifier for employee, correlation with MANAGER

    Yes

    Yes

    NAME

    Name

    No

    No, fallback to Display Name

    EMPLOYEE_ID

    Employee Number

    Yes

    Configuring Oracle HCM Integration on Veza Platform

    1. In Veza, open the Integrations page.

    2. Click Add New and pick Oracle HCM as the type of integration to add

    3. Enter the required information and Save the configuration

    Field
    Notes

    URL

    URL of Oracle HCM Cloud Instance

    Username

    Username to connect as

    Password

    Password for the user

    Report Path

    Path to BIP report for worker data

    Additional Columns

    Additional report columns to process (optional)

    Identity Mapping

    Identity mapping configuration (optional)

    Enable Lifecycle Management

    Oracle HCM can be enabled for Lifecycle Management to serve as a source of identity for automated provisioning workflows. The integration supports identity synchronization and email write-back capabilities.

    The Oracle HCM integration will need the additional required permissions beyond basic integration:

    • Access to /hcmRestApi/resources/11.13.18.05/workers endpoint (read access)

    • Access to /hcmRestApi/scim/Users endpoint (read/write for email updates)

    • BI Publisher report execution permissions

    • Permission to update worker email addresses via SCIM API

    To enable Lifecycle Management:

    1. In Veza, go to the Integrations overview

    2. Search for or select your Oracle HCM integration

    3. Check the box to Enable usage for Lifecycle Management

    For information about Lifecycle Management capabilities, see the Oracle HCM Lifecycle Management guide.

    Feature
    Description

    Enable Usage for Lifecycle Management

    Toggle to enable capabilities

    Notes and Supported Entities

    Oracle HCM Worker (HRIS Employee)

    Oracle HCM workers are represented as HRIS employees in Veza and can serve as the source of identity for lifecycle management workflows.

    Attribute
    Notes

    user_name

    Worker's username or login identifier

    email

    Email address associated with the worker

    display_name

    Worker's display name or full name

    active

    True if the worker is active

    Lifecycle Management Support

    Oracle HCM supports the following lifecycle management capabilities:

    • Source of Identity: Provides authoritative worker information for identity lifecycle policies

    • Identity Synchronization: Worker attributes can be synchronized to target systems

    • Email Write-Back: Email addresses from target systems can be written back to worker records (unidirectional)

      • Uses SCIM PATCH operation via /hcmRestApi/scim/Users endpoint

      • Supports only one email address per worker record

      • Updates only if email address differs from existing value

    • Continuous Sync: Maintains up-to-date worker information across connected systems

    • Worker Identification: Supports person number, entity ID, and SCIM user ID-based identification

    Technical Requirements

    BI Publisher Report Column Headers:

    The report must output CSV with these exact column headers:

    • CORRELATION_ID (required) - Unique worker identifier

    • EMPLOYEE_ID (required) - Employee number

    • FIRST_NAME, LAST_NAME (required) - Worker names

    • STATUS (required) - Must be "ACTIVE" for active workers

    • START_DATE - Employment start date (YYYY-MM-DD format)

    • Additional columns: EMAIL, USER_NAME, DISPLAY_NAME, DEPARTMENT_NAME, MANAGER, etc.

    Data Format Requirements:

    • Date format: YYYY-MM-DD

    • Employment status: "ACTIVE" (case-sensitive) for active workers

    • Boolean values: "Y" or "N" for active flags

    Limitations

    • Oracle HCM cannot be used as a provisioning target (write-back is limited to email addresses)

    • Group and role management is not supported

    • De-provisioning actions are not supported directly in Oracle HCM

    • SCIM API supports only one email address per worker record

    • Report path must follow /Custom/*.xdo naming convention

    Oracle Fusion Cloud integration

    Create rules for alerts, generate reports for tracking and visibility, and define Separation of Duties (SoD) violations for roles and privileges in Oracle Database.

  • Conduct user access and entitlement reviews based on the individual roles, privileges, and resources accessible to human and machine identities.

  • This document includes steps to configure an Oracle Database integration, along with notes and supported entities.

    Prerequisites

    To connect to Oracle Database, you will need:

    • A local database user for the integration, with the SELECT ANY DICTIONARY privilege. If your Oracle Database uses the multi-tenant option where a single Container Database (CDB) hosts individual pluggable databases (PDB), the user must be a common user with access to all databases to extract authorization metadata.

    • An Insight Point for secure communication between Veza and the Oracle Database host in production environments.

    • For testing purposes, you can use the internal Insight Point for the connection. In this case, firewall rules and filters must allow inbound traffic from Veza's Gateway IP addresses.

    • Supported Oracle Database version 19c, 21c or 23ai

    Configure Oracle Database Discovery

    Create Database User

    Create a common user in the Oracle Database:

    1. Connect to a common user with the CREATE USER privilege and ensure the current container is the root container.

    2. Create a user, with the prefix "C##" or "c##".

    3. Grant required permissions to the integration user.

    Run the following SQL commands to create a common user with access to all container databases. Update the integration user name and password in the example:

    Save the username and password to configure the integration in Veza.

    Enable the Oracle Database Integration in Veza

    1. In Veza, go to the Integrations page.

    2. Click Add Integration.

    3. Search for OracleDB. Select it and click Next.

    4. Configure the integration:

      • Insight Point: Select an Insight Point or choose to use the default internal Insight Point for the connection.

      • Name: Enter a display name to identify the provider.

      • Server Address: Address of your Oracle Database instance, e.g., myoracleserver.domain.com or 192.168.1.100.

      • Server Port: Port for the connection, e.g., 1521 (or 2484 for SSL/TLS).

      • Database Name: Database name, e.g., ORACLE. You can retrieve this with the SQL command select * from global_name;.

      • Username: Name of the user created in the steps above, e.g., c##veza_db_user.

      • Password: Password of the integration user.

      • Connection Security: Select the connection security mode. See below for configuration options.

    5. Click Save to test the connection and save the configuration.

    6. Validate the integration was successful by checking the integration status on the Integrations page. Click the integration name to view detailed status and events for each data source.

    Connection Security

    The Oracle Database integration supports three connection security modes. Select the appropriate mode based on your database deployment and security requirements.

    TLS with CA Certificate

    The integration establishes an encrypted TLS connection using a CA certificate to verify the Oracle server's identity. Upload a PEM-encoded CA certificate file (.pem, maximum 1MB) through the integration configuration interface. This method is commonly used with AWS RDS Oracle deployments and modern cloud-native environments. The integration automatically negotiates TLS protocol versions and cipher suites compatible with your Oracle database version.

    To configure TLS with a CA certificate, select TLS from the Connection Security dropdown and upload your CA certificate file when prompted.

    Oracle Wallet

    The integration establishes an encrypted connection using an Oracle Wallet file. Upload an auto-login wallet file (cwallet.sso, maximum 1MB) that contains the necessary certificates, private keys, and trusted Certificate Authorities. This method is the standard for traditional on-premises Oracle deployments and Oracle Cloud Autonomous Database instances. If you have a password-protected wallet (ewallet.p12), convert it to auto-login format using Oracle's orapki utility before uploading.

    To configure Oracle Wallet authentication, select Oracle Wallet from the Connection Security dropdown and upload your wallet file when prompted.

    Default (Unencrypted)

    The integration connects without SSL/TLS encryption. Database credentials and authorization metadata are transmitted in cleartext. This mode should only be used for development or testing environments that do not process sensitive data.

    Enabling Lifecycle Management

    See Lifecycle Management: Oracle Database for more details and a list of supported actions. The Veza integration user will need additional permissions to modify database users and roles:

    Notes and Supported Entities

    The integration discovers the following entities, along with attributes for filtering queries and fine-tuning the scope of access reviews.

    OracleDB Database

    Represents an Oracle database instance. Multi-tenant configurations can have more than one database within a single Oracle Database instance.

    Attribute
    Description

    Name

    The name of the Oracle database.

    Id

    Unique identifier for the database.

    Type

    The type of the database entity.

    OracleDB Object Privilege Grants

    Represents the privilege grants for objects in the Oracle database. These are granted explicitly to Users and Roles and apply to specific Tables.

    Attribute
    Description

    Name

    The name of the privilege grant.

    Id

    Unique identifier for the privilege grant.

    Type

    The type of the privilege grant entity.

    Privileges Grantable

    List of grantable privileges.

    Privileges Non Grantable

    List of non-grantable privileges.

    Note that Column privileges are not yet modeled. Schema privileges are only available in Oracle DB version 23.

    OracleDB Roles

    Represents the roles defined within the Oracle database. Roles describe Object Privilege Grants that enable specific actions on tables. OracleDB roles can assume other roles.

    Attribute
    Description

    Name

    The name of the role.

    Id

    Unique identifier for the role.

    Type

    The type of the role entity.

    Authentication Type

    The type of authentication used for the role.

    Common

    Indicates if the role is common across databases.

    Oracle Maintained

    Indicates if the role is maintained by Oracle.

    OracleDB Schema

    Represents a schema within the Oracle database. A schema within an OracleDB Database contains individual tables. Users can be assigned to Schema as owners.

    Attribute
    Description

    Name

    The name of the schema.

    Id

    Unique identifier for the schema.

    Type

    The type of the schema entity.

    OracleDB User

    Represents a user within the Oracle database. OracleDB Users are local accounts within a database.

    Attribute
    Description

    Name

    The name of the user.

    Id

    Unique identifier for the user.

    Type

    The type of the user entity.

    Account Status

    The status of the user's account.

    Authentication Type

    The type of authentication used for the user.

    Common

    Indicates if the user is common across databases.

    OracleDB Table

    Represents a table within the Oracle database. Veza shows effective permissions from OracleDB Users to OracleDB Tables.

    Attribute
    Description

    Name

    The name of the table.

    Id

    Unique identifier for the table.

    Type

    The type of the table entity.

    OracleDB View

    A view is a virtual table that provides a way to represent the result of a SQL query as if it were a table. It does not store data itself but dynamically retrieves it from the underlying tables when queried.

    OracleDB Materialized View

    A materialized view is a database object that contains the results of a query and stores the data physically. It can be refreshed periodically to reflect changes in the underlying data.

    OracleDB Procedure

    A procedure is a stored PL/SQL block that performs a specific task. It can take parameters, execute multiple SQL statements, and encapsulate business logic.

    OracleDB Trigger

    A trigger is a special type of stored procedure that automatically executes in response to certain events on a table or view, such as INSERT, UPDATE, or DELETE operations.

    Database Application

    Import identity and authorization data from databases into Veza

    Overview

    Use the Database Application integration to incorporate identity and authorization metadata from sources that do not have built-in Veza connectors but can export or provide data as the result of a SQL query.

    You can create a Database Application integration in Veza to:

    • Import user and authorization data from legacy or custom applications

    • Integrate with SaaS applications backed by a database

    • Model employee access to bespoke or specialized systems

    The integration uses the Open Authorization API (OAA) to map database query results to the OAA Application template.

    The Application template models users, groups, roles, and resources across applications for a wide variety of authorization use cases. An introduction to the Application Template .

    When to use the Database Application integration

    The Database Application integration is ideal for systems that do not provide REST API access to authorization metadata but store that data in a SQL database.

    • Legacy applications with user and role tables

    • Custom business applications built in-house

    • Other specialized industry tools without native APIs that are backed by a SQL database

    The Database Application integration enables modeling identity and permissions metadata for any application not natively supported by Veza with flexible column mapping, custom properties, and support for popular SQL servers.

    Adding a Database Application integration

    Prerequisites

    To create a Database Application integration, you will need:

    • The connection details for the SQL host (including server type, hostname, port, and credentials)

    • A read-only SQL query that returns the information to be included in the integration

      • This query can be as simple as SELECT * from <table_name> or a complex query that includes multiple joins and named columns.

    For more information about Veza user roles and permissions, see .

    Supported SQL server types

    The Database Application integration supports connecting to the following SQL server types:

    • Microsoft SQL Server

    • MySQL / MariaDB

    • Oracle Database

    • PostgreSQL

    Create a Database Application integration

    To create a new Database Application integration:

    1. Navigate to Integrations > Add Integration

    2. Choose Database Application from the options

    3. Enter an integration name

      • Use a title that uniquely identifies this integration source

    Column mapping

    The Database Application integration allows you to map columns in your SQL query result to specific Veza attributes.

    For each column provided by the result, you should:

    1. Click Add Column Definition

    2. Provide the name of the column from the SQL query result

    3. Select the target entity type for mapping (available entities depend on the selected template)

    4. Select the specific entity attribute to map to (only attributes applicable to the selected entity type will be shown)

    Supported entity types and attributes

    For all entities, an ID or Name is required. If ID is not provided, Name is automatically used as the unique identifier for the entity. Both are also supported.

    The available entity types and attributes depend on the template you select. Each template supports different entity types.

    Application Template Entities

    User Attributes

    Attribute
    Description

    Group Attributes

    Attribute
    Description

    Role Attributes

    Attribute
    Description

    Resource Attributes

    Attribute
    Description

    Note: Resource Type is configured at the Application template level (not per-column mapping) and applies to all resources created by this integration.

    Data type handling

    Boolean values

    The following values are treated as TRUE (case-insensitive):

    • true, t

    • yes, y

    • 1

    Any other value is treated as FALSE.

    Timestamp formats

    Veza supports standard timestamp formats:

    • 2023-04-12T15:34:56.123456789Z (RFC3339 with nanoseconds)

    • 2006-01-02T15:04:05Z07:00 (RFC3339)

    • 20060102150405 (Active Directory format)

    Timestamps are considered unset when the value is never, null, none, false, 0 or empty. Invalid timestamps will result in a processing error.

    String lists

    For attributes that support lists (such as Role Name List, and Group Name List), values should be comma-separated within the cell and the list enclosed by quotes ".

    Updating a Database Application integration

    Incremental updates are not supported; you must submit the complete data set for each update.

    ⚠️ Warning: Configuration Updates

    When updating the configuration fields or mappings for an existing Database Application integration, changes are not reflected until after the next SQL query extraction is processed. For example when updating the Application Type field, changing this field alone and saving the integration will not immediately change the type in the Veza system. The new type will not be available in graph or in other features such as Lifecycle Management (LCM) until after the next upload is processed.

    Required Process for changing configurations:

    Update mappings for an integration

    1. Find the Database Application integration on the Veza Integrations page

    2. Click the integration name to view details

    3. Click Edit

    4. In the integration configuration, click Edit above the table of current mappings

    Processing rules

    • Multiple Rows per Entity: If the same entity (user, group, or role) exists in multiple rows, Veza processes them as follows:

      • Properties are set based on the first row where the entity ID (or Name if it is being used as the unique ID) occurs

      • For subsequent rows with the same identifier, only relationship assignments are processed (for example user to group, or user to role)

    Related documentation

    CSV Upload Troubleshooting

    Solutions for common CSV import issues in Veza

    This document helps you identify and resolve common issues when importing CSV files into Veza.

    Understanding CSV Import Behavior

    Before troubleshooting, it's important to understand how the CSV import process works:

    File Requirements

    • Maximum file size: 100MB per CSV file

    • Character encoding: UTF-8 recommended

    • First row: Must contain column headers

    • Column delimiters: Commas

    Entity Requirements

    • Users: Each user must have either an id or name (or both)

    • Groups: Each group must have either an id or name (or both)

    • Roles: Each role must have either an id

    Processing Rules

    • First-row behavior: For entities appearing in multiple rows, only the first row sets the entity properties

    • Subsequent rows: Additional rows with the same identifier only process group and role assignments

    • Role permissions: Permissions for the same role are added across all rows (additive)

    • All properties: All properties (including custom properties) are set only from the first row where that entity appears

    Common Issues and Solutions

    Configuration and Integration Issues

    Issue
    Solution

    Mapping Issues

    Issue
    Solution

    Data Format Issues

    Issue
    Solution

    List Column Issues

    Issue
    Solution

    Preparation Best Practices

    1. Start with a test file

      • Begin with a small subset of data to verify your mapping configuration

      • Test with representative examples of your data structure

    2. Validate CSV format

    Current Limitations

    Be aware of these current limitations in the CSV import functionality:

    1. No application resources support

      • Resources within applications are not currently supported

    2. No direct user-to-permission mapping

      • Permissions must be assigned to roles, which are then assigned to users

    Getting Support

    If you continue to experience issues after reviewing this guide:

    1. Review the for details on supported formats and mapping options

    2. Check the for guidance on structuring your CSV files

    3. Contact Veza Support with:

      • A sample of your CSV file (with sensitive data removed)

    Microsoft SQL Server

    Configuring the Veza integration for Microsoft SQL Server

    Overview

    The Veza integration for Microsoft SQL Server enables discovery of users, roles, databases, and permissions from both standalone SQL Server instances and Azure SQL deployments. The integration supports SQL Server 2008 and later, Azure SQL Database, and Azure SQL Managed Instance.

    Veza connects via a local SQL Server login using the configured host, port, username, and password. The integration also supports SQL Server Named Instances, which use dynamic ports assigned at startup. For secure connectivity, an is recommended, particularly for on-premises deployments. The integration automatically detects whether it's connecting to standalone SQL Server or Azure SQL and adjusts entity discovery accordingly.

    Note: System databases (master, model, msdb, tempdb) are excluded from discovery by default.

    Oracle E-Business Suite (EBS)

    Configuring the Veza integration for Oracle E-Business Suite

    Overview

    The Oracle E-Business Suite (EBS) integration enables organizations to review and analyze user permissions and access within their EBS environment. This integration is particularly valuable for organizations needing to ensure proper Separation of Duties (SOD) and maintain visibility into user capabilities across ERP systems.

    The integration enables:

    • Mapping of Users to Responsibilities, with or without Roles

    ALTER SESSION SET CONTAINER=CDB$ROOT;
    CREATE USER c##veza_db_user IDENTIFIED BY password1223;
    GRANT CREATE SESSION, ALTER SESSION TO c##veza_db_user CONTAINER=ALL;
    GRANT SELECT ANY DICTIONARY TO c##veza_db_user CONTAINER=ALL;
    ALTER USER c##veza_db_user SET container_data=all CONTAINER=CURRENT;
    -- Connect to CDB root for common user creation
    ALTER SESSION SET CONTAINER=CDB$ROOT;
    
    -- Create the lifecycle management user
    CREATE USER c##veza_lcm_user IDENTIFIED BY your_secure_password;
    
    -- Basic connection privileges
    GRANT CREATE SESSION, ALTER SESSION TO c##veza_lcm_user CONTAINER=ALL;
    
    -- Read privileges for data extraction and user/role discovery
    GRANT SELECT ANY DICTIONARY TO c##veza_lcm_user CONTAINER=ALL;
    
    -- User management privileges
    GRANT CREATE USER TO c##veza_lcm_user CONTAINER=ALL;
    GRANT DROP USER TO c##veza_lcm_user CONTAINER=ALL;
    GRANT ALTER USER TO c##veza_lcm_user CONTAINER=ALL;
    
    -- Role management privileges
    GRANT CREATE ROLE TO c##veza_lcm_user CONTAINER=ALL;
    -- Note: DROP ROLE privilege doesn't exist - CREATE ROLE allows both create and drop
    GRANT GRANT ANY ROLE TO c##veza_lcm_user CONTAINER=ALL;
    
    -- System privilege management (for granting CREATE SESSION to new users)
    GRANT GRANT ANY PRIVILEGE TO c##veza_lcm_user CONTAINER=ALL;
    
    -- Container data access for multi-tenant environments
    ALTER USER c##veza_lcm_user SET container_data=all CONTAINER=CURRENT;

    Password Required

    Indicates if a password is required for the role.

    Identity Type

    The type of identity of the user.

    Is Active

    Indicates if the user is active.

    Profile

    The profile associated with the user.

    System Privileges Admin

    List of system privileges granted to the user.

    Created At

    Timestamp when the user was created.

    Last Used At (Optional)

    Timestamp when the user was last active, optional.

    Oracle Maintained

    Indicates if the user is maintained by Oracle.

    System Privileges Non-Admin

    List of non-admin system privileges granted to the user.

    System Privileges Common Admin

    List of common admin system privileges granted to the user, optional.

    System Privileges Common Non-Admin

    List of common non-admin system privileges granted to the user, optional.

    Connection Security

    Text qualifiers: Double quotes for fields containing commas

    or
    name
    (or both)
  • If only id or name is provided for an entity, that value is used for both fields and must be unique

  • Minimum mapping: You must map at least one column for each entity type you want to import

  • Ensure proper comma delimitation

  • Quote fields containing commas

  • Use consistent data formats across rows

  • Pre-plan your mapping

    • Identify which columns map to which entity types and attributes

    • Determine how to handle multi-value fields (as lists or multiple rows)

    • Identify custom properties and their data types

  • Consider data quality

    • Standardize identifiers (case consistency, no trailing spaces)

    • Use consistent naming for groups and roles

    • Validate data formats before import

  • Direct user-to-permission mappings (without a role) are not supported

  • No column transformations

    • The system cannot combine or transform column values during import

    • Column transformations or combinations are not supported

  • Full replacement updates

    • Each update completely replaces the previous data

    • Incremental updates are not supported

  • Custom property types are fixed after creation

    • Once a custom property type is set and data processed, it cannot be changed

    • Changing custom property types requires deleting the integration and recreating it

  • Default permissions

    • If no column is mapped to role permissions, Veza assigns a default "Uncategorized" permission.

  • HRIS Type field propagation

    • Updates to the HRIS Type field require a complete CSV file re-upload to propagate changes to downstream systems like Lifecycle Management (LCM)

    • Changing the HRIS Type field alone will not update entity names throughout the system

  • Your mapping configuration

  • A description of the unexpected behavior

  • Entity names inconsistent between CSV provider and Lifecycle Management (LCM) after update

    Critical: When updating the HRIS Type field for an HR System template integration, you must re-upload the complete CSV file immediately after changing the type. Updating the HRIS Type field without re-uploading data causes system-wide inconsistencies. See the HRIS Type Update Warning for detailed steps.

    CSV file is rejected with validation error

    Verify you've mapped the minimum required fields (id or name for all entity types)

    Only some properties appear

    Check that columns are mapped to the correct entity types and attributes

    Users appear without group/role assignments

    Ensure you've correctly mapped group and role columns

    Entities appear multiple times

    Ensure that the value you're using for id is unique (Veza automatically cleans whitespace and is case-insensitive)

    Import fails with duplicate column error

    Column names must be unique (case-insensitive). While mapping allows columns with different cases like "Email" and "email", the import will fail. Ensure all column headers have unique names regardless of case

    Boolean values not interpreted correctly

    Use standard values: true, t, yes, y, 1, active, or enabled for TRUE

    Timestamp data not processed

    Ensure timestamps are in one of the supported formats listed in the CSV Import documentation

    Multiple groups/roles not assigned properly

    For list columns, ensure values are comma-separated and enclosed in quotes if they contain commas

    Special characters causing parsing issues

    Save your CSV with UTF-8 encoding and ensure text with commas is properly quoted

    Groups/roles in comma-separated lists not assigned

    Verify you've selected the list option when mapping the column

    Only first value in list is processed

    Check for proper quoting around values that contain commas

    Only some list values appear

    Check for inconsistent naming between list items and other references to the same entity

    CSV Import documentation
    CSV Upload Examples
    BI Publisher report execution permissions

    Yes

    COMPANY_NAME

    Company

    No

    No

    FIRST_NAME

    First Name

    No

    Yes

    LAST_NAME

    Last Name

    No

    Yes

    PREFERRED_FIRST_NAME

    Prefered Name

    No

    No

    DISPLAY_NAME

    Display Name

    No

    No, fallback to "Firstname Lastname"

    CANONICAL_NAME

    Canonical Name

    No

    No, faillback to Display Name

    USER_NAME

    Username

    Yes

    No

    EMAIL

    Email

    Yes

    Yes

    PERSONAL_EMAIL

    Personal Email

    No

    No

    HOME_LOCATION

    Home Location

    No

    No

    LOCATION

    Work Location

    No

    No

    COST_CENTER

    Cost Center Name

    No

    No

    DEPARTMENT_NAME

    Department Name

    No

    No

    MANAGER

    Manager Correlation ID

    No

    No

    STATUS

    Employement Status

    No

    Yes

    ACTIVE

    Is Active, ACTIVE for true

    No

    No, default to False

    START_DATE

    Start Date, YYYY-MM-DD formatted

    No

    No

    TERM_DATE

    Termination Date, YYYY-MM-DD formatted

    No

    No

    TITLE

    Title

    No

    No

    EMPLOYEE_TYPE

    Employeement Type

    No

    Lifecycle Management
    Sufficient permissions to execute the query with the collected credentials
  • Sufficient permissions in Veza to create an integration

  • Understanding of the data model for the source application

  • A plan for mapping between columns in the query result and Veza attributes

  • Avoid generic terms such as "application" or "database"

  • If you have more than one environment, consider including the environment name

  • Complete the following fields:

    • Database Type: Select the type of database from the dropdown list

    • Host: Enter the IP address or fully qualified domain name (FQDN) of the database host

    • Port: Enter the port on which the SQL instance is running

    • Username: Enter the username with which to connect to the SQL server

    • Password: Enter the password with which to connect to the SQL server

    • SSL Mode: Select the SSL connection mode:

      • disable - No SSL encryption

      • require - Require SSL connection (no certificate verification)

    • SQL Query: Enter the text of the SQL query that will return information to be parsed into an application on the Veza platform

    • Batch Size: (Optional) Enter the number of records to be fetched during batched retrieval (default: 1000)

    • CA Certificate: (Optional) If using an SSL mode that requires host certificate verification, provide it here

    • Application Name: A unique identifying name for this application instance (e.g., "Marketing CRM - Prod", "HR Portal - Dev")

    • Application Type: The general category or system type (e.g., "CRM", "DevOps Tool"). In Veza, this is displayed as a prefix on entity names, e.g., CRM User, DevOps Tool Role.

    • Resource Type: (Optional) The type categorization for resources in this application (e.g., "Database", "Project", "Location"). Required if you plan to map columns to resource entities.

    • Column Mapping Configuration: See Column Mapping section for details

  • Click Create Integration to trigger extraction and parsing

  • For custom properties, specify a name and data type

    Password Last Changed At

    Timestamp of the last password change

    Email

    User's email address

    Custom Properties

    Map any column to a custom user property (type varies)

    Owner ID

    Entity Owner ID to assign

    Owner Type

    User node type for Entity Owner(s)

    active

  • enabled

  • 2006-01-30 15:04:05Z07:00
  • 2006-01-30 15:04:05

  • 2006-01-30

  • 2006-01-30T

  • 2006-01-30T15:04:05

  • 2006-01-30T15:04:05Z

  • 1/2/2006 (MM/DD/YYYY format)

  • Update the configuration fields in the integration settings

  • Allow the Veza platform to complete the extraction and parse process

  • Verify that entity names are consistent across all Veza components

  • Modify your column mappings as needed

  • Click Save Configuration to apply the changes

  • Role permissions are the only properties that are additive across all rows
  • Ignored Columns: Columns that are not mapped (unchecked) are ignored during processing

  • Additional Columns: SQL query results can contain more columns than are mapped - extra columns are ignored

  • Entity Identifiers: Every entity type (user, group, role) requires an ID or Name (or both). If only one is provided, the same value is used for both fields and must be unique.

  • Identity Mapping: The Application template allows you to specify which column(s) contain identity values (such as email addresses or usernames) for matching application users to identity provider users. Configure this in the Application template settings by entering comma-separated column names (e.g., email or email,username). These values enable Veza to correlate application users with corresponding users in connected identity providers like Okta or Azure AD.

  • ID

    Unique identifier for the user

    Name

    Display name for the user

    Is Active

    Boolean indicating if the user is active

    Created At

    Timestamp when the user was created

    Last Login At

    Timestamp of the user's last login

    Deactivated At

    Timestamp when the user was deactivated

    ID

    Unique identifier for the group

    Name

    Name of the group (supports list format)

    Created At

    Timestamp when the group was created

    Custom Properties

    Map any column to a custom group property (type varies)

    Owner ID

    Entity Owner ID to assign

    Owner Type

    User node type for Entity Owner(s)

    ID

    Unique identifier for the role

    Name

    Name of the role (supports list format)

    Permissions

    Permissions assigned to the role (supports list format)

    Custom Properties

    Map any column to a custom role property (type varies)

    Owner ID

    Entity Owner ID to assign

    Owner Type

    User node type for Entity Owner(s)

    ID

    Unique identifier for the resource

    Name

    Name of the resource

    Custom Properties

    Map any column to a custom resource property (type varies)

    Owner ID

    Entity Owner ID to assign

    Owner Type

    User node type for Entity Owner(s)

    can be found here
    Roles
    Open Authorization API (OAA) Templates
    Managing Teams and Permissions
    Creating Custom Reports
    Understanding the Veza Access Graph
    Configuring SQL Server

    Create SQL Database User

    1. Connect to your SQL Server and create new SQL Server Login with password.

    To enable discovery for SQL Server, you will need credentials for a local SQL Server user (Login with password). Connect to the server using your client of choice, and create the user with the command:

    2. Assign read only permissions for the service account.

    Grant the following permissions to the SQL Server Login from the previous step:

    SQL 2008 and 2012

    SQL 2014 and later

    Configure Veza

    To add the connection, go to Veza Integrations > Create Integration and choose "SQL Server".

    1. If you are using an external Insight Point for discovery, change the selection from the default internal Insight Point to the one you deployed.

    2. Enter the server Host, Login user, and Password.

    3. Configure the connection method based on your SQL Server deployment:

      • Static port: Enter the Port number (e.g., 1433 for the default SQL Server port). Leave Instance Name empty.

      • Named Instance: Enter the Instance Name and leave Port empty. Use this option when connecting to SQL Server Named Instances that use dynamic ports.

      Do not specify both Port and Instance Name. Named Instances use dynamic ports, so specifying a port will cause a connection error.

    4. Optionally, prevent discovery of some databases and schema by adding database names to the allow and deny lists. If the allow list is populated, only those resources are discovered. If the deny list is populated, those resources are skipped, while all others are discovered.

    5. Click Save to enable the integration and queue parsing. The SQL Server will be registered and appear under "Discovered Data Sources" on the Configuration > All Data Sources tab.

    System databases are not included in the database fetching by default. Enable Gather system databases in the integration configuration to include them.

    About SQL Server Named Instances

    SQL Server supports running multiple instances on a single host using Named Instances. Each named instance operates independently and is assigned a dynamic port at startup by the SQL Server Browser service.

    When connecting to a Named Instance:

    • The connection uses the format hostname\instancename internally

    • The SQL Server Browser service (UDP port 1434) resolves the instance name to its current port

    • Ensure the SQL Server Browser service is running and accessible from the Insight Point

    For more information, see .

    Supported Entities

    The Veza integration for Microsoft SQL Server discovers the following entities and attributes:

    Many entities include additional attributes populated by Veza's enrichment system (such as owners, identity classifications, and risk scores). See Enrichment Configuration for details on configuring these attributes.

    Identity Entities

    SQL Server Login

    Server-level login that can connect to the SQL Server instance. Logins can be Windows-authenticated or SQL Server-authenticated and have permissions at the server level.

    Attributes:

    • full_admin

    • identity_unique_id

    • is_active

    • is_disabled

    • principal_type

    • server_type

    • sid

    • user_type

    SQL Server Database User

    Database-level user mapped to a server login or contained within a database. Users are granted permissions within specific databases and can be members of database roles.

    Attributes:

    • identity_unique_id

    • is_active

    • principal_type

    • server_type

    • sid

    • user_type

    Role Entities

    SQL Server Role

    Server-level role that groups permissions at the instance level. Can be fixed server roles (e.g., sysadmin, securityadmin) or user-defined roles.

    Attributes:

    • identity_unique_id

    • is_disabled

    • is_fixed_role

    • principal_type

    • server_type

    • sid

    • user_type

    Notes:

    • Fixed server roles include: sysadmin, securityadmin, serveradmin, setupadmin, processadmin, diskadmin, dbcreator, bulkadmin, public

    • User-defined roles provide custom permission groupings

    SQL Server Database Role

    Database-level role that groups permissions within a specific database. Can be fixed database roles (e.g., db_owner, db_datareader) or user-defined roles.

    Attributes:

    • identity_unique_id

    • is_fixed_role

    • principal_type

    • server_type

    • sid

    • user_type

    Notes:

    • Fixed database roles include: db_owner, db_securityadmin, db_accessadmin, db_backupoperator, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter, db_denydatareader

    • User-defined database roles provide custom permission groupings within databases

    Container Entities

    SQL Server Service

    Top-level container representing a SQL Server service. Supports both Azure SQL and standalone SQL Server deployments.

    Attributes:

    • azure_id - Azure resource ID (for Azure SQL)

    • azure_tenant_id - Azure tenant ID (for Azure SQL)

    • server_type - Server type: azure_sql or standalone_sql

    SQL Server Instance

    SQL Server instance that can contain multiple databases. Manages server-level logins, roles, and configurations.

    Attributes:

    • azure_id - Azure resource ID (for Azure SQL Managed Instance)

    • builtin_permissions - JSON string defining built-in permission structures

    • domain_name - Windows domain name for domain-joined instances

    • server_type - Server type: azure_sql or standalone_sql

    • version - SQL Server version (e.g., "15.0.2000.5" for SQL Server 2019)

    SQL Server Database

    Database within a SQL Server instance containing schemas, tables, views, and database users.

    Attributes:

    • azure_id

    • encryption_enabled

    • encryption_encryptor_type

    • encryption_key

    • encryption_state

    • external_datasource_id

    • instance

    • server_type

    Notes:

    • System databases (master, model, msdb, tempdb) are excluded from discovery

    • TDE encryption status is tracked for compliance and security monitoring

    Data Object Entities

    SQL Server Schema

    Database schema (namespace) containing tables, views, stored procedures, and other database objects.

    Attributes:

    • database_name

    • server_type

    SQL Server Table

    Database table containing structured data with rows and columns.

    Attributes:

    • created_at

    • database_name

    • schema_name

    • server_type

    • updated_at

    SQL Server View

    Database view - a virtual table based on a SQL query result set. Views can simplify complex queries and provide security by restricting access to specific columns.

    Attributes:

    • created_at

    • database_name

    • schema_name

    • server_type

    • updated_at

    Permission Entities

    SQL Server Effective Permission

    Server-level effective permissions showing cumulative access rights at the instance level, calculated from direct grants, role memberships, and inherited permissions.

    Attributes:

    • permissions - Array of server-level permissions

    • sub_permissions - Array of inherited sub-permissions

    • data_read_privilege - Boolean for direct data read access

    • data_write_privilege - Boolean for direct data write access

    • data_create_privilege - Boolean for direct data creation access

    • data_delete_privilege - Boolean for direct data delete access

    • metadata_read_privilege - Boolean for direct metadata read access

    • metadata_write_privilege - Boolean for direct metadata write access

    • metadata_create_privilege - Boolean for direct metadata creation access

    • metadata_delete_privilege - Boolean for direct metadata delete access

    • non_data_privilege - Boolean for non-data privileges (e.g., administrative)

    • uncategorized_privilege - Boolean for uncategorized permissions

    • sub_data_read_privilege - Boolean for inherited data read access

    • sub_data_write_privilege - Boolean for inherited data write access

    • sub_data_create_privilege - Boolean for inherited data creation access

    • sub_data_delete_privilege - Boolean for inherited data delete access

    • sub_metadata_read_privilege - Boolean for inherited metadata read access

    • sub_metadata_write_privilege - Boolean for inherited metadata write access

    • sub_metadata_create_privilege - Boolean for inherited metadata creation access

    • sub_metadata_delete_privilege - Boolean for inherited metadata delete access

    • sub_non_data_privilege - Boolean for inherited non-data privileges

    • sub_uncategorized_privilege - Boolean for inherited uncategorized permissions

    • server_type - Server type: azure_sql or standalone_sql

    SQL Server Database Effective Permission

    Database-level effective permissions showing cumulative access rights within a specific database, calculated from direct grants, role memberships, and inherited permissions.

    Attributes:

    • Inherits all attributes from SQL Server Effective Permission (see above)

    • Scoped to a specific database rather than server-level

    Permissions and Effective Access

    SQL Server uses a hierarchical permission model with permissions granted at multiple levels. Veza calculates Effective Permissions showing the cumulative access granted through:

    • Direct permission grants to users or logins

    • Server role memberships

    • Database role memberships

    • Schema ownership

    • Database ownership

    • Object ownership

    Permission Categorization

    Veza categorizes SQL Server permissions into:

    Category
    Description
    Examples

    Data Read

    Query and view data

    SELECT on tables/views

    Data Write

    Modify existing data

    UPDATE on tables

    Data Create

    Insert new data

    INSERT on tables

    Data Delete

    Remove data

    Common SQL Server Permissions

    Server-Level Permissions

    Permission
    Description

    CONTROL SERVER

    Full control over the server instance

    ALTER ANY LOGIN

    Create, modify, or drop logins

    ALTER ANY DATABASE

    Create, modify, or drop databases

    VIEW ANY DATABASE

    View all databases

    VIEW SERVER STATE

    View server dynamic management views

    Database-Level Permissions

    Permission
    Description

    CONTROL

    Full control over the database

    ALTER

    Modify database properties

    ALTER ANY USER

    Create, modify, or drop database users

    ALTER ANY ROLE

    Create, modify, or drop database roles

    ALTER ANY SCHEMA

    Create, modify, or drop schemas

    CREATE TABLE

    Create new tables

    Object-Level Permissions

    Permission
    Description

    SELECT

    Query data from tables or views

    INSERT

    Add new rows to tables

    UPDATE

    Modify existing data in tables

    DELETE

    Remove rows from tables

    EXECUTE

    Run stored procedures or functions

    ALTER

    Modify object definitions

    Insight Point

    Tracking Function and Concurrent Program access through Responsibilities

  • Visibility into data access controls via Profile Options, Security Profiles, and Data Access Sets to resources such as Ledgers and Operating Units.

  • Analysis and review of user entitlements and potential toxic permission combinations

  • Configuring Oracle EBS Integration

    EBS is a customer-managed application that is deployed within your infrastructure. EBS uses an Oracle database as its backend. Veza connects to this database and uses SQL queries to retrieve entity and authorization metadata.

    Prerequisites

    • Access to the Oracle EBS database, sometimes also referred to as SERVICE_NAME.

    • Database user credentials with read permissions to required tables

    • Properly configured SESSION_PER_USER database parameter for the integration user (see Configuring SESSION_PER_USER)

    Deploying an Insight Point is recommended for secure integration connectivity. For testing purposes, you can skip deploying an Insight Point, in which case firewall rules and filters must allow communication with your Veza tenant.

    Required Permissions

    The database user must have SELECT permissions on the following tables:

    • APPS.FND_APPLICATION_VL

    • APPS.FND_CONCURRENT_PROGRAMS_VL

    • APPS.FND_FORM_FUNCTIONS_VL

    • APPS.FND_MENU_ENTRIES_VL

    • APPS.FND_MENUS_VL

    • APPS.FND_PROFILE_OPTION_VALUES

    • APPS.FND_PROFILE_OPTIONS_VL

    • APPS.FND_REQUEST_GROUP_UNITS

    • APPS.FND_REQUEST_GROUPS

    • APPS.FND_REQUEST_SET_PROGRAMS

    • APPS.FND_REQUEST_SET_STAGES_VL

    • APPS.FND_REQUEST_SETS_VL

    • APPS.FND_RESP_FUNCTIONS

    • APPS.FND_RESPONSIBILITY_VL

    • APPS.FND_USER

    • APPS.GL_ACCESS_SET_NORM_ASSIGN

    • APPS.GL_ACCESS_SETS

    • APPS.GL_LEDGER_SET_NORM_ASSIGN

    • APPS.GL_LEDGER_SETS_V

    • APPS.GL_LEDGERS

    • APPS.HR_OPERATING_UNITS

    • APPS.ORG_ORGANIZATION_DEFINITIONS

    • APPS.PER_ALL_PEOPLE_F (optional, for user enrichment)

    • APPS.PER_SECURITY_ORGANIZATIONS

    • APPS.PER_SECURITY_PROFILES_V

    • APPS.WF_ROLE_HIERARCHIES

    • APPS.WF_ROLES

    • APPS.WF_USER_ROLES

    • APPS.PO_AGENTS

    You can create this user with the following setup script:

    Replace "Password123" with a strong password. The script assumes the Oracle EBS objects are under the 'apps' schema. If your configuration is different, adjust the schema name as required.

    Configuring Oracle EBS on the Veza Platform

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and search for Oracle EBS. Click on the tile to open the integration configuration form.

    3. Enter the required configuration options.

    4. Click Create Integration to validate and save the configuration.

    Configuration Options

    Field
    Notes

    Set the Insight Point

    Choose whether to use the default data plane or a deployed Insight Point.

    Name

    A friendly name to identify the unique integration.

    Server Address

    The IP address of the Oracle database service.

    Server Port

    The port number to use (default: 1521).

    Database Name

    The Oracle service name for the EBS database.

    Username

    Database user with required read permissions.

    Configuring SESSION_PER_USER

    The Oracle EBS integration requires the SESSION_PER_USER parameter to be set appropriately to prevent the ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit error during data extraction.

    Recommended Setting

    For Oracle EBS integrations with Veza, we recommend setting the SESSION_PER_USER parameter to at least 5 for the database user used for integration. Veza creates 3 data sources for Oracle EBS that can connect and create sessions in parallel. The integration runs discovery processes that can create additional concurrent connections (typically 4 max concurrent sessions).

    If you are using the same database user for multiple Veza tenants or have other integrations using the same user account, you may need to increase the SESSION_PER_USER value further. Adjust based on your specific environment requirements.

    Set this parameter for the Veza integration user by creating and applying a profile:

    Notes and Supported Entities

    Effective Relationships

    The integration models several types of effective relationships within Oracle EBS:

    1. Responsibility to Function

    2. Effective Profile Option Binding

    These relationships are shown when using "Effective" Query Mode.

    Data Sources

    Configuring the EBS integration enables three data sources for extracting IAM entities (users and responsibilities), Actions (functions and concurrent programs), and Resources such as ledgers and operating units within EBS.

    Supported Entities

    Oracle EBS Instance

    Core container representing a single Oracle E-Business Suite installation.

    Oracle EBS User

    Represents individual users within the EBS system.

    • Attributes:

      • updated_at, created_at

      • start_date, end_date, last_logon_date

      • description, email

      • first_name, last_name

      • is_buyer

    Oracle EBS Role

    Defines a collection of permissions and access rights.

    • Attributes:

      • updated_at, created_at

      • description

    Oracle EBS Responsibility

    A key security component defining user access and capabilities.

    • Attributes:

      • application_id, group_application_id

      • request_group_id, responsibility_id

      • menu_id, description

    Oracle EBS Effective RF Binding

    Links responsibilities to functions.

    • Attributes:

      • application_id, group_application_id

      • request_group_id, responsibility_id

      • menu_id, description

    Oracle EBS Menu

    Hierarchical structure of options and functions.

    • Attributes:

      • menu_id, menu_type, description

    • Note: System Query Mode Only

    Oracle EBS Menu Exclusion

    Specifies excluded menu items for responsibilities.

    • Attributes:

      • application_id, responsibility_id

      • action_id, rule_type

    • Note: System Query Mode Only

    Oracle EBS Function

    Represents specific actions or operations.

    • Attributes:

      • application_id, parameters

      • function_type, description

      • function_id, user_function_name

    Oracle EBS Function Exclusion

    Defines excluded functions for responsibilities.

    • Attributes:

      • application_id, responsibility_id

      • action_id, rule_type

    • Note: System Query Mode Only

    Oracle EBS Application

    Represents a specific module within the EBS suite.

    • Attributes:

      • application_id, short_name

    Oracle EBS Request Group

    Collection of concurrent programs and request sets.

    • Attributes:

      • application_id, group_id

      • description, group_code

    Oracle EBS Request Set

    Group of concurrent programs that can be run together.

    • Attributes:

      • application_id, request_set_id

      • start_stage, concurrent_program_id

      • user_request_set_name, description

    Oracle EBS Concurrent Program

    Executable programs for background processing.

    • Attributes:

      • application_id, program_name

      • executable_id_application_id, executable_id

      • request_set_flag_name, user_program_name

      • description, program_id

    Oracle EBS Profile Option

    System-wide or user-specific configuration settings.

    • Attributes:

      • profile_option_id, profile_option_name

      • user_profile_option_name, application_id

      • start_date_active, end_date_active

      • hierarchy_type, description

      • updated_at, created_at

    Oracle EBS Data Access Set

    Defines ledger access permissions.

    • Attributes:

      • access_set_id, access_set_name

      • default_ledger_id, description

      • updated_at, created_at

    Oracle EBS Security Profile

    Controls access to HR information.

    • Attributes:

      • security_profile_id, security_profile_name

      • business_group_id, business_group_name

      • program_update_date

      • updated_at, created_at

    Oracle EBS Ledger Set

    Collection of ledgers for financial reporting.

    • Attributes:

      • ledger_set_name, ledger_id

      • short_name, description

      • updated_at, created_at

    Oracle EBS Ledger

    Financial reporting entity for business transactions.

    • Attributes:

      • ledger_id, ledger_name

      • short_name, description

      • updated_at, created_at

    Oracle EBS Operating Unit

    Organization partitioning data for multiple companies.

    • Attributes:

      • operating_unit_name, organization_id

      • business_group_id, date_from, date_to

      • short_code, set_of_books_id

      • default_legal_context_id, ledger_name

    Oracle EBS Effective Profile Option Binding

    Links profile options to responsibilities.

    • Attributes:

      • responsibility_id, application_id

    Oracle EBS Responsibility Binding

    Mapping of users to responsibilities.

    • Attributes:

      • user_name, user_id

      • last_name, first_name

      • user_description, role_names

      • application_id, group_application_id

      • request_group_id, responsibility_id

      • responsibility_name, menu_id

      • menu_name, user_menu_name

      • menu_is_azn

    CREATE LOGIN <db_user> WITH PASSWORD = '<password>';
    GRANT VIEW ANY DEFINITION TO <db_user>;
    GRANT VIEW ANY DATABASE TO <db_user>;
    GRANT CONNECT SQL TO <db_user>;
    GRANT VIEW ANY DEFINITION TO <db_user>;
    GRANT CONNECT ANY DATABASE TO <db_user>;
    -- Create a new user
    CREATE USER ebs_integration IDENTIFIED BY "Password123"
    DEFAULT TABLESPACE users
    TEMPORARY TABLESPACE temp
    QUOTA UNLIMITED ON users;
    
    -- Grant basic connect role
    GRANT CREATE SESSION TO ebs_integration;
    
    -- Grant object permissions
    GRANT SELECT ON apps.FND_APPLICATION_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_CONCURRENT_PROGRAMS_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_FORM_FUNCTIONS_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_MENU_ENTRIES_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_MENUS_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_PROFILE_OPTIONS_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_PROFILE_OPTION_VALUES TO ebs_integration;
    GRANT SELECT ON apps.FND_REQUEST_GROUPS TO ebs_integration;
    GRANT SELECT ON apps.FND_REQUEST_GROUP_UNITS TO ebs_integration;
    GRANT SELECT ON apps.FND_REQUEST_SET_PROGRAMS TO ebs_integration;
    GRANT SELECT ON apps.FND_REQUEST_SETS_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_REQUEST_SET_STAGES_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_RESPONSIBILITY_VL TO ebs_integration;
    GRANT SELECT ON apps.FND_RESP_FUNCTIONS TO ebs_integration;
    GRANT SELECT ON apps.FND_USER TO ebs_integration;
    GRANT SELECT ON apps.GL_ACCESS_SETS TO ebs_integration;
    GRANT SELECT ON apps.GL_ACCESS_SET_NORM_ASSIGN TO ebs_integration;
    GRANT SELECT ON apps.GL_LEDGERS TO ebs_integration;
    GRANT SELECT ON apps.GL_LEDGER_SETS_V TO ebs_integration;
    GRANT SELECT ON apps.GL_LEDGER_SET_NORM_ASSIGN TO ebs_integration;
    GRANT SELECT ON apps.HR_OPERATING_UNITS TO ebs_integration;
    GRANT SELECT ON apps.ORG_ORGANIZATION_DEFINITIONS TO ebs_integration;
    GRANT SELECT ON apps.PER_ALL_PEOPLE_F TO ebs_integration;
    GRANT SELECT ON apps.PER_SECURITY_ORGANIZATIONS TO ebs_integration;
    GRANT SELECT ON apps.PER_SECURITY_PROFILES_V TO ebs_integration;
    GRANT SELECT ON apps.WF_ROLES TO ebs_integration;
    GRANT SELECT ON apps.WF_ROLE_HIERARCHIES TO ebs_integration;
    GRANT SELECT ON apps.WF_USER_ROLES TO ebs_integration;
    GRANT SELECT ON apps.PO_AGENTS TO ebs_integration;
    -- Create a profile with the SESSION_PER_USER limit
    CREATE PROFILE ebs_integration_profile LIMIT
    SESSIONS_PER_USER 5;
    
    -- Assign this profile to the integration user
    ALTER USER ebs_integration PROFILE ebs_integration_profile;
    verify-ca - Require SSL and verify CA certificate
  • verify-full - Require SSL and verify full certificate chain including hostname

  • Password

    Password for the database user.

    DELETE on tables

    Metadata Read

    View object definitions

    VIEW DEFINITION

    Metadata Write

    Modify object definitions

    ALTER on objects

    Metadata Create

    Create new objects

    CREATE TABLE, CREATE VIEW

    Metadata Delete

    Drop objects

    DROP on objects

    Non-Data

    Administrative and control operations

    CONTROL SERVER, BACKUP DATABASE

    Uncategorized

    Permissions not in above categories

    Various specialized permissions

    CREATE VIEW

    Create new views

    BACKUP DATABASE

    Perform database backups

    CONTROL

    Full control over the object

    Microsoft's documentation on SQL Server instance configuration

    CSV Upload

    Import identity and authorization data from CSV files into Veza

    Overview

    Use CSV Upload to integrate identity and authorization metadata from sources that don't have built-in Veza connectors, but can export or provide data in tabular format.

    You can create a CSV integration in Veza to:

    • Import user and authorization data from legacy or custom applications

    • Integrate with SaaS applications that support CSV exports

    • Model employee access to homegrown or specialized systems

    • Upload employee metadata from your HRIS as a source of identity for Lifecycle Management workflows

    The integration uses the Open Authorization API (OAA) to map CSV data to supported OAA templates:

    • Application - Models Users, Groups, Roles, and Resources across applications for a wide variety of authorization use cases. An introduction to the Application Template .

    • Human Resource Information Systems (HRIS) - Models employee information from HR sources for use with Lifecycle Management (LCM).

    Application Template - Use Custom Applications to model business applications and access permissions:

    • Models Users, Groups, Roles, and Resources across applications

    • For example, you can upload user permissions from a homegrown CRM system, data store, or any other application users can access.

    HRIS Template - Use for employee data from HR systems

    • Models employee information and organizational structure

    • For example, you can upload employee data for manager-based Access Reviews and automated provisioning with Lifecycle Management.

    Which template should I choose? If your CSV contains information about who can access what resources, choose Application. If it contains employee information like departments and managers, choose HRIS.

    Warning: Mapping Employment Status Properties with HRIS CSV

    When manually mapping your HRIS CSV, use only one of the following two fields: is_active or employment_status to avoid misleading data on employment type.

    When to Use CSV Integration

    CSV integration is ideal for systems that export tabular data but lack dedicated Veza connectors:

    • Legacy applications with user permission exports

    • Custom business applications built in-house

    • HR systems for employee lifecycle management

    • Specialized industry tools without native APIs

    CSV import enables modeling identity and permissions metadata for any application not natively supported by Veza, with flexible column mapping, custom properties, and support for multiple data formats.

    Adding a CSV Integration

    Prerequisites

    To create an integration from CSV, you will need:

    • A CSV file containing relevant data with column headers

    • Sufficient permissions in Veza (Admin or OAA CSV Manager role)

    • Understanding of the data model for the source application

    • A plan for mapping between CSV columns and Veza attributes

    For more information about user roles and permissions, see .

    Format Requirements

    CSV (Comma-Separated Values) is a widely used file format that stores tabular data in plain text. Each row represents a record or a relationship between entities (e.g., User to Role), and columns represent attributes.

    When importing from CSV:

    1. The first row must contain column headers

    2. Each column can be mapped to a specific Veza attribute or custom attribute

    3. Columns can be ignored after uploading the file

    4. At minimum, you must map columns for unique identifiers (such as user ID or Name) for each entity type you plan to import (e.g., Users, Groups, Roles, or Employees).

    Column Header Case Sensitivity: Column headers must be unique regardless of case. While the mapping interface is case-sensitive and may allow you to map columns with similar names like "Email" and "email", the import process is case-insensitive and will fail if duplicate column names exist with different casing. Ensure all column headers have distinct names.

    Create a CSV Integration

    To create a new CSV integration:

    1. Go to Integrations > Add Integration

    2. Choose Upload CSV from the options

    3. Upload a logo for the provider (optional) - This will appear throughout the Veza UI, including in Graph search, to identify the integration and entity types.

    4. Enter an integration name

    CSV Column Mapping

    The CSV integration allows you to map columns in your file to specific Veza attributes. After uploading the CSV, Veza automatically detects all columns and presents them for mapping.

    For each column, you can:

    1. Select to include or exclude the column

    2. Select the target entity type for mapping (available entities depend on the selected template)

    3. Select the specific entity attribute to map to (only attributes applicable to the selected entity type will be shown)

    4. For custom properties, specify a name and data type

    Example: Mapping CSV columns to Application template entities and attributes

    For more examples and detailed mapping patterns, see .

    Supported Entity Types and Attributes

    For all entities, an ID or Name is required. If ID is not provided, Name is automatically used as the unique identifier for the entity. Both are also supported.

    The available entity types and attributes depend on the template you select. Each template supports different entity types.

    ⚠️ Warning: Mapping Properties with HRIS CSV

    When manually mapping your HRIS CSV, use only one of the following two fields: is_active or employment_status to avoid misleading data on employment type.

    Application Template Entities

    User Attributes

    Attribute
    Description

    Group Attributes

    Attribute
    Description

    Role Attributes

    Attribute
    Description

    HR System Template Entities

    Employee Attributes

    Attribute
    Description

    Data Type Handling

    Boolean Values

    The following values are treated as TRUE (case-insensitive):

    • true, t

    • yes, y

    • 1

    Any other value is treated as FALSE.

    Timestamp Formats

    Veza supports multiple timestamp formats:

    • 2023-04-12T15:34:56.123456789Z (RFC3339 with nanoseconds)

    • 2006-01-02T15:04:05Z07:00 (RFC3339)

    • 20060102150405 (Active Directory format)

    Timestamps are considered unset when the value is never, null, none, false, 0 or empty. Invalid timestamps will result in a processing error.

    String Lists

    For attributes that support lists (like Role Name List, and Group Name List), values should be comma-separated within the cell and the list enclosude by quotes ".

    Updating a CSV Integration

    Incremental updates are not supported; you must submit the complete data set for each update.

    ⚠️ Warning: Configuration Updates

    When updating the configuration fields or mappings for an existing CSV integration, changes are not reflected until after the next CSV Upload is processed. For example when updating the HRIS Type field, changing this field alone and saving the integration will not immediately change the type Veza system. Then new type will not be availble in graph or in other features such as Lifecycle Management (LCM) until after the next upload is processed.

    Required Process for changing configurations:

    Push new data for an existing integration

    1. Find the CSV integration on the Veza Integrations page

    2. Click on the integration name to view details

    3. Under Data Sources, click Upload CSV

    4. Select your updated CSV file and click Upload

    Update mappings for an integration

    1. Find the CSV integration on the Veza Integrations page

    2. Click on the integration name to view details

    3. Click Edit

    4. In the integration configuration, click Edit above the table of current mappings

    CSV Manager Role

    Veza provides a limited privilege "CSV Manager" role for users that need permission to manage a CSV integration, but should not have access to other functionality in Veza.

    Early Access Feature: The CSV Manager role is currently in early access and must be enabled by Veza support before it can be assigned to users. Contact your Customer Success Manager or submit a support request to enable this role.

    Users with this role can:

    • Create new CSV integrations

    • Upload new CSV data

    • Edit existing CSV integrations, including delete

    This role can be combined with to further limit a user's scope. When a user with the CSV manager role is added to a non-root team, they can only manage CSV integrations assigned to their team.

    Processing Rules

    • Multiple Rows per Entity: If the same entity (user, group, or role) appears in multiple rows, Veza processes them as follows:

      • Properties are set based on the first row where the entity ID (or Name if it is being used as the unique ID) appears

      • For subsequent rows with the same identifier, only relationship assignments are processed (for example user to group, or user to role)

    Related Documentation

    CyberArk

    Configuring the Veza integration for CyberArk Security Platform

    Overview

    The CyberArk integration enables Veza to discover and analyze identities, applications, and permissions across the CyberArk Security Platform. This integration provides visibility into user access patterns, application assignments, and role-based permissions managed through CyberArk components.

    GitHub

    Configuring the Veza integration for GitHub

    Overview

    The GitHub Enterprise integration enables Veza to authenticate with organizations and discover users, repositories, teams, and other , along with searchable metadata (attributes) for these entities. Veza will also map external corporate identities (such as Azure AD Users) to granular GitHub Roles and Permissions.

    After configuring the integration you can use Workflows and Search to review access to public and private GitHub repositories within your organization. Built-in Saved Queries for GitHub are available for customization and use in .

    This integration supports self-managed and cloud-hosted GitHub environments, including:

    Azure PostgreSQL Database

    Enabling PostgreSQL database discovery for the Azure integration.

    The Azure integration includes built-in support for PostgreSQL on Azure Database. After enabling the feature, you can use search, insights, and workflows to:

    • Find principles with permissions on PostgreSQL Servers, Databases, Tables, and Schemas.

    • Identify principles with privileged permissions (such as Delete) on PostgreSQL entities

    This document provides steps to create the required database user, and configure the integration. See for more details.

    Microsoft Dynamics 365 ERP

    Configuring the Veza integration for Microsoft Dynamics 365 ERP

    Veza's integration with Microsoft Dynamics 365 ERP allows you to discover and visualize permissions data from your Dynamics 365 ERP environments, including Users, Groups, Application Users, and Security Roles. This integration shows connections between Azure AD Users, Groups, and Service Principals, and the roles they can assume within Dynamics 365 ERP.

    Prerequisites

    Before setting up the Dynamics 365 ERP integration:

    1. Complete the

  • Use a title that uniquely identifies this integration source

  • Avoid generic terms like "application" or "CSV"

  • If you have multiple environments, consider including that in the name

  • Select a data source template (currently supports Application and HR Systems)

  • Enter template-specific information (fields will vary based on the selected template):

    For Application Template:

    • Name: A unique identifying name for this specific application instance (e.g., "Marketing CRM - Prod", "HR Portal - Dev").

    • Type: The general category or system type (e.g., "CRM", "DevOps Tool"). In Veza, the type appears as a prefix on entity names, e.g., CRM User, DevOps Tool Role.

    For HR System Template:

    • Name: A unique identifying name for the HR system (e.g., "Workday - Production", "HR Portal - Dev")

    • Type: The type of HR system (e.g., "HRIS", "ATS", "Benefits")

    • URL: The URL of the HR system

    Note: Naming is critical for easy search in Veza. For Applications, the Type enables searching for all entities of that category, while the Name differentiates between multiple instances of the same system type.

  • Upload the CSV file - Veza will read the column headers and show them for mapping

  • Map your columns to Veza attributes (see Column Mapping section)

  • Click Create Integration to trigger extraction and parsing

  • Password Last Changed At

    Timestamp of the last password change

    Email

    User's email address

    Custom Properties

    Map any column to a custom user property (type varies)

    Owner ID

    Entity Owner ID to assign

    Owner Type

    User node type for Entity Owner(s)

    Preferred Name

    Employee's preferred name

    Display Full Name

    Complete display name

    Canonical Name

    Standardized name format

    Username

    Employee's username

    Email

    Primary email address

    IDP ID

    Identity Provider ID

    Personal Email

    Personal email address

    Home Location

    Employee's home location

    Work Location

    Employee's work location

    Cost Center

    Cost center assignment

    Department

    Employee's department

    Managers

    Employee's manager(s) (supports list format)

    Groups

    Group memberships (supports list format)

    Employment Status

    Current employment status

    Is Active

    Boolean indicating active employment

    Start Date

    Employment start date

    Termination Date

    Employment end date

    Job Title

    Employee's job title

    Employment Types

    Types of employment (supports list format)

    Primary Time Zone

    Employee's primary time zone

    Custom Properties

    Map any column to a custom employee property (type varies)

    active

  • enabled

  • 2006-01-30 15:04:05Z07:00
  • 2006-01-30 15:04:05

  • 2006-01-30

  • 2006-01-30T

  • 2006-01-30T15:04:05

  • 2006-01-30T15:04:05Z

  • 1/2/2006 (MM/DD/YYYY format)

  • Update the configuration fields in the integration settings

  • Re-upload the complete CSV file to apply the changes

  • Allow the Veza platform to complete the extraction and parse process

  • Verify that entity names are consistent across all Veza components

  • Modify your column mappings as needed

  • Click Save Configuration to apply the changes

  • Role permissions are the only properties that are additive across all rows
  • Ignored Columns: Columns that are not mapped (unchecked) are ignored during processing

  • Additional Columns: CSV files can contain more columns than are mapped - extra columns are ignored

  • Entity Identifiers: Every entity type (user, group, role) requires an ID or Name (or both). If only one is provided, the same value is used for both fields and must be unique.

  • Identity Mapping: When using the Application template, you can choose the column(s) used to connect external identities.

  • Automating CSV Upload

    ID

    Unique identifier for the user

    Name

    Display name for the user

    Is Active

    Boolean indicating if the user is active

    Created At

    Timestamp when the user was created

    Last Login At

    Timestamp of the user's last login

    Deactivated At

    Timestamp when the user was deactivated

    ID

    Unique identifier for the group

    Name

    Name of the group (supports list format)

    Created At

    Timestamp when the group was created

    Custom Properties

    Map any column to a custom group property (type varies)

    Owner ID

    Entity Owner ID to assign

    Owner Type

    User node type for Entity Owner(s)

    ID

    Unique identifier for the role

    Name

    Name of the role (supports list format)

    Permissions

    Permissions assigned to the role (supports list format)

    Custom Properties

    Map any column to a custom role property (type varies)

    Owner ID

    Entity Owner ID to assign

    Owner Type

    User node type for Entity Owner(s)

    ID

    Unique identifier for the employee

    Name

    Employee name (typically full name)

    Employee Number

    Alternative employee identifier

    Company

    Employee's company

    First Name

    Employee's first name

    Last Name

    Employee's last name

    can be found here
    Learn more about the Application Template
    Roles
    CSV Import Examples
    Teams
    Open Authorization API (OAA) Templates
    Managing Teams and Permissions
    Creating Custom Reports
    Understanding the Veza Access Graph
    CSV Mapping Interface with column selection and attribute mapping options
    Supported Components

    CyberArk Identity - Cloud-based identity management platform

    • Identity visibility across all managed users and applications

    • Role and permission mapping to understand access grants and inheritance

    • Cross-service identity correlation to connect identities with other systems in your Access Graph

    • Access reviews for compliance and governance workflows

    CyberArk Privilege Cloud - Privileged access management platform

    • Discovery and analysis for privileged account containers

    • Privileged account visibility with granular permission mapping

    • Cross-service effective permissions connecting external IdP users to Privilege Cloud resources

    • Privilege analysis across 20+ distinct safe permission types

    See supported entities for detailed information about each component's capabilities.

    Integration Configuration

    The CyberArk integration uses a unified OAuth2 configuration to connect to both CyberArk Identity and CyberArk Privilege Cloud components. Both components share the same authentication credentials but access different API endpoints within the CyberArk environment.

    CyberArk Identity Configuration

    Before configuring the integration in Veza, you need to enable API access in your CyberArk Identity tenant with OAuth2 client credentials authentication.

    Prerequisites

    Ensure you have the required administrative access before beginning the setup process.

    • Permission to add CyberArk integrations in Veza

    • Administrator access to the CyberArk Identity tenant

    • Ability to create OAuth applications in CyberArk Identity

    • Permissions to create service accounts or assign API access rights

    Required API Access

    All four scopes listed below are required for full integration functionality. Use specific scopes rather than wildcards for security best practice.

    • Redrock/query - For querying entities using Redrock interface

    • Roles - For role definitions and assignments

    • Core - For core administrative functions

    • UPRest - For user and policy services

    Required setup steps:

    Creating OAuth Application

    1. Access Admin Portal

      • Log into CyberArk Identity

      • Switch from "Identity User Portal" to "Identity Administration"

    2. Create OAuth2 Client Application

      • Navigate to Apps & Widgets > Web Apps

      • Click Add Web Apps

      • Go to the Custom tab

      • Next to OAuth2 Client application, click Add

      • Click Yes to add the application, then Close to exit the Application Catalog

    3. Configure Settings Page

      • Application ID: Enter a unique identifier (e.g., "veza_oauth_client")

        • This becomes part of your OAuth2 endpoint URL

      • Application Name: Enter a descriptive name (e.g., "Veza Integration Client")

    4. Configure General Usage Page

      • Client ID Type: Select Confidential

        • This requires OAuth2 client to send both client ID and client secret

      • Issuer: Leave as default

    5. Configure Tokens Page

      • Token Type: Select JwtRS256 (recommended)

      • Auth Methods: Select Client Creds

      • Token Lifespan: Set to more than 10 minutes (5 hours recommended)

    6. Configure Scope Page

      • Add the four required API scopes: Redrock/query, Roles, Core, and UPRest

    7. Configure Permissions Page

      • Select the role(s) that users must have to authorize against this OAuth server

      • Ensure the roles have appropriate API access permissions

      • Verify Run permission is enabled for the assigned roles

    8. Save Configuration

      • Click Save to complete the OAuth2 client setup

      • Note the Application ID - this will be your Client ID for Veza configuration

    9. Generate Client Secret

      • After saving, generate or note the Client Secret

      • Store both Client ID (Application ID) and Client Secret securely

      • These credentials will be required for the Veza integration configuration

    Configuring CyberArk in Veza

    Once you have configured OAuth access in CyberArk Identity, enable the integration in Veza. The same configuration provides access to both CyberArk Identity and Privilege Cloud components.

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and search for CyberArk. Click on it and click Next to add an integration.

    3. Enter the required information.

    4. Click Create Integration to save the configuration.

    Once configured, the integration will begin discovering users, roles, and applications from CyberArk Identity, and safes and privileges from CyberArk Privilege Cloud.

    Field
    Notes

    Insight Point

    Choose whether to use the default data plane or a deployed Insight Point.

    Name

    A friendly name to identify the unique integration (e.g., "CyberArk Identity - Production").

    Identity URL

    Your CyberArk Identity tenant URL in the format https://<tenantID>.id.cyberark.cloud.

    Client ID

    OAuth Client ID from the CyberArk OAuth application configuration.

    Privilege Cloud URL

    Your CyberArk Privilege Cloud tenant URL in the format https://<prefix>.privilegecloud.cyberark.cloud.

    Client Secret

    OAuth Client Secret from the CyberArk OAuth application configuration.

    Supported Entities

    This section details the entities and relationships supported by each CyberArk component.

    CyberArk Identity Entities

    The CyberArk Identity integration collects data using a combination of REST APIs and Redrock queries (CyberArk Identity's SQL-like interface). The integration focuses on identity and access management entities within the CyberArk Identity platform:

    Supported Entity Types:

    CyberArk Identity:

    • Identity Instance - The CyberArk Identity tenant

    • Users - Individual user accounts and service accounts

    • Roles - Administrative and custom roles with permissions

    • Applications - SSO-enabled applications and services

    CyberArk Privilege Cloud:

    • Privilege Cloud Instance - The CyberArk Privilege Cloud tenant

    • Safes - Privileged account containers with permission sets

    • Effective Permissions - Calculated access rights to safes

    Users

    Individual user accounts managed in CyberArk Identity, including both native CyberArk Identity directory users and users from external identity providers.

    Users can have both direct role assignments and direct application access through effective permission calculations.

    Attribute
    Notes

    display_name

    User's display name from CyberArk Identity profile

    email

    Email address used for identity correlation across systems (sourced from CyberArk SearchEmail field)

    is_active

    Account status - true for active accounts, false for locked accounts (derived from CyberArk UserStatus)

    last_login_at

    Timestamp of last successful authentication (converted from CyberArk LastLogin epoch time)

    identity_type

    Identity classification - "Human" or "NonHuman" (derived from CyberArk ServiceUser boolean)

    risk_level

    CyberArk Identity-assigned risk level for the user

    Roles

    Role-based access control definitions within CyberArk Identity, including both system roles and custom organizational roles.

    Roles define administrative permissions and capabilities within CyberArk Identity but do not directly grant application access. Instead, roles provide administrative rights for managing users, applications, and the platform itself.

    Attribute
    Notes

    description

    Role purpose and scope description

    is_hidden

    Boolean indicating if role is visible in standard interfaces

    read_only

    Boolean indicating if role can be modified

    role_type

    Type classification (System, Custom, Administrative)

    permissions

    List of CyberArk administrative rights assigned to the role (e.g., "All Rights", "Read Only User Management", "Report Management")

    Applications

    Applications and services managed through CyberArk Identity for single sign-on and access control.

    Users gain access to applications through direct assignments rather than through role inheritance. Application access is managed independently from administrative role permissions.

    Attribute
    Notes

    display_name

    User-friendly application display name (sourced from CyberArk DisplayName field)

    description

    Application description and purpose

    catalog_visibility

    Visibility settings in application catalog

    category

    Application category classification

    on_prem

    Boolean indicating on-premises vs cloud deployment

    service_name

    Technical service identifier

    Identity Instance

    The CyberArk Identity tenant itself, representing the central identity platform that manages all users, roles, and applications.

    Attribute
    Notes

    name

    Tenant name derived from the tenant URL

    id

    Unique tenant identifier generated by Veza

    tenant_url

    CyberArk Identity tenant URL used for API connections

    CyberArk Privilege Cloud Entities

    The CyberArk Privilege Cloud integration discovers privileged access management entities including safes, safe members, and effective permissions. It establishes cross-service connections with CyberArk Identity users to provide comprehensive privilege analysis.

    Safes

    Privileged account containers that group accounts with similar security requirements and access controls. Safes act as the primary resource boundaries within CyberArk Privilege Cloud.

    Safes contain privileged accounts (such as administrator credentials, service accounts, and database users) and define who can access these accounts and what operations they can perform. Currently, only individual user permissions to safes are discovered (group permissions are not supported).

    Attribute
    Notes

    name

    Safe name as defined in CyberArk Privilege Cloud

    display_name

    User-friendly display name for the safe

    description

    Safe description and purpose

    auto_purge_enabled

    Boolean indicating if automatic purging of old versions is enabled

    is_expired_member

    Boolean indicating if safe membership has expired

    managing_cpm

    Name of the Central Policy Manager (CPM) that manages this safe

    Effective Permissions

    Calculated access rights that CyberArk Identity users have to specific CyberArk Privilege Cloud safes. These permissions represent the actual privileges a user can exercise on privileged accounts within safes.

    Attribute
    Notes

    resource_id

    Unique identifier of the safe this permission applies to

    resource_type

    Always "CyberArkSafe" for Privilege Cloud effective permissions

    principal_id

    CyberArk Identity user ID that has this permission

    principal_type

    Always "CyberArkUser" for cross-service effective permissions

    datasource_id

    Privilege Cloud datasource identifier

    permissions

    List of specific safe privileges granted to the user

    Supported Safe Privileges:

    CyberArk Privilege Cloud supports granular privilege control with over 20 distinct permission types:

    Permission
    Description

    Access Without Confirmation

    Access privileged accounts without additional approval

    Add Accounts

    Create new privileged accounts within the safe

    Backup Safe

    Create backups of the safe and its contents

    Create Folders

    Create organizational folders within the safe

    Delete Accounts

    Remove privileged accounts from the safe

    Delete Folders

    Remove organizational folders from the safe

    Privilege Cloud Instance

    The CyberArk Privilege Cloud tenant itself, representing the central privileged access management platform.

    Attribute
    Notes

    name

    Tenant name derived from the Privilege Cloud URL

    id

    Unique tenant identifier generated by Veza

    instance_url

    CyberArk Privilege Cloud tenant URL used for API connections

    Identity Mapping

    If your users access CyberArk via single sign-on, Veza can show the relationships between external users in your Identity Provider and CyberArk Identity Users. You can configure custom identity mappings within an Identity Provider configuration to correlate identities based on a mapping field such as unique id, email, or a more complex matching pattern.

  • GitHub Cloud (e.g. Organizations on github.com)

  • GitHub Enterprise Cloud

  • GitHub Enterprise Server

  • For self-managed GitHub deployments, you should use an Insight Point to enable the connection, or allow traffic from Veza's cloud IPs.

    Enable Lifecycle Management

    The GitHub integration supports Lifecycle Management capabilities for user provisioning, team management, and de-provisioning. LCM can invite users to GitHub organizations, manage team memberships, and suspend accounts during offboarding workflows.

    Supported LCM actions include:

    • Sync Identities: Create and update user accounts with email addresses and profile information

    • Manage Relationships: Add or remove users from organizations and teams

    • De-provision Identity: Suspend user accounts and remove all access relationships

    To enable LCM functionality, your GitHub App requires additional write permissions beyond the basic read-only permissions:

    • Organization permissions - Members (Write)

    • Organization permissions - Administration (Write)

    • Repository permissions - Administration (Write)

    Note: LCM operations use GitHub Admin API endpoints that require site administrator privileges. This is typically available in GitHub Enterprise Server environments.

    For detailed LCM configuration and examples, see the GitHub Lifecycle Management guide.

    Configuration

    To authenticate with GitHub, you will need to create a Github App granting Veza access your organization to gather the necessary information. See the instructions for:

    • creating a read-only GitHub App for Veza, and install it into the GitHub organizations to discover.

    • adding the integration to Veza with the GitHub App's credentials.

    To integrate with several organizations with a single GitHub App and Veza integration configuration, you can:

    1. Create the GitHub app.

    2. Set it to Public.

    3. Install the app into each GitHub organizations to discover.

    For more details, see the GitHub documentation Creating GitHub Apps and Making a GitHub App Public or Private.

    GitHub setup instructions

    To create and register the application within an organization you administer, open GitHub Settings > Organizations. Click Settings next to the name of the organization containing the members, repositories, and permissions to extract.

    If you are not an org admin, you can create the app under your personal Developer Settings > GitHub Apps > Add New. Pick Any Account when choosing where to install the app. You will need to Request installation to any organization you are a member of, which an administrator must approve.

    1. On the Organization's settings page, click Developer Settings > GitHub Apps > Add New

    2. Fill out the following fields:

      • GitHub App name must be unique (e.g. YourOrg-Veza-Integration-01)

      • Homepage URL is not used but required by GitHub. Enter an address such as the URL of your Veza instance (e.g. https://yourorg.vezacloud.com)

      • All other fields are optional

    3. Assign the required permissions to the application. Add the following Read-Only permissions:

      • Repository permissions - Administration

      • Repository permissions - Metadata

    4. Enter Only on this account for Where can this app be installed?, or enable the app for other accounts by making it Public.

    5. Click Create GitHub App to open the app settings page

      • Note the “App ID” towards the top of the screen. Click Generate a private key to download the base64-encoded .pem key file.

    6. Finally, install the App into the Organization(s) you want to discover:

      1. Open the app settings page (Settings > Developer settings > GitHub Apps > your-application)

      2. Click Install next to the organization name

    Discovering user email addresses

    Github only publishes user emails that belong to a verified or approved domain for the tenant organization. This intentional behavior allows personal accounts to serve as individual developer portfolios that are portable across companies. To filter users by email or configure identity mappings, you will need to ensure that users in your organization have addresses that match a verified/approved domain.

    An organization owner must configure verified/approved domains for GitHub. If such a domain already exists, you should request that all users add an email address belonging to the domain. For more information see the Verifying or Approving a Domain for your Organization

    Veza setup instructions

    To add a GitHub integration, use the navigation bar to open the Integrations page. Click Add New Integration and enter the required information using the App Key and ID from the earlier steps.

    Field
    Notes

    Name

    Name to identify the configuration

    App ID

    GitHub App ID

    App Key

    GitHub App private key

    Insight Point

    Leave default or use an external

    Server URL

    For self-managed or privately hosted GitHub Enterprise, the custom server URL (e.g., https://github.yourcompany.com). Leave empty for public GitHub.com.

    Enterprise Cloud Slug

    For GitHub Enterprise cloud deployments, the Enterprise ID as in https://github.com/enterprises/<ENTERPRISE-SLUG>

    • The Enterprise cloud slug is optional. When provided, the ID is used to correlate external identities with GitHub users.

    • Leave Server URL empty only when connecting to public GitHub.com (github.com). For self-managed GitHub Enterprise Server or privately hosted GitHub Enterprise Cloud instances with custom domains, provide the full server URL (e.g., https://github.yourcompany.com).

    Veza uses the app credentials for the initial connection. Future requests use an access token, which the connector will generate at runtime.

    Notes and supported entities

    After enabling the integration and connecting to GitHub, Veza will discover entities and attributes for:

    • GitHub Organizations

    • GitHub Personal Accounts

    • GitHub Personal Access Tokens

    • GitHub Teams

    • GitHub Roles

    • GitHub Apps

    • GitHub Repositories

    Cross-Service Connections: Veza automatically detects relationships between Okta and Azure AD identities and GitHub user accounts. If your organization implements Single-Sign On (SSO) for another Identity Provider (IdP), you can add Custom Identity Mappings to correlate GitHub Personal Accounts with identities from any integrated IdP.

    Use the Access Intelligence Overview to review all entities Veza has discovered.

    Veza uses some common properties for all GitHub entities:

    Property
    Notes

    DatasourceID

    Veza unique ID for the GitHub data source

    ID

    Veza global unique identifier

    Name

    Veza display name

    CreatedAt

    Creation date (within GitHub)

    UpdatedAt

    Updated date (within GitHub)

    GitHub Organization

    Organizations are shared accounts where teams of users can work together on public and private projects.

    Property
    Notes

    PublicRepos

    Number of public repositories

    TotalPrivateRepos

    Number of private repositories

    OwnedPrivateRepos

    Number of owned repositories

    Is2faEnabled

    True if the organization account requires multi-factor authentication

    Plan

    Organization Payment plan type

    GitHub Personal Account

    A personal account (GitHub User) can be a member of the organization or an "outside collaborator" (who has some permissions on repositories, but is not an org member).

    Property
    Notes

    DisplayName

    GitHub username

    Is2faEnabled

    Whether the user has enabled MFA

    PublicEmail

    Email address used for commits (if set)

    Emails

    List of all user emails matching verified domain

    LdapDn

    Distinguished Name (DN) the user maps to (GitHub Enterprise only)

    FullAdmin

    True if the user is Site Admin

    You can explain effective permissions to show the grouped role permissions assigned to the user.

    GitHub Personal Access Token

    A Personal Access Token (PAT) is a credential used to authenticate GitHub API requests. It can be either a classic token or a fine-grained token with specific permissions.

    Property
    Notes

    AccessAllRepositories

    True if token has access to all repos in the organization

    CanExpire

    Whether the token has an expiration date

    Classic

    True if this is a classic PAT (vs fine-grained)

    CreatedAt

    Timestamp when the token was created

    ExpiresAt

    Expiration timestamp (if set)

    IsActive

    Whether the token is currently active

    Token can be connected to a Github Personal Access Token Permission node representing the effective permissions on GitHub resources.

    GitHub Team

    Teams represent groups of users. Assigning GitHub Personal Accounts to teams grants the users permissions on the team's repositories.

    Property
    Notes

    ParentTeam

    The team in your organization's hierarchy under which this group is nested

    LdapDn

    Distinguished Name (DN) the team maps to (GitHub Enterprise only)

    Possible roles on repositories are: admin, maintain, push, triage, pull.

    GitHub App

    Apps on GitHub (Non-human service accounts) enable automation, workflows, and integrations for a user or organization. GitHub App permissions are not assigned with roles, but are individually granted, for example "administration":"read","emails":"read","metadata":"read","members":"read","organization_administration":"read".

    Property
    Notes

    Permissions

    List of permissions assigned to the app

    GitHub Repository

    Property
    Notes

    IsArchived

    True if repository is archived

    IsDisabled

    True if repository is disabled

    IsFork

    True if repository is a fork

    ForkCount

    Number of repository forks

    GithubInternalID

    Repository ID

    GitHub Role

    These roles grant a set of repository permissions to teams or individual users. Roles can also apply to an organization or team.

    Property
    Notes

    Permissions

    list of permissions granted by the role

    entities
    Reports
    Configuring Azure Database for PostgreSQL

    To enable the connection between Veza and Azure PostgreSQL, you will need to:

    • Deploy an Insight Point in the same virtual network as the databases to discover, or a peered virtual network.

      • Using an Insight Point is recommended when connecting to production environments. For testing purposes, you can use the internal Insight Point, assuming that firewall rules allow communication with Veza.

    • Create local PostgreSQL user(s) Veza can use to log in.

    • Enable PostgreSQL discovery by creating an Azure integration or editing an existing configuration.

    Create a PostgreSQL user for Veza

    For each server you want to discover, create a local user with read-only permissions on the required system tables. All Veza PostgreSQL users for different servers within a single Azure tenant must share the same username and password.

    Log in as an administrator using your client of choice, and create a user with the required permissions. Replace [db_user] with the desired username:

    Explicitly granting the pg_catalog permissions is required for Single server deployments. When configuring the user for Azure Flexible Servers, new users will already have access to pg_catalog tables, and a no privileges were granted warning will appear.

    You will enter the local username and password when configuring the Azure integration on the Veza platform.

    Troubleshooting

    To verify that new user can read the required tables, you can log in as the new user ( \c postgres [db_user] in psql) and run the following script:

    See How to create database users in Azure Database for PostgreSQL for more details.

    Enable PostgreSQL for the Azure integration

    Log in to Veza as an administrator to finish configuring the integration. You can enable PostgreSQL for an existing integration, or when creating one.

    1. In Veza, open the Integrations page..

      1. To add an integration, Click Add Integration > Azure and complete the steps to configure Microsoft Azure.

      2. To modify an existing integration, find the provider on the main list and click Edit.

    2. From the Insight Point dropdown, pick the one you created for connecting to the PostgreSQL server.

    3. Go to the Limit Services tab.

    4. If you have already limited the services to discover, remember to enable Azure PostgreSQL.

    5. Scroll to the bottom and enter the username and password for the PostgreSQL user.

    6. Optionally, enter a comma-separated list of databases and schema to allow or deny. If the allow list is populated, only those resources are discovered. If the deny list is populated, the specified resources are skipped.

    Notes and Supported Entities

    The integration supports flexible server and single server deployments. Azure Arc enabled PostgreSQL is not supported.

    Veza discovers the following PostgreSQL entities and attributes:

    PostgreSQL User

    An individual account or identity, assigned specific permissions to control access to databases, schemas, tables, and other database objects.

    • ID

    • Provider ID

    • Datasource ID

    • Is Super User

    • Can Create DB

    • Can Initiate Streaming Replication

    • Can Bypass All Row Level Security

    • External Account Type

    PostgreSQL Database

    A logical container within an Azure PostgreSQL service instance that stores data, organized into tables. Several databases can exist within a single PostgreSQL instance, each serving a distinct purpose or application.

    • Name

    • ID

    • Provider ID

    • Datasource ID

    • Owner

    • Server ID

    PostgreSQL Group

    Represents a logical grouping of database users or roles. Groups manage access control and permissions by assigning specific privileges to several users with common roles.

    • Name

    • ID

    • Provider ID

    • Datasource ID

    PostgreSQL Instance

    A PostgreSQL instance in Azure represents a dedicated, managed PostgreSQL database server hosted on Azure infrastructure. Each instance has its own connection endpoint, configurations, and access controls.

    • Name

    • ID

    • Provider ID

    • Datasource ID

    • Server ID

    • Azure Tenant ID

    PostgreSQL Schema

    A container within a PostgreSQL database that helps organize database objects, such as tables and views. Schemas logically group and manage database objects, making it easier to maintain and navigate a complex database structure.

    • Name

    • ID

    • Provider ID

    • Datasource ID

    • Owner

    PostgreSQL Table

    A fundamental database object that stores structured data in rows and columns, allowing for efficient querying and manipulation of data.

    • Name

    • ID

    • Provider ID

    • Datasource ID

    • Owner

    PostgreSQL Procedure

    A fundamental database object that allowing user to write and execute functions written in supported languages, such as C.

    • Name

    • ID

    • Provider ID

    • Datasource ID

    • Owner

    PostgreSQL Trigger

    A fundamental database object that automatically executes a particular function whenever a certain type of operation is performed.

    • Name

    • ID

    • Provider ID

    • Datasource ID

    • Owner

    PostgreSQL Permissions

    Veza creates additional entities to represent capabilities users can have on PostgreSQL resources:

    • PostgreSQL Privilege: Configured permissions, shown in System query mode.

    • PostgreSQL Effective Permission: Effective permissions, shown in Effective query mode.

    notes and supported entities
    . The integration will use the enterprise application created during setup.

    Finding the Dynamics 365 ERP Environment URL

    When configuring the Dynamics 365 ERP integration, you must provide the correct URL for your environment:

    For ERP environments, use the operations URL in the format: https://xxx.operations.dynamics.com

    Important: URLs must include the https:// protocol and must NOT include any trailing slashes at the end. For example, use https://company.operations.dynamics.com not https://company.operations.dynamics.com/.

    Grant Azure AD Enterprise Application access to Dynamics 365 ERP

    In order for Veza to extract Dynamics 365 ERP data, you need to grant your Azure AD Enterprise Application access to the Dynamics 365 ERP environments. To enable access to ERP:

    1. In Azure, find the Enterprise App used for the Veza-Azure integration and add the Connector.FullAccess permission under Permissions > Dynamics ERP

    2. In Dynamics ERP, go to Modules > System administration > Microsoft Entra ID applications and add an entry that matches your Entra ID Enterprise App ID

      • You will need to assign the app to an existing user with a security role that grants permission to extract data using the https://<dynamics 365 env>/data/<entity> API endpoints

    Enabling Enterprise App to access your Dynamics 365 ERP Environment does not use a paid license.

    Configure Dynamics 365 ERP in Veza

    1. Log in to Veza and navigate to Integrations

    2. Edit your existing Microsoft Azure integration (or add a new one)

    3. In the Dynamics 365 ERP Environments field, enter a comma-separated list of environments to discover

      • Example: https://company1.operations.dynamics.com,https://company2.operations.dynamics.com

      • Addresses must include the https:// protocol and omit any trailing /

    4. Save the configuration.

    5. Monitor the extraction progress in the Integrations dashboard

    6. Verify successful extraction by checking that Dynamics 365 ERP entities appear in search results

    Integration Architecture

    The Dynamics 365 ERP integration operates as part of the Microsoft Azure integration rather than as a standalone connector. It leverages the same Enterprise Application credentials used for the Azure integration to access Dynamics 365 ERP environments.

    The integration discovers organizational structure and security role assignments within Dynamics 365 ERP environments and maps them to Azure AD identities. This allows you to visualize which Azure AD users, groups, and applications have access to Dynamics 365 ERP security roles.

    Supported Entities and Attributes

    Veza discovers the following entities in Dynamics 365 ERP:

    Environment

    The Dynamics 365 ERP environment serves as the top-level container for all ERP resources.

    • Type: DynamicsERPEnvironment

    • Key Properties:

      • environment_url - The URL used to access the environment

      • azure_deployment_id - Azure deployment ID associated with the environment

      • aos_instance_name - Name of the AOS (Application Object Server) instance

      • tenant_id - Azure AD tenant ID associated with the environment

    Users

    Users represent people who access the Dynamics 365 ERP system, mapped to Azure AD accounts, with permissions defined by their security roles.

    • Type: DynamicsERPUser

    • Key Properties:

      • workflow_line_item_notification_format - Format for workflow line item notifications

      • document_handling_active - Whether document handling is active for the user

      • network_domain - Network domain for the user

      • company - Company the user belongs to

      • sqm_guid - SQM GUID for the user

      • alias - User's alias

      • email_provider_id - ID of the email provider

      • email - User's email address

      • default_country_region - Default country/region for the user

      • nickname - User's nickname

      • is_active - Whether the user is active

      • preferred_time_zone - User's preferred time zone

      • user_info_language - User's preferred language

      • auto_log_off - Auto log-off time for the user

      • account_type - User's account type

      • external_user - Whether the user is an external user

    Groups

    Groups (Teams) are collections of users who share common access permissions.

    • Type: DynamicsERPGroup

    • Key Properties:

      • Standard group properties (name, description, etc.)

    Entra ID Applications

    Entra ID Applications represent Azure Entra ID applications that have programmatic access to Dynamics 365 ERP resources.

    • Type: DynamicsERPEntraIDApplication

    • Key Properties:

      • user_id - User ID associated with the application

      • is_active - Whether the application is active

    Security Roles

    Security Roles define permission sets that control what actions users can perform within Dynamics 365 ERP.

    • Type: DynamicsERPSecurityRole

    • Key Properties:

      • context_string - Context string for the security role

      • description - Description of the security role

      • user_license_type - License type required for the role

      • access_to_sensitive_data - Whether the role provides access to sensitive data

    Relationship Types

    The Dynamics 365 ERP integration discovers the following relationship types:

    Relationship
    Description

    Has environment

    Connects Azure AD tenant to Dynamics 365 ERP Environment

    Has user

    Connects Environment to User entities

    Has group

    Connects Environment to Group entities

    Has service principal

    Connects Environment to Entra ID Application entities

    In group

    Connects Users to their Group memberships

    Has role assignment

    Connects Users/Groups to their assigned Security Roles

    Technical Limitations

    • The integration currently does not support custom entity types in Dynamics 365 ERP

    • Field-level security permissions are not currently extracted

    • Limited to API-accessible security metadata; does not include permissions managed through custom code

    Microsoft Azure integration guide

    Microsoft Active Directory

    Configuring the Veza integration for Microsoft Active Directory.

    This topic is for legacy Active Directory Domain Services. Azure AD is automatically parsed for configured Azure tenants.

    Native Identity Mapping: If you also have Azure AD integrated, Veza automatically creates identity relationships between Active Directory users/groups and Azure AD users/groups. Custom identity mapping is only needed for connecting to other systems. See Custom Identity Mappings for details.

    Veza discovers Active Directory entities and authorization by connecting as a read-only user with an LDAP certificate. To enable a secure connection to the AD Domain Controller, the integration is typically configured to use an deployed within your cloud environment.

    See for more detail on how Veza converts AD User properties for use in search filters or to refine Access Review queries.

    Prerequisites

    To configure a new Active Directory integration, you will need the following:

    • Either of the following:

      • IP address of an AD Domain Controller (preferably the domain controller with the )

      • FQDN of a domain controller or load balancer for environments using DNS resolution

    • Username and password for Active Directory user with Read Only access to the Domain

    When using domain names for connection, ensure your LDAPS certificates include the appropriate FQDNs in the Subject Alternative Name (SAN) field. This includes both individual domain controller FQDNs and load balancer FQDNs if used.

    Load Balancer Configuration

    If using a load balancer for your domain controllers:

    • Configure session persistence (sticky sessions) on the load balancer

    • Ensure all domain controllers behind the load balancer trust the same root Certificate Authority (CA) that issued the LDAPS certificates

    • The LDAPS certificate must include the load balancer's FQDN in the Subject Alternative Name (SAN) field

    Get or Generate an LDAP certificate

    If LDAPS is enabled for Active Directory, Veza requires the public certificate in base64 format (.CER Base-64) to validate the LDAPS connection.

    Certificate Storage and Security: The LDAP certificate (public portion only) is stored encrypted within Veza's system and can only be accessed via authenticated API calls. For on-premises deployments using Insight Points:

    • The certificate is encrypted using both application-layer and storage-layer encryption

    • The certificate can only be decrypted by the Insight Point within your network

    Using Microsoft Management Console (MMC) - Recommended Method

    1. From the Domain Controller, open a new MMC console (Run -> mmc.exe)

    2. Add the Snap-in Certificates and select Computer account when prompted, then select Local computer and click Finish to complete the snap-in addition process

    3. Open the Personal/Certificates folder

    Test LDAPS Connectivity

    To test the LDAPS connectivity locally before submitting the certificate to Veza:

    1. Open LDP.exe on the Domain Controller

    2. Click the Connection menu and choose Connect...

    3. Type the Domain Controller FQDN and Port Number as 636 and click OK

    4. You should see "Established connection to [Domain Controller]" and the Base DN details

    Alternative Methods

    You can also retrieve the certificate using Python:

    To retrieve an LDAPS certificate using openssl:

    If LDAPS was not already enabled, follow the steps below to generate a new certificate that includes a Subject Alternative Name (SAN). To get a new certificate with certreq.exe:

    Please only follow these instructions if you do not already have LDAPS enabled on your AD DC.

    1. Prepare the request.inf configuration file (see example below)

    2. Generate cert request from the .inf file: certreq -new request.inf request.req

    3. Submit the request to a CA (output is RequestID).

      certreq -submit request.req certnew.cer You might need to specify a Certificate Template as part of the submit command, for example: certreq -submit -attrib "certificatetemplate:webserver" request.req

    The certificate must use the SAN, as shown in the [Extensions] block in the example configuration:

    For more information see the Microsoft documentation to .

    Kerberos Authentication

    Veza supports authenticating to the Active Directory LDAP server via simple LDAP bind or with Kerberos authentication.

    If Kerberos authentication is selected, Veza will generate a simple Kerberos configuration file (krb5.conf) with the following format:

    The integration will request a Ticket Granting Ticket (TGT) and Service Ticket from the hostname provided in the integration configuration before authenticating to the LDAP server with Kerberos password authentication.

    Creating an Active Directory integration in Veza

    In Veza, browse to the Integrations page. Click Add Integration and search for Active Directory. Click on the tile to add an integration.

    Field
    Description

    Security Note: For enhanced security, you can store Active Directory credentials in an external secrets vault instead of directly in Veza. This keeps sensitive credentials in your private network. See for configuration details.

    • To connect to multiple AD domains, you will need add a new integration for each domain to discover

    • LDAP Certificate and Password are secret, and will need to be re-entered if changing the Insight Point used for the AD integration

    • You can see all extracted AD entities under Data Catalog > Entities. Veza-built queries for Active Directory can be found in and on the Saved Queries page

    Notes and Supported Entities

    • Active Directory Domain

    • Active Directory Computer

    • Active Directory Group

    • Active Directory User

    Veza discovers built-in attributes for Active Directory Users, which can be used to specify the scope of Access Reviews and filter search results. In some cases, Veza derives values from other properties, or changes AD property names for consistency with other integrations.

    • To discover custom properties created in Active Directory, specify them by name and type in the Custom Properties section when configuring the integration

    • To discover additional built-in properties, please contact our support team with more detail about your case

    Veza Attribute
    AD Attribute
    Notes

    Active Directory User Active Status

    The Is Active property for an Active Directory user is determined by their userAccountControl attribute. A user is considered Is Active: true unless their account has the ACCOUNTDISABLE flag set.

    Other userAccountControl flags, such as LOCKOUT or PASSWORD_EXPIRED, do not affect the Is Active status. The full list of flags is available in the User Account Control attribute for more granular filtering. See for possible values.

    Last Logon Attribute Behavior

    In Veza, the Last Logon value represents the most recent activity visible from the connected Domain Controller. For users who authenticate to multiple Domain Controllers, the actual logon may have occurred on a different DC. It will not be reflected in the lastLogon value from the queried DC

    The lastLogonTimestamp provides a more consistent view across the full organization, but can be up to 14 days (or the configured sync interval) behind actual logon activity

    The Last Logon attribute in Veza represents the most recent logon time for an Active Directory user. Due to Active Directory's distributed architecture, this value requires special handling:

    • lastLogon: This attribute updates every time a user authenticates, but only on the specific Domain Controller where authentication occurred. This attribute is not replicated between Domain Controllers.

    • lastLogonTimestamp: This attribute replicates across all Domain Controllers in the domain, but only updates when current_time - msDS-LogonTimeSyncInterval has passed (typically 14 days by default).

    Since Veza connects to a single Domain Controller for each Active Directory integration, during extraction the integration will:

    1. Retrieve both lastLogon and lastLogonTimestamp attributes

    2. Compare the two timestamps

    3. Uses whichever value is more recent

    For more information, see Microsoft's documentation on and attributes.

    CREATE USER [db_user] WITH LOGIN PASSWORD '[password]';
    GRANT SELECT ON
      pg_catalog.pg_user,
      pg_catalog.pg_group,
      pg_catalog.pg_namespace,
      pg_catalog.pg_class,
      pg_catalog.pg_database,
      pg_catalog.pg_auth_members,
      pg_catalog.pg_attribute,
      pg_catalog.pg_roles,
      pg_catalog.pg_trigger,
      pg_catalog.pg_proc,
      pg_catalog.pg_collation,
      pg_catalog.pg_conversion,
      pg_catalog.pg_type,
      pg_catalog.pg_event_trigger,
      pg_catalog.pg_extension,
      pg_catalog.pg_foreign_data_wrapper,
      pg_catalog.pg_foreign_table,
      pg_catalog.pg_language,
      pg_catalog.pg_largeobject_metadata,
      pg_catalog.pg_operator,
      pg_catalog.pg_opclass,
      pg_catalog.pg_opfamily,
      pg_catalog.pg_policy,
      pg_catalog.pg_publication,
      pg_catalog.pg_sequence,
      pg_catalog.pg_foreign_server,
      pg_catalog.pg_statistic_ext,
      pg_catalog.pg_subscription,
      pg_catalog.pg_tablespace,
      pg_catalog.pg_ts_config,
      pg_catalog.pg_ts_dict,
      pg_catalog.pg_parameter_acl
    TO [db_user];
    DO $$
    DECLARE
        result integer;
    BEGIN
        SELECT 1 FROM pg_catalog.pg_user LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_group LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_namespace LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_class LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_database LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_auth_members LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_attribute LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_roles LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_trigger LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_proc LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_collation LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_conversion LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_type LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_event_trigger LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_extension LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_foreign_data_wrapper LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_foreign_table LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_languageLIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_largeobject_metadata LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_operator LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_opclass LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_opfamily LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_policy LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_publication LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_sequence LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_foreign_server LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_statistic_ext LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_subscription LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_tablespace LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_ts_config LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_ts_dict LIMIT 1 INTO result;
        SELECT 1 FROM pg_catalog.pg_parameter_acl LIMIT 1 INTO result;
        RAISE NOTICE 'All queries were successful';
    EXCEPTION
        WHEN OTHERS THEN
            RAISE NOTICE 'A read query failed';
    END $$;

    Repository permissions - Repository security advisories

  • Organization permissions - Custom repository roles

    • Support for Custom Repository Roles is only available for Github Enterprise Cloud environments.

  • Organization permissions - Members

  • Organization permissions - Administration

  • Organization permissions - Personal Access Tokens

  • Unless you want to exclude specific resources, pick All Repositories

  • Click Install and approve the permissions

  • Collect personal access tokens

    Enable to show GitHub Personal Access Tokens in the Veza Access Graph

    Ignore expired personal access tokens

    Enable to exclude expired PATs during extraction.

    Enable Usage for Lifecycle Management

    Toggle to enable Lifecycle Management capabilities

    UserType

    GitHub users are classified as "Human" identities

    IdentityUniqueID

    GitHub LoginName

    LastUsedAt

    Last time the token was used to authenticate

    OwnerLogin

    GitHub username of the token owner

    Repositories

    List of specific repositories the token can access

    Scopes

    List of OAuth scopes (for classic tokens)

    RepositoryPermissions

    List of repository-level permissions (fine-grained tokens)

    OrganizationPermissions

    List of organization-level permissions (fine-grained tokens)

    Insight Point
    Alt text
    Alt text
    Alt text

    Assumes user

    Maps Azure AD users to their corresponding Dynamics 365 ERP identities

    Has role

    Connects Environment to Security Roles

    Dynamics ERP Entra ID applications
    Dynamics ERP permissions

    Application Description: Enter a description for internal reference

  • Note: Token lifespan must exceed 10 minutes for APIs to work properly

  • OAuth App Name

    Application ID of the OAuth application created in CyberArk Identity - used in API endpoint URLs.

    security_question_count

    Number of configured security questions

    security_question_set

    Boolean indicating if security questions are configured

    state

    Application deployment state (Active, Inactive, Disabled)

    version

    Application version information

    number_of_versions_retention

    Number of account versions to retain

    number_of_days_retention

    Number of days to retain account versions

    olac_enabled

    Boolean indicating if Object Level Access Control is enabled

    Initiate CPM Account Management Operations

    Trigger Central Policy Manager operations on accounts

    List Accounts

    View the list of accounts within the safe

    Manage Safe

    Full administrative control over the safe

    Manage Safe Members

    Add, modify, or remove safe member permissions

    Move Accounts and Folders

    Relocate accounts and folders within or between safes

    Rename Accounts

    Change account names and identifiers

    Requests Authorization Level 1

    First-level approval rights for access requests

    Requests Authorization Level 2

    Second-level approval rights for access requests

    Retrieve Accounts

    Access and view privileged account credentials

    Specify Next Account Content

    Define content for account password changes

    Unlock Accounts

    Unlock accounts that have been locked by the system

    Update Account Content

    Modify privileged account passwords and secrets

    Update Account Properties

    Change account metadata and properties

    Use Accounts

    Utilize privileged accounts for authenticated operations

    View Audit Log

    Access audit logs and activity history for the safe

    View Safe Members

    See the list of users and groups with safe access

    The FQDN of the AD DS Domain

  • LDAPS Enabled on the Domain Controller and the Root or Leaf Certification securing LDAPS on the AD DC

  • An Insight Point with:

    • Network connectivity to the AD Domain Controller (TCP 636)

    • DNS resolution capability when using domain controller FQDNs instead of IP addresses

  • In on-premises VPV environments, API calls are typically not exposed over the public internet based on customer network configuration

  • The connection from the Insight Point to Active Directory remains entirely within your on-premises network

  • This ensures that the certificate and all communication occurs within your secure network environment.

    Locate the correct certificate to export:
    • Look for a certificate where the Issued To column shows the FQDN of the domain controller

    • If multiple certificates exist with the DC's FQDN, choose the one with:

      • Intended Purposes (Enhanced Key Usage) that includes "Server Authentication"

      • Certificate Template column shows "Domain Controller" (if this column is visible)

      • Valid expiration date (not expired)

      • Most recent issue date if multiple valid certificates exist

    • Important: Export only the domain controller's server certificate, NOT the root CA certificate or intermediate certificates

  • Right-click the certificate and select All Tasks/Export

  • Select No, do not export the private key

  • Select Base-64 encoded X.509 (.CER) format

    • Note: When you select Base-64 format, the "Include all certificates in the certification path" option will not be available - this is expected

    • Veza only needs the server certificate itself, not the full certificate chain

  • Specify a file name and location to save the certificate

  • Complete the export wizard

  • Use the Request ID number to retrieve the certificate: certreq -retrieve RequestID certnew.cer

  • Accept the issued certificate: certreq -accept certnew.cer

  • Domains

    The FQDN of the AD Domain (Only 1 can be listed)

    AD domain fully qualified domain name for cert

    Subject Name on the LDAPS Leaf Certificate, should be the AD DC or load balancer FQDN

    LDAP Certificate

    SSL/TLS certificate used to establish the LDAP connection

    Enable Kerberos Authentication

    Check this box to use Kerberos authentication when connecting to the Domain Controller

    Extract Disabled Users

    Uncheck this box to exclude disabled users from metadata extraction

    Kerberos SPN

    Enable Kerberos authentication and provide a value to set a ServicePrincipalName for the Kerberos connection (Default ldap/<dc_hostname>)

    Active Directory Organizational Unit
  • Active Directory Managed Service Account

  • Common Name

    cn

    Company

    company

    Country Code

    c

    Country Or Region

    countryCode

    Created At

    whenCreated

    Department

    department

    Description

    description

    Display Name

    displayName

    Distinguished Name

    distinguishedName

    Domain Admin

    memberOf

    Checks for Domain Admins group membership

    Email

    mail

    First Name

    givenName

    Given Name

    givenName

    Idp Unique Id

    userPrincipalName

    Is Active

    userAccountControl

    Boolean calculated by Veza; see

    Is Locked

    userAccountControl

    Locked flag

    Job Title

    title

    Last Name

    sn

    Last Logon

    lastLogon, lastLogonTimestamp

    Uses more recent value; see

    Lower Email

    mail

    Lowercase transformation

    Manager

    manager

    Manager Principal Name

    manager

    Derived from manager distinguished name

    Office

    physicalDeliveryOfficeName

    Password Last Set

    pwdLastSet

    Physical Delivery Office Name

    physicalDeliveryOfficeName

    Postal Code

    postalCode

    Primary Group Id

    primaryGroupID

    Sid

    objectSid

    State Or Province Name

    st

    Street Address

    streetAddress

    Sur Name

    sn

    Title

    title

    User Principal Name

    userPrincipalName

    User Password Expiration

    pwdLastSet

    Calculated using pwdLastSet and domain password policy

    Full Admin

    memberOf

    True when user is member of Administrators or Domain Admins group

    User Account Control

    userAccountControl

    String list of account control flags (PASSWORD_EXPIRED, LOCKOUT, etc.)

    Insight Point

    Use the default selection unless using an Insight Point for the connection

    Name

    Name to use for the AD connection in Veza

    Host

    Either: (1) IP address/FQDN of a single domain controller, or (2) FQDN of a load balancer that distributes traffic across multiple domain controllers

    Port

    Port serving LDAPS (Default 636)

    Username

    Active Directory user to bind to the LDAP Connection (Recommended to use the UserPrincipalName)

    Password

    Password for the Active Directory user

    Account Name

    sAMAccountName

    Account Type

    objectClass

    User Object

    Active Directory Domain

    userPrincipalName

    Domain part only

    City

    l

    Insight Point
    Notes and Supported Entities
    PDC emulator FSMO role
    add a subject alternative name to a secure LDAP certificate
    Secrets Vaults
    Reports
    Microsoft Learn: Use the UserAccountControl flags to manipulate user account properties
    lastLogon
    lastLogonTimestamp
    Veza for Active Directory

    Okta

    Configuring the Veza integration for Okta.

    Veza integrates with Okta to gather individual user metadata, applications, groups, and domains. After synchronizing with Okta, Veza shows the relationships connecting Okta identities and the external data sources and services they access (such as Snowflake databases, SQL tables, or AWS S3 buckets).

    Native Identity Mapping: If you have a Google Workspace application configured in Okta, Veza automatically creates identity relationships to Google Workspace users and groups. Custom identity mapping is only needed for other integrations. See Custom Identity Mappings for details.

    • You can use Okta properties such as country, department, or login date to filter queries and define access reviewers for Okta users

    • If Veza does not detect an identity mapping from Okta to another integrated data source, you can define the relationships with

    • If your organization uses in addition to the standard properties collected by Veza, you can enable them on the Veza configuration screen.

    Integrating with Okta

    Veza can establish a connection to Okta using OAuth 2.0 application credentials or user API keys. OAuth is recommended to provide greater control over application permissions, but you can use API keys for testing or non-production environments.

    Overview Video - Okta Integration

    Admin Role Requirements

    Veza requires admin-level permissions in your Okta organization to gather user, group, application, and role metadata. Based on successful customer implementations, you have two authentication approaches:

    Role Type
    Permission Scope
    Implementation Notes
    OAuth Support
    API Token Support

    Custom admin roles provide the exact permissions required by Veza while maintaining least privilege access principles. This approach addresses security policies that restrict broad administrative privileges for third-party integrations.

    Creating a custom admin role (Preferred)

    Prerequisites:

    • Okta organization with custom role feature enabled

    • Current Okta user has Super Administrator rights (Okta platform requirement for creating custom roles)

    Authentication using OAuth 2.0 Credentials

    Log in to Okta to create a new app integration, generate keys, and assign scopes and roles:

    Choose one of the admin role options from the section above. If you encounter a permissions error during role assignment, navigate to Okta Settings > Features and enable the Assign admin roles to public client app option.

    1. Go to Applications after logging into your Okta account. Record your Okta organization's URL, omitting https://

    2. Create a new app:

      • Click on Create App Integration.

    Custom Role Alignment: If using a custom admin role, these OAuth scopes should align with the UI permissions configured in your role.

    1. On the Admin Roles tab, click Edit Assignments > Add Assignment. Assign your chosen admin role (custom admin role recommended, or read-only administrator) and save the changes.

    Authenticate with an admin user API token

    Create a user for Veza and assign an administrator role:

    1. Open Directory > People and click Add Person.

    2. Enter user details for the profile (such as VezaIntegration). Click Save.

    3. Open Security > Administrators and click Add Administrator.

    Get an access token for the Okta user

    1. Sign in to your Okta domain with the admin username and password.

    2. Go to Security > API using the admin console menu. Open the Tokens tab.

    3. Click Create Token.

    4. Give it a name and click Create Token.

    For more information, see in the Okta documentation.

    Configure the Veza integration for Okta

    Go to the Veza Integrations page to enable the Okta integration:

    1. Click Integrations on the main navigation.

    2. Click Add Integration > Okta.

    3. Enter your organization's Okta Domain to authenticate with.

    4. Pick the Credential Type: API token or OAuth.

    Verify Integration Setup

    After creating the integration, verify that Veza can successfully connect to your Okta organization and discover entities:

    1. Check Integration Status: On the Integrations page, locate your Okta integration and verify the status shows "Connected" or "Extracting". Initial extraction may take several minutes depending on your organization size.

    2. Monitor Data Source Discovery: Click on your Okta integration to open the details page, then select the Data Sources tab to see all discovered Okta domains and applications.

    3. Review Integration Events: Select the Events tab to view connection logs and verify there are no permission errors or authentication failures.

    For troubleshooting integration issues, see the Active Jobs page under Integrations to monitor real-time extraction status and identify any errors requiring attention.

    By default, Veza discovers all Okta domains and applications in the account. You can deselect the "Gather All Applications" option to only sync specific apps based on the settings.

    Note: When adding application names to the allowlist or denylist fields, enclose app names containing spaces or special characters in double quotes. For example: "My Database (Production)", "Test Environment #1". App names without spaces or special characters do not require quotes.

    Enable Audit Logs for Okta

    Veza can parse Okta system logs to extract activity metadata. This enables two key capabilities:

    • Incremental Extraction for the Okta integration: Enabling audit logs allows updates to Access Graph metadata only for entities that have changed since the last snapshot. This reduces the time needed to gather users, groups, apps, and roles during each sync. Administrators should enable this feature post-Okta integration setup to improve extraction speed and minimize traffic to Okta API endpoints.

    • Support for , including generation of Over Provisioned Scores for Okta users.

    To enable audit logs for an Okta integration:

    1. Open the Integrations overview and locate the Okta integration.

    2. Click Actions > Enable Audit Logs.

    To disable activity monitoring and incremental extraction, toggle the option to Disable Audit Logs.

    Okta Custom Properties

    Your Okta organization might add additional user metadata with . To include these custom properties during discovery, specify the Name and data Type of each property to collect.

    For example, if your organization used a custom attribute to track employee region, you can use this information for by adding the custom property to the Okta integration configuration.

    1. On Edit Integration > Custom Properties tab, click Add Custom Property.

    2. Enter the variable name region as the property name to collect.

    3. Pick String as the property type.

    The specified attributes will appear on Access Graph entities the next time Veza connects to the Okta domain.

    The supported types are:

    • String

    • Number

    • Boolean

    • RFC339 Timestamp

    Veza honors RFC339 timestamp formats, such as: 2006-01-02T15:04:05Z07:00, 2006-01-02T15:04:05.999999999Z07:00, 2006-01-02 15:04:05Z07:00, 2006-01-02 15:04:05, 2006-01-02, 2006-01-02T, 2006-01-02T15:04:05, 2006-01-02T15:04:05Z Time values in the format "18:47:12.019Z" (that do not contain dates) are only supported in strings.

    Okta custom identity mappings

    Veza can automatically detect relationships for Okta and AWS, Snowflake, and other providers. However, some connections to standalone data sources need to be explicitly mapped.

    • Administrators can disable default IdP User > Local User mapping by email when adding a custom mapping.

    • Administrators can configure up to four property matchers for custom identity mapping based on possible combinations of user name and email. If any matcher is valid, Veza connects the IdP and local identities.

    • When submitting authorization metadata for custom apps with the , local users, groups, roles, and permissions are mapped to Okta identities by login email and group name.

    Use to manually create a connection to another provider. For example, employees might be able to access a standalone SQL database with their Okta credentials:

    1. Open the Okta provider configuration menu (Configuration > Identity Providers > Add or Edit)

    2. Click Identity Mapping Configurations

    3. Pick the Destination Datasource Type. The mapping will apply to all resources of the chosen provider (such as SQL Server).

    Notes and supported entities

    Veza gathers metadata and creates searchable Access Graph entities to represent:

    • Okta Domains: Organizational domains configured in Okta

    • Okta Users: Individual user accounts with profile attributes, status, and group memberships

    • Okta Groups: User groups for managing access and permissions

    • Okta Apps: Applications integrated with Okta for SSO and access management

    Okta User Active Status

    The Is Active property for an Okta user is determined by their status in Okta. A user is considered Is Active: true if their status is one of the following:

    • ACTIVE

    • PASSWORD_RESET

    • LOCKED_OUT

    If a user's status is anything else (e.g., STAGED, DEPROVISIONED, SUSPENDED, DEACTIVATED), their Is Active status will be false. The raw status is available in the Status attribute for more granular filtering.

    Okta API Tokens

    Okta API Token entities represent active API tokens in your Okta organization. These tokens are created by administrators to authenticate API calls to Okta services. Each API token entity includes the following attributes:

    • Name: The descriptive name assigned to the API token

    • Client Name: The client application name associated with the token (if applicable)

    • User ID: The Okta user ID of the token owner

    • Created At: Timestamp when the token was created

    API tokens are connected to their owner via a "Has Access Credentials" relationship, allowing you to identify which users have administrative API access to your Okta organization.

    Okta Application Client Secrets

    Okta Application Client Secret entities represent OAuth 2.0 client secrets used by Okta applications for authentication. These secrets are critical credentials that allow applications to authenticate to Okta and other services. Each client secret entity includes the following attributes:

    • Key ID (kid): Unique identifier for the secret

    • Status: Current status of the secret (e.g., ACTIVE, INACTIVE)

    • Last Updated: Timestamp when the secret was last modified

    • Expires At: Secret expiration date (if set)

    Okta Application Refresh Tokens

    Okta Application Refresh Token entities represent OAuth 2.0 refresh tokens that provide persistent access to resources. These tokens allow applications and users to maintain access without re-authentication. Each refresh token entity includes the following attributes:

    • Client ID: The OAuth client application identifier

    • User ID: Associated user ID (if user-specific)

    • Scope: List of OAuth scopes granted to the token

    • Status: Current token status (e.g., ACTIVE, REVOKED)

    Okta Application Key Credentials

    Okta Application Key Credential entities represent public key credentials (certificates) used by Okta applications for authentication and signing. These credentials enable secure, certificate-based authentication for applications. Each key credential entity includes the following attributes:

    • Key ID (kid): Unique identifier for the credential

    • Key Type: Type of cryptographic key (e.g., RSA, EC)

    • Algorithm: Signing algorithm used (e.g., RS256, ES256)

    • Usage: Key usage purpose (e.g., sig for signature)

    Veza Integrations

    Support for 300+ enterprise systems (Cloud Providers, Databases, Data Lakes, SaaS Applications, Custom Applications, and On-Prem Systems)

    Veza offers integrations for cloud providers, data systems (such as Snowflake, AWS RedShift, GCP BigQuery, Azure SharePoint, SQL Server), SaaS applications (SalesForce, NetSuite, JIRA, GitHub, GitLab, and others), and services such as AWS KMS and Azure VPC. Additionally, Veza's Open Authorization API (OAA) enables the integration of custom applications and identity providers. You can also import identity and permissions metadata from any source using CSV Upload.

    Veza also provides outbound integrations for platforms such as Slack, Jira, and ServiceNow, and webhooks for publishing events to any external system. Veza can also integrate with Okta, AzureAD, or another compatible identity provider (IdPs) for Single Sign-On (SSO) and MFA.

    This page lists all built-in integrations with links to configuration guides. Please contact our support team to learn more about enabling early access integrations on the Veza platform.

    • See for more information about how Veza integrations work. See for instructions to enable and manage data sources on the Veza Integrations page.

    Identity Providers

    Cloud Services

    Amazon Web Services (AWS)

    See for details on adding an account to Veza.

    • AWS Cognito

    • AWS DynamoDB

    • AWS EC2

    • AWS EMR

    Microsoft Azure**

    See for details on adding a tenant to Veza.

    • Azure Blob Storage

    • Azure Data Lake

    • Azure Key Vault

    • Azure RBAC

    Google Cloud Platform (GCP)

    See for details on integrating your Google organization with Veza.

    • Identity and Access Management (IAM)

    • BigQuery

    • Cloud Run

    • Cloud Storage

    Oracle Cloud Infrastructure (OCI)

    See for setup instructions.

    • OCI IAM

    • OCI Object Store

    Salesforce Commerce Cloud

    See for setup instructions.

    • Salesforce Business Manager

    Data Lakes

    • FiveTran (Supported via )

    SaaS Applications and Platforms

    On-Premises Data Systems

    CSV Upload

    CSV Upload enables data source owners and administrators to import identity and authorization metadata from sources that don't have built-in Veza integration. You can create an integration using a CSV file when you need to:

    • Import user and authorization data from legacy or custom applications

    • Integrate with any SaaS application that supports CSV exports

    • Model employee access to homegrown or specialized systems

    • Upload employee metadata as a source of identity for Lifecycle Management workflows

    For instructions, examples, and troubleshooting guidance, see the .

    Generic LDAP Standard Connector

    Veza provides a generic connector that supports LDAPv3-compliant directory services, such as OpenLDAP, Red Hat Identity Manager, Oracle Unified Directory, IBM Directory Server, and ForgeRock Directory Services. This integration allows discovery of users, groups, and organizational relationships across diverse LDAP implementations.

    Generic SCIM Connector

    Veza supports the collection of authorization metadata from applications with Users and Groups SCIM endpoints with our in-platform Generic Connector.

    Open Authorization API (OAA)

    Veza OAA is an Open Source framework for adding any custom applications to Veza. Veza develops and supports an expanding suite of OAA connectors, alongside several Community developed connectors. Additionally, any application can be integrated using OAA templates (see below) and Veza-provided OAA SDK.

    OAA provides templates for modeling identities, resources, and access controls within custom applications and identity providers, which can be published with a Veza-developed or a custom script.

    • : Map federated identities to custom resources

    • : Map external resources to custom users and groups

    • : Upload employee metadata, enabling identity mapping, enrichment and Lifecycle Management actions.

    Microsoft Exchange Online

    Configuring the Veza integration for Exchange Online

    Overview

    Prerequisites: Exchange Online is an optional service within the Azure integration. You must first have a working configured before enabling Exchange Online discovery.

    This extension to the Microsoft Azure integration enables visibility into Exchange Online mailboxes, permissions, and distribution groups. It uses Exchange Online REST APIs to execute PowerShell cmdlets remotely, providing insights into mail-related permissions and access controls within Microsoft 365. This includes:

    import ssl
    
    host = "addc1.domain.local"
    
    cert = ssl.get_server_certificate((host, 636))
    path = f"{host.replace('.', '_')}.cert"
    
    with open(path, "w", encoding="utf8") as file:
      file.write(cert)
    openssl s_client -showcerts -connect addc.domain.local:636
    request.inf
    [Version]
    
    Signature="$Windows NT$"
    
    [NewRequest]
    Subject = "CN=corp-ad-01.corp.veza.com"
    
    KeySpec = 1
    KeyLength = 1024
    ; Can be 1024, 2048, 4096, 8192, or 16384.
    ; Larger key sizes are more secure, but have
    ; a greater impact on performance.
    Exportable = TRUE
    MachineKeySet = TRUE
    SMIME = False
    PrivateKeyArchive = FALSE
    UserProtected = FALSE
    UseExistingKeySet = FALSE
    ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
    ProviderType = 12
    RequestType = PKCS10
    KeyUsage = 0xa0
    
    [EnhancedKeyUsageExtension]
    
    OID=1.3.6.1.5.5.7.3.1 ; Server Authentication
    
    [Extensions]
    
    2.5.29.17 = "{text}"
    _continue_ = "dns=corp-ad-01.corp.veza.com"
    krb5.conf
    [libdefaults]
       default_realm = <domain>
       dns_lookup_kdc = true
       dns_lookup_realm = true
    
    [realms]
       <domain> = {
          kdc = <AD domain fully qualified domain name for cert>
          admin_server = <AD domain fully qualified domain name for cert>
       }

    Google Workspace

  • LDAP

  • Okta

  • OneLogin

  • Oracle Cloud IAM

  • PingOne

  • Auth0

  • AWS IAM

  • AWS IAM Identity Center

  • AWS KMS

  • AWS Lambda

  • AWS Redshift

  • AWS RDS Services

  • AWS RDS Aurora

  • AWS RDS MySQL

  • AWS RDS Oracle Database

  • AWS RDS PostgresQL

  • AWS RDS SQL Server

  • AWS S3

  • AWS Security Groups

  • AWS VPC

  • AWS EKS

  • Azure SQL Database

  • Azure SQL Server

  • Azure Virtual Machines

  • Azure Virtual Networks

  • Azure Security Groups

  • Azure Cognitive Services + Azure OpenAI

  • Azure AKS

  • Azure PostgreSQL

  • Microsoft Intune

  • Compute Engine

  • Key Management Service (KMS)

  • Virtual Private Cloud (VPC)

  • Snowflake Data Cloud

  • Trino SQL Query Engine (formerly PrestoDB)

  • BlackLine

  • BambooHR

  • Beeline

  • Boomi

  • Box.com

  • Bullhorn

  • Celonis (Supported via SCIM)

  • Cerner (Early Access)

  • Cisco Duo

  • Clickhouse

  • CockroachDB Cloud

  • Concur

  • Confluent

  • Coupa

  • Coupa Contingent Workforce

  • Crowdstrike Falcon

  • CyberArk

  • Delinea Secret Server

  • Device42

  • DocuSign

  • DropBox

  • Egnyte

  • Envoy (Supported via SCIM)

  • Exchange Online (Microsoft 365)

  • Expensify

  • Fastly

  • GitHub (Enterprise Cloud and Server)

  • GitLab

  • Google Drive

  • Harness (Supported via SCIM)

  • HashiCorp Vault

  • HiBob

  • Hubspot

  • IBM Aspera

  • iManage

  • IronClad (Supported via SCIM)

  • Ivanti Neurons

  • Jamf Pro

  • Jenkins

  • JFrog Artifactory

  • LastPass

  • Looker

  • Microsoft Dynamics 365

  • Netsuite

  • New Relic

  • OpenAI

  • Oracle E-Business Suite (EBS)

  • Oracle EPM

  • Oracle Fusion Cloud

  • oracle JD Edwards EnterpriseOne

  • Palo Alto Networks SASE / Prisma Access

  • PagerDuty

  • Power BI

  • Privacera

  • Qualys

  • QNXT

  • Ramp

  • Redis Cloud

  • Rollbar

  • Salesforce

  • SAP SucessFactors

  • ServiceNow

  • SharePoint Online / OneDrive (Configured through the Azure Integration)

  • Sigma Computing (Supported via SCIM)

  • Slack

  • SmartSheet

  • Spotio

  • Sumo Logic

  • Tableau

  • Teleport

  • Terraform

  • ThoughtSpot

  • Thousand Eyes (Supported via SCIM)

  • Trello

  • Twingate (Supported via SCIM)

  • UKGPro

  • Veza

  • Workato

  • Workday

  • YouTrack

  • Zapier (Supported via SCIM)

  • Zendesk

  • Zip

  • Zoom

  • Zscaler

  • Microsoft SQL Server
  • MongoDB

  • Oracle Database

  • PostgreSQL

  • PTC Windchill

  • SharePoint Server

  • Solarwinds Platform

  • Windows Servers + SMB

  • Veza

  • Integrations Overview
    Configuring Integrations
    Active Directory
    AWS IAM
    AzureAD
    GCP IAM
    AWS
    Azure
    Google Cloud Platform
    Oracle Cloud Infrastructure
    Salesforce Commerce Cloud
    Databricks (Unity Catalog)
    Databricks (Workspace)
    SCIM
    MongoDB Atlas
    1Password
    Adobe Enterprise
    Anaplan
    Atlassian Cloud (Confluence, Jira, BitBucket)
    Apache Cassandra
    Bitbucket Data Center
    Confluence Server
    Jira Data Center / Jira Server
    CSV Upload documentation
    LDAP
    SCIM
    python client
    Custom Application
    Custom Identity Provider
    Custom Human Resource Information System (HRIS)
    User Active Status
    Last Logon Attribute Behavior

    OAuth 2.0 application creation permissions

    Required Permissions:

    The following permissions are required for Veza integration:

    • User Management: "Manage users" and "View users and their details" permissions allow Veza to discover user profiles, status, and group memberships. The manage permission enables access to user lifecycle events and attribute changes.

    • Group Management: "View groups and their details" permission enables discovery of group structures and memberships. For organizations using Lifecycle Management, additional "Manage groups" permission supports automated provisioning workflows.

    • Application Access: "View applications and their details" permission allows Veza to map application assignments and discover which users have access to specific applications in your environment.

    • Identity and Access Management: "View roles, resources, and admin assignments" permission enables discovery of administrative role assignments, providing visibility into privileged access within Okta.

    • API Token Management: "Manage API tokens" permission allows Veza to identify service accounts and programmatic access visibility.

    • Authorization Servers: "View application grants" permission enables discovery of OAuth/OIDC authorization servers, their policies, scopes, claims, and application grants for comprehensive Non-Human Identity (NHI) security coverage.

    Implementation Steps

    To create a custom admin role, navigate to Security > Administrators > Roles in your Okta console and select Create Custom Role. Configure the role with the specific permissions required for the integration. Then, create a Resource Set that defines the scope of access for users, groups, applications, and Identity and Access Management resources.

    The resource set configuration determines which organizational units the integration can access. For complete visibility, select "All users", "All groups", and "All applications", though you can restrict access to specific organizational units if required by your security policies.

    Restricted resource sets may limit Veza's ability to discover cross-departmental access relationships. Enable the full scope unless organizational security policies require limitations.

    Next, assign this custom role to your OAuth application during the integration setup process described in the Authentication sections below.

    Example Custom Role and Resource Set Configuration

    The User permissions section enables "Manage users" (for Lifecycle Management) and "View users and their details" (for gathering identity metadata). These allow Veza to access user profiles, group memberships, and lifecycle events.

    User permissions configuration

    For Group access, select "View groups and their details". The API Tokens section requires "Manage API tokens" to discover programmatic access patterns. Note that this provides read access to token metadata, not the actual token values.

    Group and API token permissions configuration

    The Application Permissions must include "View applications and their details" to map application assignments and user access patterns across your Okta environment.

    Application permissions configuration

    The Resource Set defines the scope of access for your custom role. This example shows a configuration named "Scoped" that includes all users, groups, applications, and Identity and Access Management resources. You can adjust these settings to match your organizational requirements.

    Resource set configuration

    After creating your custom admin role and resource set:

    1. Save the role configuration in Okta

    2. Continue to the Authentication using OAuth 2.0 Credentials section below to create your OAuth application

    3. Assign this custom role to the OAuth application during step 5 of the OAuth setup

    4. Complete the Veza integration configuration to connect using OAuth credentials

    OAuth Authentication Required: Custom admin roles are only supported with OAuth Application Registration. Organizations using API token authentication must use the Read-only Administrator role.

    Choose API Services as the integration type.
  • Configure the Application:

    • Assign a descriptive name to your application.

    • In the app configuration section, edit the client credentials:

      • Copy the Client ID.

      • For Client Authentication, enable Public key/Private key.

      • In General Settings, ensure the option Require Demonstrating Proof of Possession (DPoP) is disabled.

      • Under Public Keys, add a key and copy the PEM value (starting with -----BEGIN PRIVATE KEY-----). Save this key and copy the Key ID (KID). Save your changes.

      • Convert the PEM private key to an RSA private key using OpenSSL: Run openssl rsa -in ~/okta_generated.key -out okta_updated.key -traditional in your terminal.

  • Assign scopes: In the Okta API Scopes section, grant the application scopes based on your use case:

    For basic integration (minimum required):

    • okta.users.read

    • okta.groups.read

    • okta.apps.read

    • okta.roles.read

    • okta.logs.read

    • okta.userTypes.read

    • okta.apiTokens.read

    • okta.authorizationServers.read

    • okta.appGrants.read

    Additional scopes for Lifecycle Management:

    • okta.users.manage

    • okta.groups.manage

  • In the Grant Administrator Role To field, enter the name of the Veza user.

  • Assign your chosen admin role from the options detailed in the Admin Role Requirements section above.

    Authorization Server Access: To collect Authorization Server entities (for OAuth/OIDC infrastructure visibility), API token users require custom admin role with the "View application grants" permission.

  • Save the changes.

  • Save the token value, which will only appear once.

    For OAuth authentication, enter your client ID and private key ID. Upload the RSA private key.

  • For API token authentication, enter the token generated for your Okta user.

  • (Optional) Enable Gather Credentials to discover OAuth tokens and application credentials. When enabled, Veza will extract:

    • Application Key Credentials

    • Client Secrets

    • Refresh Tokens

    Note: This feature is disabled by default for security. Enable it only if you need visibility into Non-Human Identity (NHI) credentials for security assessments.

  • (Optional) Configure additional discovery options:

    • Gather deactivated users: Include users with deactivated status in discovery. Enable this to maintain visibility into formerly active accounts for audit purposes.

    • Extract users only: Skip discovery of groups and applications, extracting only user data. Use this option for identity-focused integrations or to reduce extraction time in large environments.

    • Domain allow list / Domain deny list: Control which Okta domains are discovered (comma-separated). Use allow lists to limit discovery to specific organizational units or deny lists to exclude test domains.

    • App allow list / App deny list: Control which applications are discovered (comma-separated). Enclose app names containing spaces or special characters in double quotes: "My App (Production)", "Test-App #1".

  • Click Next to configure optional identity mappings. These mappings correlate Okta users with local accounts in other systems when Veza cannot automatically detect a connection.

    For enhanced security, you can store Okta credentials in an external secrets vault instead of directly in Veza. This keeps sensitive credentials in your private network. See Secrets Vaults for configuration details.

  • Click Next to specify any custom properties you want Veza to discover.

  • Click Create Integration to save the configuration.

  • To prevent large Okta environments from causing integration pipeline delays, Veza recommends enabling audit log extraction as described in the next section.

  • Test Data Discovery: Use the Query Builder to verify user data is being extracted correctly:

    • Go to Access Visibility > Query Builder

    • Select Okta User as the Entity Type

    • Run the query to confirm Okta users appear in results

  • Validate Permissions: If you encounter "Access Denied" errors in the Events tab, verify that:

    • The assigned admin role has all required permissions

    • The OAuth application scopes match your role permissions

    • The resource set configuration includes all necessary organizational units

  • Save the configuration.

    String List

    Veza identifies Okta-AWS relationships based on the official AWS Account Federation app

    Pick an optional transformation. By default, Veza will link identities based on email addresses (username@domain). To match only the username, use Ignore Domain. You can also ignore special characters in local usernames.

    Okta App Users: Individual user assignments to applications (Application Roles)

  • Okta App Group Assignments: Group-level assignments to applications

  • Okta Roles: Administrator roles including standard roles (Super Admin, Read-only Admin, etc.) and custom admin roles

  • Okta Role Assignments: Assignments linking users or groups to administrator roles, including resource constraints for scoped access

  • Okta Group Rules: Automated rules that dynamically assign users to groups based on user attributes or conditions

  • Okta Constrained Resources: Individual resources (apps, groups, users) that custom admin roles are scoped to

  • Okta Constrained Resource Sets: Collections of resources defining the scope of custom admin role permissions

  • Okta API Tokens: Active API tokens used for programmatic access to Okta

  • Okta Authorization Servers: OAuth 2.0 and OIDC authorization servers managing token issuance and API access

  • Okta Auth Server Scopes: OAuth scopes defining granular permissions for API access

  • Okta Access Policies: Authorization policies controlling client access to authorization servers

  • Okta Access Policy Rules: Rules within access policies defining specific access conditions

  • Okta Auth Server Keys: Cryptographic keys used by authorization servers for token signing

  • Okta App Grants: OAuth application grants linking applications to authorization server scopes

  • Okta Application Client Secrets: OAuth 2.0 client secrets for application authentication (when "Gather Credentials" is enabled)

  • Okta Application Refresh Tokens: OAuth 2.0 refresh tokens for persistent access (when "Gather Credentials" is enabled)

  • Okta Application Key Credentials: Certificate-based credentials for application authentication (when "Gather Credentials" is enabled)

  • Updated At: Timestamp when the token was last modified

  • Expires At: Token expiration date (if set)

  • Network: Network restrictions configuration (JSON format)

  • Created At: Token creation timestamp

  • Expires At: Token expiration date (if set)

  • Last Updated: Last modification timestamp

  • Status: Current credential status (e.g., ACTIVE, EXPIRED)

  • Expires At: Credential expiration date

  • Last Updated: Last modification timestamp

  • Preferred: Custom Admin Role

    Specific permissions only

    Recommended for security compliance. Requires OAuth authentication.

    ✅ Yes

    ❌ Not supported

    Option 2: Read-only Administrator

    Standard read-only admin permissions

    Works with both authentication methods

    ✅ Yes

    ✅ Yes

    custom identity mappings
    custom attributes
    Admin Role Requirements
    Create an API Token
    allowlist
    Activity Monitoring
    Custom Attributes
    attribute filters
    Open Authorization API
    Custom Identity Mappings
    • Mapping Exchange Online users to Azure AD identities

    • Discovering mailbox delegations and permissions

    • Identifying shared mailbox access

    • Showing distribution group configurations

    • Visibility to folder-level permission

    Architecture: The integration connects to Exchange Online using Azure service authentication patterns and makes REST API calls that execute PowerShell cmdlets. All data collection is read-only and focuses on mailbox permissions, folder permissions, and distribution group configurations. The integration uses client credential flow with Azure to obtain OAuth tokens for Exchange Online API access, with the requested scope: https://outlook.office365.com/.default

    Azure Integration Requirements

    Azure App Configuration

    The Exchange Online integration uses a configured Azure integration's for certificate-based authentication. You will need to:

    Grant additional API permissions to the existing Azure application:

    • Add Application permission: Office 365 Exchange Online > Exchange.ManageAsApp

    • Grant admin consent for the permission in your organization

    Assign the following Microsoft Entra roles to the application:

    • Exchange Administrator

    Enable Exchange Online for the Azure Integration

    To enable extraction for Exchange Online, you will need to enable the optional service for your Azure integration:

    1. On the Veza Integrations page, find the Azure integration and click Actions > Edit

    2. In the configuration details, scroll down to Limit Services

    3. Click Limited Services

    4. In the Select Services dropdown, select Exchange Online

    5. Ensure that all other services you want to extract are selected.

    6. Click Save Configuration at the top right to update the integration settings

    Enabling optional services for the Azure integration

    Note that Exchange is not enabled by default when All Services is chosen.

    Notes and Supported Entities

    The Exchange Online integration supports the following relationships between graph entities:

    User Relationships: Azure AD users are mapped to their corresponding Exchange Online user or mail user accounts.

    Exchange Online Instances have direct relationships to:

    • Users (HAS_USER)

    • Mail Users (HAS_MAIL_USER)

    • Mailboxes (HAS_MAILBOX)

    • Distribution Groups (HAS_DISTRIBUTION_GROUP)

    Users and Mail Users can have permissions:

    1. Mailbox Permissions (HAS_MAILBOX_PERMISSION)

      • Controls overall mailbox access

      • Points to target mailbox via ON_MAILBOX relationship

    2. Folder Permissions (HAS_MAILBOX_FOLDER_PERMISSION)

      • Controls access to specific folders

      • Points to target folder via ON_MAILBOX_FOLDER relationship

    3. Recipient Permissions (HAS_RECIPIENT_PERMISSION)

      • Can target either mailboxes or distribution groups

      • Uses ON_MAILBOX or ON_DISTRIBUTION_GROUP relationships

    4. Send-on-Behalf Permissions (HAS_SEND_ON_BEHALF_PERMISSION)

      • Allows sending mail as another identity

      • Can target mailboxes or distribution groups

    Mailbox Structure:

    • Mailboxes contain folders (HAS_MAILBOX_FOLDER)

    • Each folder can have its own permissions

    • Folders maintain parent-child relationships through folder IDs

    Exchange Online Instance

    Root entity representing an Exchange Online environment.

    Attribute
    Type
    Description

    Standard instance properties

    Various

    Common properties for all instances

    Exchange Online User

    Represents users with Exchange Online mailboxes.

    Attribute
    Type
    Description

    guid

    String

    Global unique identifier

    identity

    String

    User identity

    entity_name

    String

    Display name

    alias

    String

    Email alias

    Notable Field Values:

    • recipient_type_details: Includes "UserMailbox" for standard user mailboxes

    • identity_type: Default is "human"

    Exchange Online Mail User

    Represents external mail users (without mailboxes).

    Attribute
    Type
    Description

    guid

    String

    Global unique identifier

    identity

    String

    User identity

    entity_name

    String

    Display name

    alias

    String

    Email alias

    Notable Field Values:

    • identity_type: Default is "human"

    • is_active: Inverse of account_disabled value

    Exchange Online Mailbox

    Represents email mailboxes.

    Attribute
    Type
    Description

    guid

    String

    Global unique identifier

    identity

    String

    Mailbox identity

    entity_name

    String

    Display name

    alias

    String

    Email alias

    Exchange Online Mailbox Folder

    Represents folders within mailboxes.

    Attribute
    Type
    Description

    identity

    String

    Folder identity

    folder_path

    String

    Full folder path

    entity_name

    String

    Folder name

    folder_type

    String

    Type of folder

    Notable Field Values:

    • container_class: Common values include "IPF.Note" (mail), "IPF.Calendar", "IPF.Contact", "IPF.Task"

    Exchange Online Distribution Group

    Represents email distribution groups.

    Attribute
    Type
    Description

    guid

    String

    Global unique identifier

    identity

    String

    Group identity

    entity_name

    String

    Display name

    alias

    String

    Email alias

    Exchange Online Send-On-Behalf Permission

    Represents send-as rights.

    Attribute
    Type
    Description

    No additional properties

    -

    -

    Exchange Online Mailbox Permission

    Controls access to mailboxes.

    Attribute
    Type
    Description

    inheritance_type

    String

    Type of inheritance

    access_rights

    String[]

    List of access rights

    deny

    String

    Deny flag

    is_inherited

    Boolean

    Inheritance status

    Notable Field Values:

    • inheritance_type:

      • "None"

      • "All" (default)

      • "Children"

      • "Descendents"

      • "SelfAndChildren"

    • access_rights:

      • "ChangeOwner"

      • "ChangePermission"

      • "DeleteItem"

    Exchange Online Recipient Permission

    Controls access to mailboxes or distribution groups.

    Attribute
    Type
    Description

    access_control_type

    String

    Type of access control

    access_rights

    String[]

    List of access rights

    inheritance_type

    String

    Type of inheritance

    is_inherited

    Boolean

    Inheritance status

    Notable Field Values:

    • inheritance_type: Same values as Mailbox Permission

    Exchange Online Mailbox Folder Permission

    Controls access to specific folders.

    Attribute
    Type
    Description

    identity

    String

    Permission identity

    access_rights

    String[]

    List of access rights

    folder_name

    String

    Associated folder name

    sharing_permission_flags

    String

    Sharing permission flags

    Notable Field Values:

    • access_rights:

      • "None" - No access

      • "CreateItems" - Create items in folder

      • "CreateSubfolders" - Create subfolders

      • "DeleteAllItems" - Delete all items

      • "DeleteOwnedItems" - Delete own items

      • "EditAllItems" - Edit all items

      • "EditOwnedItems" - Edit own items

      • "FolderContact" - Folder contact

      • "FolderOwner" - Folder owner

      • "FolderVisible" - View folder

      • "ReadItems" - Read items

      • "AvailabilityOnly" - View calendar availability

      • "LimitedDetails" - View availability with subject/location

    Pre-defined Permission Roles:

    • Author: CreateItems, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems

    • Contributor: CreateItems, FolderVisible

    • Editor: CreateItems, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems

    • NonEditingAuthor: CreateItems, DeleteOwnedItems, FolderVisible, ReadItems

    • Owner: All permissions

    • PublishingAuthor: CreateItems, CreateSubfolders, DeleteOwnedItems, EditOwnedItems, FolderVisible, ReadItems

    • PublishingEditor: CreateItems, CreateSubfolders, DeleteAllItems, DeleteOwnedItems, EditAllItems, EditOwnedItems, FolderVisible, ReadItems

    • Reviewer: FolderVisible, ReadItems

    Azure integration

    MongoDB

    Configuring the Veza integration for MongoDB and MongoDB Atlas

    Overview

    The Veza integration for MongoDB supports on-premise deployments and the MongoDB Atlas Database-as-a-service (DBaaS) platform. It enables discovery of standalone MongoDB clusters, MongoDB Atlas user permissions, and User permissions on MongoDB databases deployed in Atlas. After configuring the integration, you can use Veza Search, Workflows, and Insights to:

    • Show all Database Users, and the built-in or custom Database Roles a User has for each Database

    • Show the effective permissions Database Users have on the Databases and Clusters they have access to.

    • Show the effective permissions Users have on Clusters, Serverless Instances, and Global Clusters.

    • Show the Atlas Organizations and Projects accessible by Users in an Atlas Account, and what Atlas Roles users can assume.

    • Show Atlas Organizations that Atlas Users belong to, and the teams they belong to in those Organizations.

    This documentation includes instructions to:

    See for more details.

    Configuring MongoDB Atlas

    Veza connects to MongoDB Atlas using API Keys. You will need to enter the Public Key and Private Key to configure the integration in Veza. Additionally, Veza will need a username and password of a MongoDB Atlas User authorized for each project in the Organization to discover.

    • You will need the Organization Owner permission to grant API access to your Atlas organization.

    • The clusters to discover need to be accessible over internet, or allow communication with a deployed . Follow to configure network access for MongoDB Atlas. As a user with the Project Owner role, you will need to:

      • Using the UI: Under the Security section, click Network Access to open the IP Access List tab. Click Add IP Address.

    AWS IAM Roles (Early Access): AWS customers can optionally use the “Assume AWS Role” connection type when creating a MongoDB Atlas integration. This can be a new role or the same one used for the . To configure the MongoDB connection, you will provide the:

    • Role ARN: The ARN of the AWS IAM role that will be used to perform the extraction.

    Generate Atlas Administration API credentials for the MongoDB organization

    Create an API Key within the Atlas Organization Veza will connect to. The API key must have the scope Organization Read Only.

    To create a key from the Atlas UI:

    1. Open your organization's Access Manager page

    2. Click Create API Key.

    3. Give the key a name and description.

    4. Assign a new role for the API key with the Organization Read Only

    See the documentation for more details.

    Create a database user for each of the projects in the MongoDB organization

    Add database users for each project in the Organization. To create a new user using password authentication with the Atlas UI:

    1. On the left navigation, click Security > Database Access. Click Add New Database User.

    2. Choose Password for the Authentication Method.

    3. Enter a username and password. You can optionally Autogenerate the password. Note that the password and username must be the same for each project user you will create.

    See the documentation for more details.

    Configuring MongoDB (standalone)

    To discover a standalone MongoDB cluster, Veza connects as a local user with the following permissions:

    • listDatabases on cluster

    • find on system.users collection in any database

    • viewRole on any collection in any database

    You should deploy an within the same network as the cluster for a secure connection.

    Create local user and role

    Connect to the standalone deployment and run the following command to create a role with the required permissions, and create a user with the role:

    After creating a user and assigning the required permissions, configure the integration on Veza by providing the username, password, and the URI of the MongoDB cluster.

    Configuring MongoDB on the Veza Platform

    After preparing the required credentials, log in to Veza as an administrator to add the integration:

    1. In Veza, open the Integrations page.

    2. Click Add New and pick MongoDB or MongoDB Atlas as the type of integration to add

    3. Enter the required information and Save the configuration

    Standalone MongoDB

    To create the MongoDB Atlas integration, you will need the database URI and the username and password created when

    Field
    Notes

    MongoDB Atlas

    To create the MongoDB Atlas integration, you will need the API credentials, username, and password created when

    Field
    Notes

    To discover more than one Organizations in a single Account, click Add Key Pair to add additional API credentials.

    Notes and Supported Entities

    Veza supports the following entity types and entity attributes:

    MongoDB Atlas Account

    Represents the overarching account associated with MongoDB Atlas, typically belonging to an organization or individual.

    Attribute
    Type
    Description

    MongoDB Atlas User

    Represents a user account within MongoDB Atlas, identified by a unique ID and associated with an email address.

    Attribute
    Type
    Description

    MongoDB Atlas Organization

    Represents an organization in MongoDB Atlas, identifiable by its unique ID and organizational name.

    Attribute
    Type
    Description

    MongoDB Atlas Organization Role

    Denotes the role or permissions assigned to a user within a MongoDB Atlas organization, governing their access and privileges.

    Attribute
    Type
    Description

    MongoDB Atlas Project

    Represents a project in MongoDB Atlas, identified by a unique ID and a descriptive name, used for grouping related resources.

    Attribute
    Type
    Description

    MongoDB Atlas Project Role

    Denotes the role or permissions assigned to a user within a MongoDB Atlas project, governing their access and privileges to project resources.

    Attribute
    Type
    Description

    MongoDB Atlas Team

    Represents a team within a MongoDB Atlas project, identifiable by a unique ID and a name, used for collaborative project management.

    Attribute
    Type
    Description

    MongoDB Database Deployment

    Refers to a specific deployment of a MongoDB database, characterized by a unique ID, a name, type, and an indication of its operational status (paused or active).

    Attribute
    Type
    Description

    MongoDB Database User

    Represents a user account with specific access rights within a MongoDB database, defined by a username and the associated database name.

    Attribute
    Type
    Description

    When configuring a standalone MongoDB cluster, Veza discovers the following entities:

    MongoDB Cluster

    Represents an independent MongoDB database cluster, typically running on a single server or a set of servers, used for data storage and retrieval.

    Attribute
    Type
    Description

    MongoDB User

    Denotes a user account associated with a standalone MongoDB cluster. MongoDB User entities have a unique ID and includes information about the associated database and the username for authentication.

    Attribute
    Type
    Description

    MongoDB Database

    Represents an individual database within a cluster, used for organizing and storing collections of data.

    Attribute
    Type
    Description

    MongoDB Role

    Denotes a role or set of permissions assigned to a user within a standalone MongoDB cluster, governing their access and privileges to perform operations on databases and collections. It is identified by a unique ID.

    Attribute
    Type
    Description

    MongoDB Effective Permission

    Represents computed effective permissions that MongoDB users have on cluster and database resources, derived from their assigned roles and privileges.

    Attribute
    Type
    Description

    HashiCorp Vault

    Configuring the Veza integration for HashiCorp Vault Server

    Overview

    HashiCorp Vault enables organizations to securely store and manage secrets, according to policies. Secrets can be API keys, passwords, or certificates, or other data objects where access is tightly regulated. The Veza integration connects to a self-managed or cloud-hosted Vault cluster to discover users, namespaces, and resources, including:

    Principals

    • HashiCorp Vault Alias

    Resources:

    • HashiCorp Vault Namespace

    • HashiCorp Vault System Backend

    • HashiCorp Vault Auth Method

    • HashiCorp Vault Auth Method Subresource

    The integration can show:

    • Vault users with access to Vault secrets, and the path of authentication for those users.

    • Identities with access via passwords, app roles, AWS IAM, and Okta

    • All secrets and the users authorized for those secrets. See for more details.

    Configuring HashiCorp Vault

    Veza connects to HashiCorp Vault by assuming an application role in your environment. You will need to create an role AppRole that will be used for extraction. Then, attach it to a policy granting the required permissions for extraction.

    You can do this by connecting to your server and running vault commands:

    Create a policy for the Veza role

    Create the policy to attach to the Veza AppRole. Paste the following policy into a text file and save it veza-policy.hcl.

    Veza extraction policy for HashiCorp Vault (with nested namespace support)

    The policy below includes support for nested namespaces up to 4 levels deep. HashiCorp Vault's + wildcard matches only one path segment, so each namespace depth level requires explicit path declarations.

    For flat namespace structures: If your Vault deployment uses only root-level namespaces (no nested namespaces), you can use the simplified policy shown below in the second expandable section. Most organizations with complex Vault deployments require the full nested namespace policy below.

    Simplified policy for flat namespace structures (root-level only)

    If your Vault deployment does not use nested namespaces, you can use this simplified policy:

    Troubleshooting nested namespace permissions

    If extraction fails with 403 Forbidden: permission denied errors when accessing nested namespaces:

    1. Verify namespace depth: Count the levels in your namespace paths (e.g., admin/engineering/us-east is 3 levels)

    2. Check policy coverage: Ensure the policy includes path entries matching your namespace depth

    3. Test with explicit paths: If wildcards don't work, try creating explicit paths for specific namespaces

    Add the policy to Vault, adjusting the name and path of the saved policy as needed:

    Create an Application Role

    Enable authentication and create the role:

    The response should be: Success! Enabled approle auth method at: approle/

    Create the AppRole, and attach the policy you created:

    The response will include the path to the app role: Success! Data written to: auth/approle/role/veza-extraction-role

    Get the role ID and secret ID (sensitive):

    This returns the role_id, e.g. 10d51ce2-16bd-444b-4330-8fdcebfeda98

    Get the secret ID:

    Copy the secret_id, e.g. 16f03071-3ea6-2505-7bcc-153683766133.

    Configuring HashiCorp Vault on the Veza Platform

    To enable the integration:

    1. In Veza, go to the Integrations page.

    2. Click Add Integration and pick HashiCorp Vault as the type of integration to add. Click Next under the list of integrations.

    3. Enter the required information and Save the configuration

    Field
    Notes

    Identity Mappings

    If your users can log into Vault with single sign-on, you will need to specify this relationship in a . For example, you can connect Okta Users to matching HashiCorp Aliases by adding a mapping configuration on the Okta integration. Pick HashiCorp Vault as the destination data source, using Alias Unique ID as the mapping property.

    Notes and Supported Entities

    HashiCorp Vault Cluster

    Represents a top-level HashiCorp Vault Cluster. A Vault cluster is a set of Vault servers that share the same data storage backend, clustered for high availability and scaling.

    HashiCorp Vault Namespace

    Namespaces in Vault provide a way to partition resources and delegate management of those resources.

    The root namespace is named admin. Namespaces can be nested.

    HashiCorp Vault Group

    Groups can be nested and can have a policy attached. Groups are a way to organize and manage entities (such as users or machines) in Vault.

    Group memberships defined in one namespace referencing an entity from another namespace are not supported.

    HashiCorp Vault Alias

    Aliases represent principals that can access Vault resources. These are identities that can be used for authentication and authorization purposes in Vault.

    HashiCorp Vault System Backend

    Represents the API used to perform system actions such as creating namespaces. The system backend is a built-in secrets engine in Vault that allows management of system-level functionality.

    HashiCorp Vault Auth Method

    Authentication methods in Vault are the components used to authenticate clients and map them to internal entities. Veza currently supports vault authentication methods:

    • AppRole

    • AWS

    • Google Cloud Platform

    • Microsoft Azure

    Contact our support team if your organization uses an alternative auth method.

    HashiCorp Vault Auth Method Subresource

    Can have a policy attached. Auth method subresources are specific configurations or resources within an authentication method, such as roles or bindings.

    HashiCorp Vault Secrets Engine

    Secrets engines in Vault are the components that store and manage secrets and other sensitive data. Veza currently supports the following secrets engines:

    • Key/Value Store (v2)

    • AWS

    • Microsoft Azure

    • GCP

    HashiCorp Vault Secrets Engine Subresource

    Alternatively called secrets. Some resources are not as sensitive, such as roles generated dynamically. Secrets engine subresources are specific configurations or resources within a secrets engine, such as key-value pairs or roles.

    KV2 Key Extraction: When the "Extract KV2 Subkeys" option is enabled for the integration, Veza will extract the individual key names within each KV2 secret, providing more granular visibility into the structure of your secrets without retrieving their values. This feature requires the read capability on /+/subkeys/* paths in the Vault policy.

    HashiCorp Vault KV2 Subkey

    KV2 Subkeys represent individual keys within a KV2 (Key/Value version 2) secret. This entity type is only created when the "Extract KV2 Subkeys" option is enabled on the integration.

    Note that Veza extracts only the key names and structure—never the actual secret values to provide visibility into secret organization while maintaining security.

    Attributes:

    • Subkey Name: The name of the key within the secret (e.g., username, password, api_key)

    • Parent Secret Path: The path to the parent KV2 secret that contains this key

    • Created At: The timestamp when the parent secret was created

    KV2 Subkeys are connected to their parent Secrets Engine Subresource via a "Has key" relationship.

    HashiCorp Vault Policy

    Policy consists of statements that can allow or deny access to resources. Statements consist of a path (can include wildcards) and capabilities. Longer prefix paths take precedence over shorter ones. Policies in Vault are used to govern the access permissions of entities to various resources.

    Entities in Vault can have a policy attached.

    Namespaces

    Namespaces are path-based and can be nested. Parent namespaces can define policies related to child namespaces. Namespaces provide a way to partition resources and allow delegated management of those resources in Vault.

    Effective Permissions and Cross-Service Connections

    Veza generates effective permissions between principals (HashiCorp Vault Alias) and resources (Namespaces, System Backend, Auth Method, Auth Method Subresource, Secrets Engine, Secrets Engine Subresource, KV2 Subkey, Policy). Veza also shows connections between Vault namespaces, Vault namespace and cluster, Vault namespace and IdPs, and Vault namespace and existing integrations.

    When KV2 key extraction is enabled, effective permissions are calculated at the granular subkey level, allowing you to see which users have access to specific keys within KV2 secrets.

    Limitations

    Two Vault authorization concepts are not supported at present:

    • Templated Policies A policy may contain a set of variables. For instance, take the following policy clause:

      This allows each user access to a user-specific area. Veza doesn't currently resolve these templates to show access to secrets.

    • External Namespace Group Memberships

      Group memberships can be defined across different namespaces, independent of their hierarchy. An entity defined in one namespace can be referenced in a group in another namespace. Veza does not currently fetch policies across namespaces.

    CSV Upload Examples

    Common patterns for importing identity and permissions metadata from CSV files

    This document provides practical examples for mapping data from CSV files into Veza using the CSV Upload integration.

    You can use the CSV integration to flexibly model user, group, and role relationships based on data exported from the source application. This document includes examples from basic user data import to modeling more complex organizational structures, which you can adapt based on your needs.

    • CSV Upload Examples

      • Mapping Concepts

    Mapping Concepts

    When importing CSV data into Veza, you are typically establishing one or more of these key components:

    1. Entities: Users, groups, and roles that exist in your application

    2. Attributes: Properties that describe each entity (e.g., name, email, status)

    3. Relationships: Connections between entities (user belongs to group, user has role)

    The examples below demonstrate different approaches to mapping these components from CSV data into Veza's Access Graph.

    Basic User Mapping Example

    For a simple file containing user records, one user per row with a list or groups and roles. You can map columns directly:

    CSV Column
    Entity Type
    Veza Attribute
    Required?

    Example CSV:

    Your CSV files may have column names that differ from Veza's standard attribute names.

    CSV Column
    Entity Type
    Suggested Mapping

    Group and Role Assignment Methods

    The CSV integration supports two methods for assigning users to groups and roles:

    Method 1: Using List Columns

    Use a single column containing comma-separated values to assign a user to multiple groups or roles at once.

    Column mapping:

    CSV Column
    Entity Type
    Veza Attribute

    Example CSV:

    Key points about list columns:

    • Values must be comma-separated

    • Enclose lists in quotes if they contain commas

    • Whitespace around values is automatically trimmed

    • Empty values are ignored

    Method 2: Using Multiple Rows Per User

    You can incrementally assign roles or groups using multiple rows with the same user id. This approach is useful when:

    • You have many groups or roles per user

    • Your source system exports data in this format

    • You need to include additional details for roles or groups such as custom properties

    Example CSV:

    Key points about multiple row assignments:

    • The first occurrence of an entity id sets all properties for that entity. If the same user or role is listed more than once, the user or role attributes are not updated for rows after the first.

    • Subsequent rows only process new group and role assignments

    Advanced Role Permissions

    The CSV can include a column with a list of permissions for each role. This enables searching and filtering by permission in Veza:

    You can assign permissions to roles and then users to roles:

    Note: If permissions column is not defined any Roles are automatically assigned the Member permission

    Real-World Example: Complex Organization Structure

    This example shows how to represent a complex organizational structure with departments, teams, roles with permissions, and user assignments:

    Column mapping for this example:

    CSV Column
    Entity Type
    Veza Attribute

    This example CSV will create:

    • 7 user entities with their properties

    • Department groups (Engineering, Product, Marketing, Finance, HR, Sales)

    • Team groups (Backend, Architecture, Frontend, Product Management, UX Research, Content, Social, Accounting, Recruiting, Enterprise Sales)

    • Multiple role assignments per user

    Supported Timestamp Formats

    The CSV integration supports various timestamp formats:

    Timestamps are considered unset when the value is never, null, none, false, or 0. Invalid timestamps will result in a processing error.

    Boolean Value Handling

    When mapping to boolean attributes like is_active:

    • TRUE values: true, t, yes, y, 1, active, enabled

    • FALSE values: Any other value including false, f

    Example CSV:

    Custom Properties Example

    Any column can be mapped to a custom property for any entity type. When mapping to a custom property:

    1. Select Custom Property as the attribute

    2. Enter a name for the custom property

    3. Select the data type (String, Number, Boolean, Timestamp, or String List

    Example CSV:

    Entity Owner Example

    Designated Entity Owners can up supplied for supported Application entity types as part of the CSV. This allows for automatically assigning the owner from the value in the CSV.

    This example indicates the owner of the Role and could be used auto-assign Access Review rows to the owner for each role.

    Example CSV:
    CSV Column
    Entity Type
    Suggested Mapping

    Note that when a is configured, Owner Type is optional. Otherwise, the owner type is used to specify the type of entity in Veza Graph that will be assigned as an owner. This will typically be a User entity in your organization's Identity Provider (such as an Okta, Azure AD User, or Active Directory User), representing a top-level human identity.

    For more information about Entity Owners, see:

    CockroachDB Cloud

    Configuring the Veza integration for CockroachDB Cloud

    Overview

    The Veza CockroachDB Cloud integration discovers identity and access information from your CockroachDB Cloud organization, including:

    • Organization SCIM-provisioned users and groups

    "ExternalAccount"

  • "FullAccess"

  • "ReadPermission"

  • email_addresses

    String[]

    List of email addresses

    primary_smtp_address

    String

    Primary email address

    recipient_type_details

    String

    Type of recipient

    created_at

    Timestamp

    Creation timestamp

    updated_at

    Timestamp

    Last update timestamp

    user_principal_name

    String

    User principal name

    exchange_user_account_control

    String

    Account control settings

    account_disabled

    Boolean

    Account status

    identity_type

    String

    Type of identity

    is_active

    Boolean

    Active status

    email_addresses

    String[]

    List of email addresses

    primary_smtp_address

    String

    Primary email address

    recipient_type_details

    String

    Type of recipient

    created_at

    Timestamp

    Creation timestamp

    updated_at

    Timestamp

    Last update timestamp

    user_principal_name

    String

    User principal name

    exchange_user_account_control

    String

    Account control settings

    account_disabled

    Boolean

    Account status

    identity_type

    String

    Type of identity

    is_active

    Boolean

    Active status

    email_addresses

    String[]

    List of email addresses

    primary_smtp_address

    String

    Primary email address

    recipient_type_details

    String

    Type of recipient

    created_at

    Timestamp

    Creation timestamp

    updated_at

    Timestamp

    Last update timestamp

    hidden_from_address_lists_enabled

    Boolean

    Hidden from GAL status

    is_mailbox_enabled

    Boolean

    Mailbox enabled status

    is_resource

    Boolean

    Resource mailbox flag

    is_shared

    Boolean

    Shared mailbox flag

    linked_master_account

    String

    Linked master account

    role_assignment_policy

    String

    Role assignment policy

    items_in_folder

    Number

    Item count

    created_at

    Timestamp

    Creation timestamp

    updated_at

    Timestamp

    Last update timestamp

    folder_id

    String

    Unique folder ID

    parent_folder_id

    String

    Parent folder ID

    container_class

    String

    Container class

    email_addresses

    String[]

    List of email addresses

    primary_smtp_address

    String

    Primary email address

    recipient_type_details

    String

    Type of recipient

    created_at

    Timestamp

    Creation timestamp

    updated_at

    Timestamp

    Last update timestamp

    group_type

    String

    Type of group

    hidden_group_membership_enabled

    Boolean

    Hidden membership status

    hidden_from_address_lists_enabled

    Boolean

    Hidden from GAL status

    require_sender_authentication_enabled

    Boolean

    Require sender auth

    managed_by

    String[]

    List of managers

    Using Atlas CLI: Use atlas accessLists create:

  • Veza does not currently support the MongoDB Atlas Data API. If enabled, Veza will not detect programmatic access users might have to MongoDB data.

  • External ID
    : AWS IAM role external ID (similar to the “External ID” input in AWS integration)

    When creating MongoDB Atlas database users in the following section, instead of adding usernames and passwords, choose the option to use an AWS IAM role and use the role ARN.

    scope.
  • Click Next to view the Public and Private Keys.

  • Copy the keys and save them in a secure location. Note that the private key is only shown one time.

  • Add an API Access List Entry. Enter the IP address or CIDR block corresponding to your Veza Platform or Insight Point. Save the configuration.

  • Click Done.

  • Grant the user the Built-in Role AtlasAdmin. This is the only role granting the viewRole capability.

  • Optionally, set a Temporary User duration. You can also opt to Restrict Access to specific clusters and federated databases.

  • Click Add User.

  • is_active

    Boolean

    User active status (always true)

    database_deployment_type

    String

    Type of deployment (cluster, serverless, etc.)

    paused

    Boolean

    Whether the deployment is paused

    database_name

    String

    Target database name

    identity_type

    String

    Identity type (always "HUMAN")

    is_active

    Boolean

    User active status (always true)

    external

    Boolean

    Whether user is external (e.g., AWS IAM)

    identity_type

    String

    Identity type (always "HUMAN")

    is_active

    Boolean

    User active status (always true)

    aws_account_id

    String

    AWS account ID (if applicable)

    Insight Point

    Choose the Insight Point to use for the connection.

    Name

    Enter a friendly name to identify the unique MongoDB integration

    Database URI

    Cluster Connection String e.g. mongodb://mongodb0.example.com:28015

    Username

    Database user name for the integration

    Password

    Database user password for the integration

    Insight Point

    Choose the Insight Point to use for the connection, or use the internal Veza Insight Point.

    Public Key

    Public API Key created for the Atlas Organization

    Private Key

    Private API Key created for the Atlas Organization

    Username

    Username of the database user(s) for project-level discovery

    Password

    Password of the database user(s) for project-level discovery

    account_id

    String

    Atlas account identifier

    account_id

    String

    Atlas account identifier

    user_id

    String

    Unique user identifier within Atlas

    email

    String

    User's email address

    identity_type

    String

    account_id

    String

    Atlas account identifier

    organization_id

    String

    Unique organization identifier within Atlas

    principal_datasource_id

    String

    Principal (user) datasource identifier

    resource_datasource_id

    String

    Resource (organization) datasource identifier

    permissions

    String List

    List of granted permissions

    account_id

    String

    Atlas account identifier

    organization_id

    String

    Parent organization identifier

    project_id

    String

    Unique project identifier within Atlas

    principal_datasource_id

    String

    Principal (user) datasource identifier

    resource_datasource_id

    String

    Resource (project) datasource identifier

    permissions

    String List

    List of granted permissions

    account_id

    String

    Atlas account identifier

    organization_id

    String

    Parent organization identifier

    team_id

    String

    Unique team identifier within Atlas

    account_id

    String

    Atlas account identifier

    organization_id

    String

    Parent organization identifier

    project_id

    String

    Parent project identifier

    database_deployment_id

    String

    account_id

    String

    Atlas account identifier

    organization_id

    String

    Parent organization identifier

    project_id

    String

    Parent project identifier

    username

    String

    cluster_id

    String

    MongoDB cluster identifier

    cluster_id

    String

    MongoDB cluster identifier

    database_name

    String

    Database where user is defined

    user_id

    String

    Unique user identifier

    username

    String

    cluster_id

    String

    Parent MongoDB cluster identifier

    cluster_id

    String

    MongoDB cluster identifier

    database_name

    String

    Database where role is defined

    role_id

    String

    Unique role identifier

    principal_datasource_id

    String

    Principal (user) datasource identifier

    resource_datasource_id

    String

    Resource (cluster/database) datasource identifier

    permissions

    String List

    List of effective permissions

    privilege_source

    String

    Configure MongoDB Atlas
    Configure standalone MongoDB
    Add a MongoDB integration (Atlas or standalone) to Veza
    notes and supported entities
    Insight Point
    this guide
    AWS integration
    Configure API Access
    Add MongoDB Users
    Insight Point
    Configuring MongoDB (standalone)
    Configuring MongoDB Atlas

    Identity type (always "HUMAN")

    Unique deployment identifier

    Database username

    Database username

    Source of the privilege (role, inheritance, etc.)

    HashiCorp Vault Secrets Engine
  • HashiCorp Vault Secrets Engine Subresource

  • HashiCorp Vault KV2 Subkey (when KV2 key extraction is enabled)

  • HashiCorp Vault Policy

  • Understanding path segments: The policy above supports namespaces with up to 3 path segments (e.g., admin/engineering/us-east). Each + in a path matches exactly one segment.

    • /sys/namespaces matches the root namespace

    • +/sys/namespaces matches one segment (e.g., admin)

    • +/+/sys/namespaces matches two segments (e.g., admin/engineering)

    • +/+/+/sys/namespaces matches three segments (e.g., admin/engineering/us-east)

    If your organization has deeper namespace hierarchies, add additional path entries with more + wildcards to match your structure.

    Review AppRole placement: The AppRole must be created at the root level or appropriately scoped to access child namespaces
    Okta
  • Token

  • Userpass

  • Insight Point

    Choose whether to use the default data plane or a deployed Insight Point.

    Cluster Id

    ID of the cluster to connect to.

    Cluster URL

    URL of the cluster to connect to.

    Auth Role ID

    Vault role_id

    Auth Secret ID

    Vault role secret_id

    Extract KV2 Subkeys (Optional)

    When enabled, extracts individual key names from KV2 secrets. This provides more granular visibility into secret structure. Requires additional read permission on /+/subkeys/* paths (see policy above).

    notes and supported entities
    AppRole
    Custom Identity Mapping

    Permissions: Actions that roles allow users to perform

    account_status

    local_user

    is_active

    No

    join_date

    local_user

    created_at

    No

    last_access

    local_user

    last_login_at

    No

    password_updated

    local_user

    password_last_changed_at

    No

    termination_date

    local_user

    deactivated_at

    No

    groups

    local_group

    name list

    No

    roles

    local_role

    name list

    No

    Veza automatically creates any groups or roles that don't already exist
  • Additional properties on Groups and Roles is not supported

  • department

    local_group

    name

    team

    local_group

    name

    job_title

    local_user

    custom property (String)

    role

    local_role

    name

    role_permissions

    local_role

    permissions list

    Role permission assignments for different functional areas

    ,
    no
    ,
    n
    ,
    0
    ,
    inactive
    ,
    disabled
    )

    role_owner_type

    local_role

    Owner Type

    employee_id

    local_user

    id

    Yes

    display_name

    local_user

    name

    No

    email_address

    local_user

    email

    departments, department_names, teams

    local_group

    name list

    job_titles, positions, roles_assigned

    local_role

    name list

    permissions, access_rights

    local_role

    permissions list

    user_id

    local_user

    id

    groups

    local_group

    name list

    roles

    local_role

    name list

    user_id

    local_user

    id

    display_name

    local_user

    name

    email

    local_user

    email

    active

    local_user

    user_id

    local_user

    Id

    user_name

    local_user

    Name

    role_name

    local_role

    Name

    role_owner

    local_role

    Basic User Mapping Example
    Group and Role Assignment Methods
    Method 1: Using List Columns
    Method 2: Using Multiple Rows Per User
    Advanced Role Permissions
    Real-World Example: Complex Organization Structure
    Supported Timestamp Formats
    Boolean Value Handling
    Custom Properties Example
    Entity Owner Example
    Global Identity Provider
    Entity Owners for Access Reviews
    OAA Core Concepts: Entity Owners

    No

    is_active

    Owner Id

    # Create an access list entry for the IP address 192.0.2.15 in the project with ID 5e2211c17a3e5a48f5497de3:
    atlas accessList create 192.0.2.15 --type ipAddress --projectId 5e2211c17a3e5a48f5497de3 --comment "IP address for app server 2" --output json
    use admin
    db.createRole(
       {
         role: "veza-extractor-role",
         privileges: [
           { resource: { cluster: true }, actions: [ "listDatabases" ] },
           { resource: { db: "", collection: "system.users" }, actions: [ "find" ] },
           { resource: { db: "", collection: "" }, actions: [ "viewRole" ] }
         ],
         roles: []
       }
    )
    db.createUser(
      {
        user: "veza-extractor-user",
        pwd: passwordPrompt(),  // or cleartext password
        roles: [
           { role: "veza-extractor-role", db: "admin" }
        ]
      }
    )
    path "/sys/namespaces" {
      capabilities = ["list"]
    }
    
    # entities
    
    path "/identity/entity/id" {
      capabilities = ["list"]
    }
    
    path "/identity/entity/id/*" {
      capabilities = ["read"]
    }
    
    # groups
    
    path "/identity/group/id" {
      capabilities = ["list"]
    }
    
    path "/identity/group/id/*" {
      capabilities = ["read"]
    }
    
    # auth methods
    
    path "/sys/auth" {
      capabilities = ["read"]
    }
    
    path "/auth/+/role" {
      capabilities = ["list"]
    }
    
    path "/auth/+/role/*" {
      capabilities = ["read"]
    }
    
    path "/auth/+/roles" {
      capabilities = ["list"]
    }
    
    path "/auth/+/roles/*" {
      capabilities = ["read"]
    }
    
    path "/auth/+/users" {
      capabilities = ["list"]
    }
    
    path "/auth/+/users/*" {
      capabilities = ["read"]
    }
    
    path "/auth/+/groups" {
      capabilities = ["list"]
    }
    
    path "/auth/+/groups/*" {
      capabilities = ["read"]
    }
    
    # policies
    
    path "/sys/policies/acl" {
      capabilities = ["list"]
    }
    
    path "/sys/policies/acl/*" {
      capabilities = ["read"]
    }
    
    # secrets engines
    
    path "/sys/mounts" {
      capabilities = ["read"]
    }
    
    path "/+/metadata/*" { # kv2
      capabilities = ["list", "read"]
    }
    
    path "/+/subkeys/*" { # kv2 subkeys (required for KV2 key extraction)
      capabilities = ["read"]
    }
    
    path "/+/roles" { # aws, azure
      capabilities = ["list"]
    }
    
    path "/+/roles/*" { # aws, azure
      capabilities = ["read"]
    }
    
    path "/+/rolesets" { # gcp
      capabilities = ["list"]
    }
    
    path "/+/rolesets/*" { # gcp
      capabilities = ["read"]
    }
    
    path "/+/static-accounts" { # gcp
      capabilities = ["list"]
    }
    
    path "/+/impersonated-accounts" { # gcp
      capabilities = ["list"]
    }
    
    # namespaces
    # --- From /sys/namespaces ---
    path "+/sys/namespaces" {
      capabilities = ["list"]
    }
    path "+/+/sys/namespaces" {
      capabilities = ["list"]
    }
    path "+/+/+/sys/namespaces" {
      capabilities = ["list"]
    }
    
    # --- From /identity/entity/id ---
    path "+/identity/entity/id" {
      capabilities = ["list"]
    }
    path "+/+/identity/entity/id" {
      capabilities = ["list"]
    }
    path "+/+/+/identity/entity/id" {
      capabilities = ["list"]
    }
    
    # --- From /identity/entity/id/* ---
    path "+/identity/entity/id/*" {
      capabilities = ["read"]
    }
    path "+/+/identity/entity/id/*" {
      capabilities = ["read"]
    }
    path "+/+/+/identity/entity/id/*" {
      capabilities = ["read"]
    }
    
    # --- From /identity/group/id ---
    path "+/identity/group/id" {
      capabilities = ["list"]
    }
    path "+/+/identity/group/id" {
      capabilities = ["list"]
    }
    path "+/+/+/identity/group/id" {
      capabilities = ["list"]
    }
    
    # --- From /identity/group/id/* ---
    path "+/identity/group/id/*" {
      capabilities = ["read"]
    }
    path "+/+/identity/group/id/*" {
      capabilities = ["read"]
    }
    path "+/+/+/identity/group/id/*" {
      capabilities = ["read"]
    }
    
    # --- From /sys/auth ---
    path "+/sys/auth" {
      capabilities = ["read"]
    }
    path "+/+/sys/auth" {
      capabilities = ["read"]
    }
    path "+/+/+/sys/auth" {
      capabilities = ["read"]
    }
    
    # --- From /auth/+/role ---
    path "+/auth/+/role" {
      capabilities = ["list"]
    }
    path "+/+/auth/+/role" {
      capabilities = ["list"]
    }
    path "+/+/+/auth/+/role" {
      capabilities = ["list"]
    }
    
    # --- From /auth/+/role/* ---
    path "+/auth/+/role/*" {
      capabilities = ["read"]
    }
    path "+/+/auth/+/role/*" {
      capabilities = ["read"]
    }
    path "+/+/+/auth/+/role/*" {
      capabilities = ["read"]
    }
    
    # --- From /auth/+/roles ---
    path "+/auth/+/roles" {
      capabilities = ["list"]
    }
    path "+/+/auth/+/roles" {
      capabilities = ["list"]
    }
    path "+/+/+/auth/+/roles" {
      capabilities = ["list"]
    }
    
    # --- From /auth/+/roles/* ---
    path "+/auth/+/roles/*" {
      capabilities = ["read"]
    }
    path "+/+/auth/+/roles/*" {
      capabilities = ["read"]
    }
    path "+/+/+/auth/+/roles/*" {
      capabilities = ["read"]
    }
    
    # --- From /auth/+/users ---
    path "+/auth/+/users" {
      capabilities = ["list"]
    }
    path "+/+/auth/+/users" {
      capabilities = ["list"]
    }
    path "+/+/+/auth/+/users" {
      capabilities = ["list"]
    }
    
    # --- From /auth/+/users/* ---
    path "+/auth/+/users/*" {
      capabilities = ["read"]
    }
    path "+/+/auth/+/users/*" {
      capabilities = ["read"]
    }
    path "+/+/+/auth/+/users/*" {
      capabilities = ["read"]
    }
    
    # --- From /auth/+/groups ---
    path "+/auth/+/groups" {
      capabilities = ["list"]
    }
    path "+/+/auth/+/groups" {
      capabilities = ["list"]
    }
    path "+/+/+/auth/+/groups" {
      capabilities = ["list"]
    }
    
    # --- From /auth/+/groups/* ---
    path "+/auth/+/groups/*" {
      capabilities = ["read"]
    }
    path "+/+/auth/+/groups/*" {
      capabilities = ["read"]
    }
    path "+/+/+/auth/+/groups/*" {
      capabilities = ["read"]
    }
    
    # --- From /sys/policies/acl ---
    path "+/sys/policies/acl" {
      capabilities = ["list"]
    }
    path "+/+/sys/policies/acl" {
      capabilities = ["list"]
    }
    path "+/+/+/sys/policies/acl" {
      capabilities = ["list"]
    }
    
    # --- From /sys/policies/acl/* ---
    path "+/sys/policies/acl/*" {
      capabilities = ["read"]
    }
    path "+/+/sys/policies/acl/*" {
      capabilities = ["read"]
    }
    path "+/+/+/sys/policies/acl/*" {
      capabilities = ["read"]
    }
    
    # --- From /sys/mounts ---
    path "+/sys/mounts" {
      capabilities = ["read"]
    }
    path "+/+/sys/mounts" {
      capabilities = ["read"]
    }
    path "+/+/+/sys/mounts" {
      capabilities = ["read"]
    }
    
    # --- From /+/metadata/* ---
    path "+/+/metadata/*" { # kv2
      capabilities = ["list", "read"]
    }
    path "+/+/+/metadata/*" { # kv2
      capabilities = ["list", "read"]
    }
    path "+/+/+/+/metadata/*" { # kv2
      capabilities = ["list", "read"]
    }
    
    # --- From /+/subkeys/* ---
    path "+/+/subkeys/*" { # kv2 subkeys
      capabilities = ["read"]
    }
    path "+/+/+/subkeys/*" { # kv2 subkeys
      capabilities = ["read"]
    }
    path "+/+/+/+/subkeys/*" { # kv2 subkeys
      capabilities = ["read"]
    }
    
    # --- From /+/roles ---
    path "+/+/roles" { # aws, azure
      capabilities = ["list"]
    }
    path "+/+/+/roles" { # aws, azure
      capabilities = ["list"]
    }
    path "+/+/+/+/roles" { # aws, azure
      capabilities = ["list"]
    }
    
    # --- From /+/roles/* ---
    path "+/+/roles/*" { # aws, azure
      capabilities = ["read"]
    }
    path "+/+/+/roles/*" { # aws, azure
      capabilities = ["read"]
    }
    path "+/+/+/+/roles/*" { # aws, azure
      capabilities = ["read"]
    }
    
    # --- From /+/rolesets ---
    path "+/+/rolesets" { # gcp
      capabilities = ["list"]
    }
    path "+/+/+/rolesets" { # gcp
      capabilities = ["list"]
    }
    path "+/+/+/+/rolesets" { # gcp
      capabilities = ["list"]
    }
    
    # --- From /+/rolesets/* ---
    path "+/+/rolesets/*" { # gcp
      capabilities = ["read"]
    }
    path "+/+/+/rolesets/*" { # gcp
      capabilities = ["read"]
    }
    path "+/+/+/+/rolesets/*" { # gcp
      capabilities = ["read"]
    }
    
    # --- From /+/static-accounts ---
    path "+/+/static-accounts" { # gcp
      capabilities = ["list"]
    }
    path "+/+/+/static-accounts" { # gcp
      capabilities = ["list"]
    }
    path "+/+/+/+/static-accounts" { # gcp
      capabilities = ["list"]
    }
    
    # --- From /+/impersonated-accounts ---
    path "+/+/impersonated-accounts" { # gcp
      capabilities = ["list"]
    }
    path "+/+/+/impersonated-accounts" { # gcp
      capabilities = ["list"]
    }
    path "+/+/+/+/impersonated-accounts" { # gcp
      capabilities = ["list"]
    }
    path "/sys/namespaces" {
      capabilities = ["list"]
    }
    
    # entities
    
    path "/identity/entity/id" {
      capabilities = ["list"]
    }
    
    path "/identity/entity/id/*" {
      capabilities = ["read"]
    }
    
    # groups
    
    path "/identity/group/id" {
      capabilities = ["list"]
    }
    
    path "/identity/group/id/*" {
      capabilities = ["read"]
    }
    
    # auth methods
    
    path "/sys/auth" {
      capabilities = ["read"]
    }
    
    path "/auth/+/role" {
      capabilities = ["list"]
    }
    
    path "/auth/+/role/*" {
      capabilities = ["read"]
    }
    
    path "/auth/+/roles" {
      capabilities = ["list"]
    }
    
    path "/auth/+/roles/*" {
      capabilities = ["read"]
    }
    
    path "/auth/+/users" {
      capabilities = ["list"]
    }
    
    path "/auth/+/users/*" {
      capabilities = ["read"]
    }
    
    path "/auth/+/groups" {
      capabilities = ["list"]
    }
    
    path "/auth/+/groups/*" {
      capabilities = ["read"]
    }
    
    # policies
    
    path "/sys/policies/acl" {
      capabilities = ["list"]
    }
    
    path "/sys/policies/acl/*" {
      capabilities = ["read"]
    }
    
    # secrets engines
    
    path "/sys/mounts" {
      capabilities = ["read"]
    }
    
    path "/+/metadata/*" { # kv2
      capabilities = ["list", "read"]
    }
    
    path "/+/subkeys/*" { # kv2 subkeys (required for KV2 key extraction)
      capabilities = ["read"]
    }
    
    path "/+/roles" { # aws, azure
      capabilities = ["list"]
    }
    
    path "/+/roles/*" { # aws, azure
      capabilities = ["read"]
    }
    
    path "/+/rolesets" { # gcp
      capabilities = ["list"]
    }
    
    path "/+/rolesets/*" { # gcp
      capabilities = ["read"]
    }
    
    path "/+/static-accounts" { # gcp
      capabilities = ["list"]
    }
    
    path "/+/impersonated-accounts" { # gcp
      capabilities = ["list"]
    }
    vault policy write veza-extraction-policy path/to/veza-policy.hcl
    vault auth enable approle
    vault write auth/approle/role/veza-extraction-role token_policies=veza-extraction-policy
    vault read /auth/approle/role/veza-extraction-role/role-id
    vault write -f /auth/approle/role/veza-extraction-role/secret-id
    path "secret/data/{{identity.entity.id}}/*" {
    capabilities = ["create", "update", "patch", "read", "delete"]
    }
    employee_id,display_name,email_address,account_status,join_date,last_access,password_updated,termination_date,groups,roles
    EMP001,Alex Johnson,[email protected],active,2023-04-15,2025-02-15T09:30:45Z,2024-11-10T08:15:30Z,,"Engineering, DevOps","Developer, System Administrator"
    EMP002,Taylor Smith,[email protected],true,2022-09-20,2025-03-01T11:45:20Z,2024-10-05T14:30:15Z,,"Product, UX Research","Product Manager, UX Designer"
    EMP003,Jordan Lee,[email protected],inactive,2021-11-05,2024-10-10T16:20:30Z,2024-06-15T09:45:10Z,2025-01-15,"Marketing, Content","Content Creator, Social Media Manager"
    EMP004,Casey Morgan,[email protected],1,2023-08-22,2025-02-28T15:10:25Z,2024-12-20T10:30:45Z,,"Finance, Accounting","Financial Analyst, Auditor"
    EMP005,Riley Brown,[email protected],0,2022-03-10,2024-11-15T08:45:30Z,2024-08-05T11:20:15Z,2024-12-31,"HR, Recruiting","HR Specialist, Talent Acquisition"
    user_id,groups,roles
    user1,"Engineering, QA Team, Product Team","Software Engineer, Technical Lead"
    user2,Marketing,"Content Writer, Editor"
    user3,Finance,"Accountant, Auditor"
    user4,HR,HR Specialist
    user5,"Support, Training",Customer Support Representative
    user_id,name,email,active,group,role,role_description
    user1,Alice Smith,[email protected],true,Engineering,Software Engineer,Core development role
    user1,Alice Smith,[email protected],true,QA Team,Technical Lead,Testing oversight role
    user1,Alice Smith,[email protected],true,Product Team,Technical Lead,Product development leadership
    user2,Bob Johnson,[email protected],false,Marketing,Content Writer,Content creation role
    user2,Bob Johnson,[email protected],false,Marketing,Editor,Content review role
    user_id,name,email,is_active,groups,role,permissions
    USR001,Alex Johnson,[email protected],true,"Dev Team",Developer,"view_code, edit_code"
    USR001,Alex Johnson,[email protected],true,"Backend Group",Code Reviewer,"approve_pull_requests"
    USR002,Taylor Smith,[email protected],yes,"Ops Team",System Administrator,"manage_infrastructure"
    USR002,Taylor Smith,[email protected],yes,"Cloud Admin",Release Manager,"deploy_production"
    USR003,Jordan Lee,[email protected],1,"Product Team",Product Owner,"create_requirements"
    USR003,Jordan Lee,[email protected],1,"Analytics Users",Data Analyst,"view_analytics"
    user_id,display_name,email,active,department,team,job_title,role,role_permissions
    emp101,John Smith,[email protected],true,Engineering,Backend,"Senior Developer","Developer Lead","read_all,write_backend,deploy_backend"
    emp101,John Smith,[email protected],true,Engineering,Architecture,"Senior Developer","Architecture Committee","approve_designs,modify_architecture"
    emp102,Jane Doe,[email protected],true,Engineering,Frontend,"UI Developer","Frontend Developer","read_all,write_frontend,deploy_frontend"
    emp103,Robert Johnson,[email protected],true,Product,"Product Management","Product Owner","Product Manager","read_all,create_requirements,approve_features"
    emp103,Robert Johnson,[email protected],true,Product,"UX Research","Product Owner","User Researcher","conduct_research,analyze_results"
    emp104,Maria Garcia,[email protected],true,Marketing,Content,"Marketing Specialist","Content Creator","read_marketing,write_content"
    emp104,Maria Garcia,[email protected],true,Marketing,Social,"Marketing Specialist","Social Media Manager","post_social,analyze_metrics"
    emp105,David Lee,[email protected],true,Finance,Accounting,"Finance Manager","Financial Controller","approve_expenses,manage_budgets,generate_reports"
    emp106,Sarah Wilson,[email protected],true,HR,Recruiting,"HR Specialist","Recruiter","post_jobs,review_applications,conduct_interviews"
    emp107,Michael Brown,[email protected],true,Sales,"Enterprise Sales","Sales Executive","Account Manager","manage_clients,create_proposals,close_deals"
    user_id,name,email,active,created_at,last_login_at,password_last_changed_at,deactivated_at
    TS001,Timestamp Example 1,[email protected],true,2023-04-12T15:34:56.123456789Z,2006-01-02T15:04:05Z07:00,20060102150405,
    TS002,Timestamp Example 2,[email protected],true,2006-01-30 15:04:05Z07:00,2006-01-30 15:04:05,2006-01-30,2006-01-30T
    TS003,Timestamp Example 3,[email protected],true,2006-01-30T15:04:05,2006-01-30T15:04:05Z,never,null
    TS004,Timestamp Example 4,[email protected],false,2024-03-15,none,false,0
    TS005,Timestamp Example 5,[email protected],true,1/2/2006,1/15/2023,11/22/2024,
    user_id,name,email,active
    B001,Boolean Example 1,[email protected],true
    B002,Boolean Example 2,[email protected],t
    B003,Boolean Example 3,[email protected],yes
    B004,Boolean Example 4,[email protected],y
    B005,Boolean Example 5,[email protected],1
    B006,Boolean Example 6,[email protected],active
    B007,Boolean Example 7,[email protected],enabled
    B008,Boolean Example 8,[email protected],false
    B009,Boolean Example 9,[email protected],f
    B010,Boolean Example 10,[email protected],no
    B011,Boolean Example 11,[email protected],n
    B012,Boolean Example 12,[email protected],0
    B013,Boolean Example 13,[email protected],inactive
    B014,Boolean Example 14,[email protected],disabled
    user_id,name,email,active,department,title,office_location,hire_date,employee_type,salary_band,performance_rating,certification,languages,project_ids,manager_id,emergency_contact
    CP001,Custom Property Example 1,[email protected],true,Engineering,Senior Developer,New York,2023-01-15,Full-time,B4,Exceeds Expectations,"AWS Certified, Azure Expert","Java, Python, Go","PROJ-001, PROJ-002",MGR-101,John Smith (555-123-4567)
    CP002,Custom Property Example 2,[email protected],true,Marketing,Marketing Manager,San Francisco,2022-05-10,Full-time,C2,Meets Expectations,Google Analytics,"English, Spanish",PROJ-003,MGR-102,Mary Johnson (555-987-6543)
    CP003,Custom Property Example 3,[email protected],false,Finance,Financial Analyst,Chicago,2023-08-22,Contract,A3,Needs Improvement,CPA,"English, French","PROJ-004, PROJ-005, PROJ-006",MGR-103,Robert Davis (555-456-7890)
    user_id,user_name,role_name,role_owner,role_owner_type
    10001,bob,admin,[email protected],,oktauser
    10002,sue,admin,[email protected],oktauser
    10003,marry,user,[email protected],oktauser
    10004,jane,user,[email protected],oktauser
    10005,sam,viewer,[email protected],oktauser
    10006,adam,viewer,[email protected],oktauser
    10007,brett,ops,[email protected],oktauser
    10008,robert,ops,[email protected],oktauser
    10009,chris,manager,,
    10010,nick,manager,,
    Service accounts and their API keys
  • Organization and folder-scoped role assignments

  • Clusters are organized within the folder hierarchy

  • Effective permissions across the organization and folder structure

  • This is a native agent integration that connects to the CockroachDB Cloud API to extract authorization metadata. Veza models the hierarchical organization structure, enabling you to analyze how permissions flow from the organization level through folders to individual clusters.

    CockroachDB Cloud uses a hierarchical authorization model where roles assigned at the organization or folder level automatically inherit to child folders and clusters. Veza models this inheritance, showing you the complete effective permissions for each identity across your organization. See Notes and Supported Entities for details on what Veza discovers.

    After reading this guide, you will understand how to:

    • Configure a CockroachDB Cloud service account with API access for Veza

    • Connect Veza to your CockroachDB Cloud organization to discover users, groups, service accounts, roles, folders, and clusters

    • Understand how Veza models CockroachDB Cloud's hierarchical folder structure and role-based access control


    Prerequisites

    Before configuring the integration, ensure you have:

    • Network connectivity from Veza to the CockroachDB Cloud API (cockroachlabs.cloud) via:

      • A deployed Insight Point in your network (recommended for production)

      • Direct connection using Veza's internal Insight Point (suitable for testing)

    • Organization Administrator access to create service accounts in CockroachDB Cloud

    • A service account with the Organization Admin role for API access

    • An API key for the service account

    Only service accounts can authenticate to the CockroachDB Cloud API. Regular user accounts cannot generate API keys for programmatic access.


    Configuring CockroachDB Cloud

    Creating the Service Account

    The Veza integration requires a CockroachDB Cloud service account with an API key. This service account authenticates to the CockroachDB Cloud API to retrieve organization metadata.

    1. Log in to the CockroachDB Cloud Console

    2. Navigate to Access Management > Service Accounts

    3. Click Create Service Account

    4. Provide a name for the service account (e.g., veza-integration)

    5. Assign the Organization Admin role to the service account at the organization scope

    6. Click Create and save the generated API key securely

    The API key is displayed only once during creation. Store it securely, as you will need it to configure the Veza integration. If you lose the key, you will need to create a new one.

    Required Permissions

    The integration requires the Organization Admin role to access organization-level metadata through the CockroachDB Cloud API.

    Permission Scope
    Role Required
    Purpose

    Organization

    Organization Admin

    Discover users, groups, roles, service accounts, folders, and clusters

    The Organization Admin role provides:

    • Read access to organization SCIM users and SCIM groups

    • Read access to service accounts and API keys

    • Read access to role assignments at organization and folder scopes

    • Read access to folders and cluster metadata

    • Ability to list all resources within the organization hierarchy

    You can test the API key to ensure it has the correct permissions:


    Configuring CockroachDB Cloud on the Veza Platform

    Add the integration in Veza. See Configuring Integrations for detailed steps on adding and configuring integrations.

    Configuration Options

    Field
    Required
    Notes

    Insight Point

    Yes

    Choose whether to use the default data plane or a deployed Insight Point

    Name

    Yes

    A friendly name to identify this integration instance

    API Key

    Yes

    The service account API key created in the previous step

    After adding the integration, Veza will automatically discover your CockroachDB Cloud organization resources. The integration creates additional data sources for each cluster discovered in your organization.


    Notes and Supported Entities

    Veza discovers and models the following entity types from CockroachDB Cloud:

    • Organization

    • User (SCIM-provisioned)

    • Group (SCIM-provisioned)

    • Service Account

    • API Key

    • Role

    • Role Assignment

    • Folder

    • Cluster

    CockroachDB Cloud implements a hierarchical authorization model where:

    • Organization is the top-level container for all resources

    • Folders provide hierarchical organization of clusters (folders can contain other folders)

    • Clusters are the database instances that can be assigned to folders or directly to the organization

    • Roles can be assigned at the organization, folder, or cluster scope, with permissions inheriting down the hierarchy

    The metadata that Veza collects enables granular queries for search, rules, and workflows. To view discovered properties for an entity, search for it in the Authorization Graph and click View Details. You can also view all possible entity properties when filtering in Query Builder or Access Reviews.

    Organization

    The top-level container for all CockroachDB Cloud resources within your account.

    Attribute
    Type
    Description

    name

    String

    Organization display name

    created_at

    Timestamp

    When the organization was created

    Relationships:

    • Contains Users, Groups, Service Accounts, Roles, Folders, and Clusters

    User

    SCIM-provisioned users within the CockroachDB Cloud organization.

    Attribute
    Type
    Description

    name

    String

    User's full name

    display_name

    String

    Display name from SCIM provider

    user_name

    String

    Username from SCIM provider

    emails

    String List

    Email addresses associated with the user

    Notes:

    • Users are provisioned through SCIM integration with an external identity provider

    • User accounts are initially assigned the Organization Member role, which provides no permissions by default

    • Additional roles must be explicitly assigned at the organization, folder, or cluster scope

    Group

    SCIM-provisioned groups that enable role assignment to multiple users.

    Attribute
    Type
    Description

    name

    String

    Group display name

    external_id

    String

    Identifier from external identity provider

    created_at

    Timestamp

    When the group was created

    last_modified_at

    Timestamp

    When the group was last updated

    Notes:

    • Groups support nested membership (groups can contain other groups)

    • Role assignments to groups automatically apply to all group members

    • Groups are synchronized from external identity providers via SCIM

    Service Account

    Non-human identities used for API access and automation.

    Attribute
    Type
    Description

    name

    String

    Service account name

    creator_name

    String

    Name of the user who created the service account

    created_at

    Timestamp

    When the service account was created

    identity_type

    String

    Type of identity (non-human)

    Notes:

    • Service accounts authenticate to the Cloud API using API keys

    • Role assignments on service accounts apply to all API operations performed using their API keys

    • Service accounts cannot access the CockroachDB Cloud Console UI

    API Key

    Credentials associated with service accounts for API authentication.

    Attribute
    Type
    Description

    name

    String

    API key name

    created_at

    Timestamp

    When the API key was created

    identity_type

    String

    Type of identity (non-human)

    Notes:

    • API keys are bearer tokens used in the Authorization header for Cloud API requests

    • Each API key is linked to exactly one service account

    Role

    Predefined sets of permissions that can be assigned at different scopes.

    Attribute
    Type
    Description

    name

    String

    Role name (e.g., ORG_ADMIN, CLUSTER_ADMIN)

    permissions

    String List

    List of permissions granted by this role

    CockroachDB Cloud provides the following organization roles:

    Role
    Description

    ORG_MEMBER

    Default role for all users; provides base organization membership

    ORG_ADMIN

    Manage users, service accounts, and role assignments

    BILLING_COORDINATOR

    Manage billing and payment information

    CLUSTER_CREATOR

    Create new clusters and manage own clusters

    CLUSTER_OPERATOR_WRITER

    Configure and manage cluster operations

    CLUSTER_ADMIN

    Full administrative access to clusters

    Role Assignment

    Represents the assignment of a role to a user, group, or service account at a specific scope (organization, folder, or cluster).

    Attribute
    Type
    Description

    name

    String

    Name of the assigned role

    resource_type

    String

    Scope of the assignment (ORGANIZATION, FOLDER, or CLUSTER)

    resource_id

    String

    ID of the resource where the role is assigned

    permissions

    String List

    Effective permissions granted by this assignment

    Notes:

    • Role assignments at the organization scope apply to all resources in the organization

    • Role assignments at folder scope apply to the folder and all child folders and clusters

    • Role assignments at cluster scope apply only to that specific cluster

    • Veza models permission inheritance through the hierarchy automatically

    Folder

    Organizational containers for grouping clusters and other folders.

    Attribute
    Type
    Description

    name

    String

    Folder name

    path

    String

    Full hierarchical path to the folder (e.g., /production/us-east)

    Notes:

    • Folders can contain other folders and clusters, creating a multi-level hierarchy

    • Role assignments on folders are inherited by all child folders and clusters

    • Folders are used to organize clusters by business unit, environment, region, or other criteria

    Cluster

    Metadata about CockroachDB database clusters discovered in the organization.

    Attribute
    Type
    Description

    name

    String

    Cluster name

    cluster_id

    String

    Unique identifier for the cluster

    state

    String

    Current state of the cluster (e.g., CREATED, CREATING)

    operation_status

    String

    Current operation status

    Notes:

    • Cluster entities represent the CockroachDB Cloud management metadata

    • Cluster metadata includes cloud provider and operational details for cost tracking and compliance

    Permissions and Effective Access

    CockroachDB Cloud uses a role-based access control (RBAC) model with hierarchical permission inheritance. Veza maps native CockroachDB Cloud permissions to Effective Permissions, showing the complete access granted through:

    • Direct role assignments at organization, folder, or cluster scope

    • Group membership (roles assigned to groups apply to all members)

    • Service account role assignments

    • Hierarchical inheritance (organization roles inherit to folders and clusters; folder roles inherit to child folders and clusters)

    Permission Mappings by Role

    Organization-Scoped Roles:

    Roles that can be assigned at the organization scope:

    Role
    Key Permissions
    Veza Effective Permissions

    ORG_ADMIN

    Assign and revoke roles, manage users and service accounts

    Data Create, Data Write, Data Delete, Metadata Create, Metadata Write, Non Data

    BILLING_COORDINATOR

    Manage billing

    Non Data

    CLUSTER_CREATOR

    Create clusters, edit/delete own clusters

    Data Create, Data Write, Data Delete, Metadata Read, Metadata Write, Metadata Create, Metadata Delete

    CLUSTER_ADMIN

    Full cluster administration, manage SQL users, configure SSO

    Folder-Scoped Roles:

    Roles that can be assigned at the folder scope (apply to folder and all child folders/clusters):

    Role
    Key Permissions
    Veza Effective Permissions

    CLUSTER_ADMIN

    Full cluster administration, manage SQL users, configure SSO

    Data Create, Data Write, Data Delete, Metadata Read, Metadata Write, Metadata Create, Non Data

    CLUSTER_CREATOR

    Create clusters, edit/delete own clusters

    Data Create, Data Write, Data Delete, Metadata Read, Metadata Write, Metadata Create, Metadata Delete

    CLUSTER_OPERATOR_WRITER

    Configure cluster settings, scale nodes, and manage networking

    Data Create, Data Write, Data Delete, Metadata Read, Metadata Write, Metadata Create, Non Data

    CLUSTER_DEVELOPER

    View cluster details, access DB Console

    Cluster-Scoped Roles:

    Roles that can be assigned at the cluster scope (apply only to specific cluster):

    Role
    Key Permissions
    Veza Effective Permissions

    CLUSTER_ADMIN

    Full cluster administration, manage SQL users, configure SSO

    Data Create, Data Write, Data Delete, Metadata Read, Metadata Write, Metadata Create, Non Data

    CLUSTER_OPERATOR_WRITER

    Configure cluster settings, scale nodes, and manage networking

    Data Create, Data Write, Data Delete, Metadata Read, Metadata Write, Metadata Create, Non Data

    CLUSTER_DEVELOPER

    View cluster details, access DB Console

    Metadata Read, Non Data

    Organization Member Role:

    Role
    Scope
    Description
    Veza Effective Permissions

    ORG_MEMBER

    Organization

    Base membership permission; no additional capabilities

    Uncategorized

    Permission Inheritance

    Veza analyzes the following factors when determining effective permissions:

    1. Organization-Level Role Assignments: Roles assigned at the organization scope apply to the organization and are inherited by all folders and clusters

    2. Folder-Level Role Assignments: Roles assigned on a folder apply to that folder and are inherited by all child folders and clusters within the folder hierarchy

    3. Cluster-Level Role Assignments: Roles assigned directly on a cluster apply only to that specific cluster

    4. Group Membership Inheritance: Users inherit all role assignments from groups they belong to, including nested group memberships


    Additional Resources

    • Official CockroachDB Cloud API Documentation

    • CockroachDB Cloud Authorization Overview

    • Managing Access in CockroachDB Cloud

    • Organize Clusters Using Folders

    Databricks: Entities and Permissions Reference

    Databricks entity types, attributes, and permissions reference

    This document provides reference information about the entity types, attributes, and permissions that Veza discovers from Databricks integrations. This information applies to both workspace-level and Unity Catalog integrations.

    Integration Architecture

    Within Databricks, Access Control Lists (ACLs) govern permissions to different entities such as catalogs, schemas, tables, clusters, directories, and notebooks.

    Veza discovers entity and authorization metadata using the native Databricks REST API and executes SQL queries on designated clusters to extract table-level metadata and permissions.

    Workspace Mode: Connects directly to individual workspaces using personal access token authentication. This is configured as a standalone Databricks integration. The integration supports workspace resources and the hive_metastore catalog.

    Unity Catalog Mode: Connects at the account level using OAuth or SSO. This is configured as part of your cloud provider integration (, , or ) (not as a standalone integration). When enabled, Veza discovers account-level resources, multiple workspaces, Unity Catalog metastores, and all associated resources.

    In Databricks Unity Catalog, Users, Service Principals, Groups, and Catalogs exist at both account and workspace levels, with account-level identities linked to their workspace-level counterparts.

    Supported Entities

    Identity Entities

    User

    Local workspace user account. Users can be members of groups, own resources, and have permissions granted directly or through group membership.

    Attributes:

    • email

    • emails

    • system_id

    • is_disabled

    Service Principal

    Non-human identity used for programmatic access and automation. Service principals can authenticate to Databricks and have permissions managed similarly to users.

    Attributes:

    • application_id

    • system_id

    • is_disabled

    Group

    Group for organizing users and service principals. Groups can contain users, service principals, and other groups (nested membership).

    Attributes:

    • identity_unique_id

    • roles (Unity Catalog)

    • indirect_roles (Unity Catalog)

    Personal Access Token

    Authentication token owned by a user or service principal. PATs provide programmatic access to Databricks with the same permissions as the owning identity.

    Attributes:

    • token_id

    • created_by_id

    • created_by_username

    Notes:

    • Personal Access Tokens automatically inherit all permissions from their owning identity

    • Token discovery requires workspace admin permissions and may not be available on all Databricks pricing tiers

    • Expired tokens are excluded from discovery

    Container Entities

    Account (Unity Catalog)

    Top-level container for Unity Catalog resources including metastores, workspaces, account-level identities, and OAuth applications.

    Attributes:

    • account_id

    Workspace

    Container for workspace resources including users, groups, clusters, directories, notebooks, and catalogs.

    Attributes:

    • sso_id

    • sso_type

    • metastore_id

    Metastore (Unity Catalog)

    Unity Catalog metastore that can be shared across multiple workspaces and contains catalogs.

    Attributes:

    • metastore_id

    • region

    Data Entities

    Catalog

    Database catalog containing schemas.

    Attributes:

    • catalog_type

    • metastore_id

    • isolation_mode

    Notes:

    • Workspace mode only discovers the hive_metastore catalog

    • Hive metastores do not support catalog-level permission grants

    • Unity Catalog mode discovers all catalogs within attached metastores

    Schema

    Database schema within a catalog, containing tables and views.

    Attributes:

    • catalog_name

    • workspace_host

    • metastore_id

    Table

    Data table within a schema.

    Attributes:

    • Name

    • ID

    View

    Database view within a schema. Views are virtual tables based on queries, with independent permissions that control who can query them.

    Attributes:

    • Name

    • ID

    Workspace Objects

    Directory

    Workspace folder that can contain subdirectories and notebooks.

    Attributes:

    • depth

    • path

    • top_datasource_level

    • workspace_host

    Notebook

    Executable code document that can be attached to a cluster. Notebooks contain code, visualizations, and documentation.

    Attributes:

    • depth

    • path

    • workspace_host

    Compute Resources

    Cluster

    Compute cluster (set of Spark computation resources) used to run notebooks and jobs.

    Attributes:

    • local_disk_encryption_enabled

    • autotermination_minutes

    • creator_user_name

    Job

    Automated workflow for running data engineering, data science, and analytics workloads.

    Attributes:

    • job_id

    • creator_user_name

    • created_time

    Pipeline

    Delta Live Tables pipeline for building reliable data processing pipelines with automatic testing and monitoring.

    Attributes:

    • pipeline_id

    • cluster_id

    • creator_user_name

    Security Entities (Unity Catalog)

    Account Service Principal Secret (Unity Catalog)

    OAuth secret for account-level service principals.

    Attributes:

    • service_principal_app_id

    • secret_status

    • secret_name

    Account Service Principal Federation Policy (Unity Catalog)

    OIDC federation policy for a specific account service principal, enabling workload identity federation.

    Attributes:

    • service_principal_app_id

    • policy_name

    • policy_description

    Account Federation Policy (Unity Catalog)

    Account-level OIDC federation policy that can be referenced by multiple identities.

    Attributes:

    • policy_name

    • policy_description

    • policy_uid

    OAuth Applications (Unity Catalog)

    Published OAuth App Integration (Unity Catalog)

    Pre-configured Databricks-provided OAuth application.

    Attributes:

    • app_id

    • integration_id

    • app_name

    • created_at

    Custom OAuth App Integration (Unity Catalog)

    User-created OAuth application with custom configuration.

    Attributes:

    • client_id

    • integration_id

    • app_name

    • created_at

    Permissions and Effective Access

    Databricks uses Access Control Lists (ACLs) to control access to different types of resources. Veza models these native privileges and generates Effective Permissions, showing the cumulative access granted through:

    • Direct privilege assignments to users or service principals

    • Group membership (including nested groups)

    • Personal Access Token inheritance from owning identity

    • Directory and notebook permission inheritance

    Permission Types by Resource

    Data Object Permissions

    Permissions that apply to Catalogs, Schemas, Tables, and Views:

    Permission
    Description

    Directory and Notebook Permissions

    Permission
    Description

    Cluster Permissions

    Permission
    Description

    Job Permissions

    Permission
    Description

    Pipeline Permissions

    Permission
    Description

    Unsupported Entities

    The following Databricks entity types are not currently supported:

    • SQL Warehouse

    • Experiment

    • Cluster Pool

    • Query

    Google Cloud

    Configuring the Veza integration for Google Cloud

    Overview

    The Veza Integration for Google Cloud Platform (GCP) enables discovery of Google Cloud Workspace and Google Cloud IAM entities, along with authorization metadata for the organization, projects, and folders. Veza additionally discovers authorization to resources such as Storage, Compute, BigQuery, and KMS, using read-only permissions and native project APIs.

    Native Identity Mapping

    Microsoft Azure

    Configuring the Veza integration for Microsoft Azure

    Veza connects to Azure tenants using an App Registration granted read-only permissions for the Microsoft Graph API. You will need an app client ID, client secret, and the Azure tenant ID to enable the connection in Veza.

    Adding an Azure tenant will parse all its services, including Azure AD as an Identity Provider (IdP), and as an additional data source.

    See for more details and supported Microsoft services.

    Integrating with Microsoft Azure

    # Test organization access
    curl -H "Authorization: Bearer YOUR_SECRET_KEY" \
      https://cockroachlabs.cloud/api/v1/organizations
    
    # Expected: JSON response with organization details

    external_id

    String

    Identifier from external identity provider

    is_active

    Boolean

    Whether the user account is active in CockroachDB Cloud

    created_at

    Timestamp

    When the user was created

    last_modified_at

    Timestamp

    When the user was last updated

    identity_type

    String

    System field (always human for users)

    CLUSTER_DEVELOPER

    Read-only access to cluster details and DB Console

    FOLDER_ADMIN

    Create and manage folders and folder-scoped access

    FOLDER_MOVER

    Move clusters and folders within the hierarchy

    cloud_provider

    String

    Cloud provider hosting the cluster (e.g., AWS, GCP, AZURE)

    cost_center

    String

    Cost center label for billing

    creator_id

    String

    ID of the user who created the cluster

    created_at

    Timestamp

    When the cluster was created

    updated_at

    Timestamp

    When the cluster was last updated

    Data Create, Data Write, Data Delete, Metadata Read, Metadata Write, Metadata Create, Non Data

    CLUSTER_OPERATOR_WRITER

    Configure cluster settings, scale nodes, and manage networking

    Data Create, Data Write, Data Delete, Metadata Read, Metadata Write, Metadata Create, Non Data

    CLUSTER_DEVELOPER

    View cluster details, access DB Console

    Metadata Read, Non Data

    FOLDER_ADMIN

    Create/delete/manage folders, apply roles at folder scope

    Data Create, Data Write, Data Delete, Metadata Create, Metadata Write, Non Data

    FOLDER_MOVER

    Move clusters between folders

    Metadata Write

    Metadata Read, Non Data

    FOLDER_ADMIN

    Create/delete/manage folders, apply roles at folder scope

    Data Create, Data Write, Data Delete, Metadata Create, Metadata Write, Non Data

    FOLDER_MOVER

    Move clusters between folders

    Metadata Write

    Configuring Integrations
    Access Reviews Scenarios
    Query Builder Reference
  • identity_unique_id

  • identity_type

  • is_active

  • roles (Unity Catalog)

  • indirect_roles (Unity Catalog)

  • identity_unique_id
  • identity_type

  • is_active

  • roles (Unity Catalog)

  • indirect_roles (Unity Catalog)

  • created_at
  • expires_at

  • owner_id

  • workspace_hosts
    num_workers
  • spark_version

  • runtime_engine

  • effective_budget_policy_id
  • run_as_user

  • run_as_service_principal

  • schedule_status

  • schedule_expression

  • max_concurrent_runs

  • format

  • tags

  • run_as_user_name
  • state

  • health

  • created_at
  • updated_at

  • expires_at

  • policy_uid
  • created_at

  • updated_at

  • oidc_policy_issuer

  • oidc_policy_audiences

  • oidc_policy_subject

  • oidc_policy_subject_claim

  • created_at
  • updated_at

  • oidc_policy_issuer

  • oidc_policy_audiences

  • oidc_policy_subject

  • oidc_policy_subject_claim

  • created_by_id

  • access_token_ttl_minutes

  • refresh_token_ttl_minutes

  • created_by_id

  • creator_username

  • confidential

  • redirect_urls

  • scopes

  • user_authorized_scopes

  • access_token_ttl_minutes

  • refresh_token_ttl_minutes

  • READ FILES

    Read data files

    SELECT

    Query data from tables and views

    USAGE

    Use the object in queries (required for schema access)

    WRITE FILES

    Write data files

    OWN

    Full ownership with all permissions

    Dashboard

    CREATE

    Create new objects within the container

    CREATE_NAMED_FUNCTION

    Create named functions

    CREATE TABLE

    Create tables within a schema

    MODIFY

    Modify existing object definitions

    MODIFY_CLASSPATH

    Modify classpath settings

    READ_METADATA

    Read object metadata and definitions

    CAN_READ

    View the directory or notebook contents

    CAN_RUN

    Execute the notebook

    CAN_EDIT

    Modify the directory or notebook

    CAN_MANAGE

    Full management rights including permission changes

    CAN_ATTACH_TO

    Attach notebooks to the cluster and use for execution

    CAN_RESTART

    Restart the cluster

    CAN_MANAGE

    Full cluster management including configuration and permissions

    CAN_VIEW

    View job configuration and run history

    CAN_MANAGE_RUN

    Trigger and cancel job runs

    CAN_MANAGE

    Modify job configuration

    IS_OWNER

    Full ownership with all rights

    CAN_VIEW

    View pipeline configuration and status

    CAN_RUN

    Trigger pipeline runs

    CAN_MANAGE

    Modify pipeline configuration

    IS_OWNER

    Full ownership with all rights

    AWS
    Azure
    GCP
    Integrating Okta with Veza
    : If you have Okta integrated with a Google Workspace application, Veza automatically creates identity relationships to Google Workspace users and groups based on email matching. Custom identity mapping is only needed for other integration combinations. See
    for details.

    Prerequisites

    Before starting the integration setup:

    • You need Workspace super admin permissions to create and assign custom admin roles

    • You need administrator access to the Google Cloud Organization

    • For Workload Identity Federation: The AWS Role ARN will be displayed in the Veza integration configuration form

    See Notes & Supported Entities for details on the Veza-Google connector and supported services.

    Authentication Methods

    Veza supports two methods for authenticating with Google Cloud:

    1. Workload Identity Federation (Recommended)

      • Eliminates the need to manage service account keys

      • Uses temporary credentials through AWS-Google Cloud trust

      • Follows Google Cloud security best practices

    2. Service Account Key Authentication (Alternative)

      • Traditional method using service account key files

      • Use only when Workload Identity Federation cannot be implemented

    Option 1: Workload Identity Federation (Recommended)

    Workload Identity Federation allows Veza to access Google Cloud resources securely without storing long-lived credentials. It uses a trust relationship between Veza's AWS role and your Google Cloud service account.

    Integration Flow:

    1. Veza's AWS role requests access to Google Cloud resources.

    2. AWS generates a signed token proving Veza's identity.

    3. Google Cloud validates the token via the established trust relationship.

    4. Google Cloud issues temporary credentials for the service account.

    5. Veza uses these temporary credentials to access authorized resources.

    To enable Workload Identity Federation, enable the required APIs for your Google Cloud project, then create a Workload Identity Pool and configure AWS as the identity provider. After configuring service account impersonation to grant access to Veza's AWS role, you can download the credential configuration file for integration setup.

    Prerequisites

    1. Retrieve Veza's AWS Role ARN:

      • When configuring a Google Cloud integration in Veza, the full Assume Role ARN is displayed at the top of the configuration form.

      • Copy this ARN, as you will need the AWS Account ID and Role Name from it to configure the integration in Google Cloud.

      • Example ARN format:

    Step 1: Create Service Account

    1. Navigate to IAM & Admin >

    2. Click Create Service Account

    3. Provide a name, ID, and description

    4. Note the service account email address

    Step 2: Enable Required APIs

    Enable the following APIs for your Google Cloud project:

    • IAM API

    • Cloud Resource Manager API

    • IAM Service Account Credentials API

    • Security Token Service API

    Step 3: Create Workload Identity Pool

    To create a pool, choose IAM & Admin > Workload Identity Pools from the Google Cloud Console. Follow these steps to add a pool for the Veza integration:

    1. In the Google Cloud console, go to New workload provider and pool

    2. Provide a pool name (e.g., veza-federation-pool)

    3. Add a description

    4. Click Continue

    Step 4: Add AWS as Identity Provider

    1. Select AWS as the provider

    2. Configure the provider details:

      • Provider name: e.g., Veza AWS Provider

      • Provider ID

    Step 5: Configure Service Account Impersonation

    1. Go to the pool details page

    2. Select Grant Access

    3. In the dialog, select Grant access using Service Account impersonation

    4. Choose the service account created for the Veza integration from the Select service account dropdown

    Step 6: Download Configuration

    1. On the provider details page, select Connected service accounts

    2. Find the integration service account and click Download

    3. Select the AWS provider and click Download config

    The configuration file will look similar to:

    Save this file for use in the Veza integration setup.

    See for detailed instructions.

    Troubleshooting

    If you encounter the error Permission 'iam.serviceAccounts.getAccessToken' denied on resource (or it may not exist), follow these steps:

    1. Enable audit logging for Workload Identity Federation:

      • Go to IAM & Admin --> Audit Logs in the Google Cloud Console

      • Find the project where you configured Workload Identity Federation

      • Enable audit logging for "Identity and Access Management (IAM) API"

    Example log entry: principalSubject: "arn:aws:sts::123456789012:assumed-role/veza-integration-role/veza-gcp-federation"

    The log explorer will show whether the correct AWS role is attempting access and help identify any misconfigurations in the identity pool settings. For more details about Workload Identity Federation audit logging, see .

    Option 2: Service Account Key Authentication (Alternative)

    This traditional method uses a service account key for authentication. While supported, it should only be used when Workload Identity Federation cannot be implemented.

    Step 1: Create Service Account

    1. Navigate to IAM & Admin > Service Accounts

    2. Click Create Service Account

    3. Provide a name, ID, and description

    4. Note the service account email address

    Step 2: Generate Service Account Key

    1. Go to

    2. Select your project

    3. Click the Keys tab

    4. Select Create New Key

    Note: If you receive a message about iam.disableServiceAccountKeyCreation being enforced, you may need to modify your organization policy to allow key creation.

    Required Configuration Steps

    Complete these steps regardless of your chosen authentication method.

    Enable Google Cloud APIs

    To discover complete authorization metadata for Google Cloud, the project containing the integration service account must have the following data APIs enabled.

    Click the Enable API links in the following list to enable each API. Ensure that the project where you created the service account is selected before enabling the API.

    You can also enable APIs for each project to discover by opening Google Cloud console API Library page, and choosing the Google Cloud project where the service account resides. Use the Search for APIs & Services find and enable APIs for the services to discover.

    Mandatory APIs

    These APIs must be enabled in your project:

    • Cloud Resource Manager API (Enable API)

      • Required for organization, project, and folder discovery

    • Cloud Identity API (Enable API)

      • Required for identity management

    • Admin SDK API ()

      • Required for workspace administration

    • Groups Settings API ()

      • Required for group management

    • Identity and Access Management (IAM) API ()

      • Required for identity and access management

      • (Optional) IAM API v2 to discover Deny Policies and use iam.denypolicies.get and iam.denypolicies.list permissions

    Optional APIs

    Enable these APIs based on the services you want to discover:

    • Service Usage API (Enable API)

    • Cloud Storage API (Enable API)

    • KMS API (Enable API)

    • BigQuery API (Enable API)

    • Compute Engine API ()

    • Cloud Run Admin API ()

    • Kubernetes Engine API ()

    • Cloud SQL Admin API ()

    • Secret Manager API ()

    • Vertex AI API ()

    Enable Domain-Wide Delegation

    1. From your Google Workspace domain's Admin console, choose Security > Access and data control > API controls

    2. Under Domain wide delegation, select Manage Domain Wide Delegation

    3. Click Add new

      Enabling domain wide delegation
    4. Enter the service account's client ID

    5. Add these OAuth scopes:

    6. Click Authorize

    Create a Custom Admin Role

    You'll need to create a custom Workspace role with the required API permissions, and assign the role to the integration service account:

    1. In Admin console, go to Admin roles. You may need to click "show more" on the home page for the option to appear:

      Creating a custom admin role
    2. Click Create new role

    3. Enter a name and description

    4. Under Admin API Privileges, enable:

      • Users > Read

      • Groups > Read

      • Organization Units > Read

    After creating the role, assign it to your service account:

    1. On the role Admins panel, choose Assign role > Assign service accounts

    2. Enter the email address of the service account

      Assign workspace role

    For more information, see Assign specific admin roles - Google Workspace Admin Help.

    Create an Organization Role

    From your Google Cloud console, create a role to bind to the Veza service account. You can create this role using the UI, or the Google Cloud CLI. Go to IAM & Admin, and select Roles from the menu on the left side.

    When creating the organization role, ensure your Organization (not an individual project) is selected:

    Confirm that the organization is active, and change if needed.

    Create a role in Google Cloud Organization with these minimum permissions:

    Important: The permissions list includes resource-specific tag binding permissions (e.g., compute.instances.listTagBindings, storage.buckets.listTagBindings) which replaced the deprecated resourcemanager.resourceTagBindings.list permission. If you previously used resourcemanager.resourceTagBindings.list, you should remove it and use the resource-specific permissions instead. These resource-specific permissions are required to discover tags attached to GCP resources.

    Bind the Role to the Service Account

    After creating the role, bind it to the integration service account:

    1. From the IAM & Admin page of the Google console, click IAM

    2. Ensure that your Organization (not an individual Project) is active in the top left corner

    3. Click + Grant Access to apply the role to the Veza service account:

      • Enter the service account email in the New Principals field

      • Under Select a Role, pick "Custom" and specify the Veza role

    This will grant the service account the required permissions for the current organization and its children (all Projects and Folders).

    Important: The base role above provides core extraction functionality. To enable discovery of specific Google Cloud services (Storage, Compute, BigQuery, KMS, Secret Manager, etc.), you must also enable APIs and add the permissions from the "Additional Service Permissions" section below based on the services you want to discover.

    Working with the Google Cloud CLI

    You can create this role using the Google Cloud CLI:

    To run gcloud commands, install the SDK, or open the CLI from the web console:

    Opening the gcloud console

    To add additional permissions later (if new functionality is required), use:

    Additional Service Permissions

    • Storage Buckets

      • Required Permissions:

        • storage.buckets.getIamPolicy

        • storage.buckets.list

        • storage.buckets.listTagBindings

      • Required API:

    • Compute

      • Required Permissions:

        • compute.instances.list

        • compute.instances.getIamPolicy

    • Key Management

      • Required Permissions:

        • cloudkms.cryptoKeyVersions.get

        • cloudkms.cryptoKeyVersions.list

    • BigQuery

      • Required Permissions:

        • bigquery.datasets.getIamPolicy

        • bigquery.datasets.get

    • Cloud Run

      • Required Permissions:

        • run.services.list

        • run.services.getIamPolicy

    • Cloud SQL

      • Required Permissions:

        • cloudsql.instances.list

        • cloudsql.instances.listTagBindings

    • Kubernetes Engine

      • Required Permissions: container.clusters.list

      • Required API:

    • Secret Manager

      • Required Permissions:

        • secretmanager.secrets.list

        • secretmanager.secrets.get

    • Vertex AI

      • Required Permissions:

        • aiplatform.locations.list

        • aiplatform.reasoningEngines.list

    Retrieve your Workspace Customer ID

    Each Google Workspace account has a customer ID, which Veza will need to authenticate. Take note of the customer ID for configuring the integration:

    1. From the Admin console Home page, go to Account settings > Profile.

    2. Under Customer ID, find your organization's unique ID.

    Save the customer ID, which you will need when configuring the connection in Veza. Note: the customer ID should start with a C, for example:C06k34uds.

    For information, see Find your customer ID - Google Workspace Admin Help.

    Adding the Integration to Veza

    1. In Veza, go to the Integrations page

    2. Click Add Integration

    3. Select Google Cloud Platform

    4. Configure the integration:

    Field
    Details

    Insight Point

    The for discovery

    Name

    A friendly name to identify this integration

    Workspace email

    Email address of the Workspace user to assume

    Customer ID

    Workspace Customer ID from Admin console (e.g., C06k34uds)

    Credentials.json

    WIF configuration file or service account key file

    Limit Google Cloud Services

    Optional

    Custom Identity Mappings
    To integrate with Microsoft Azure, you will need to create an App Registration with read-only permissions for the services to discover. You will enter the App Registration's credentials when adding the Veza integration:

    1. Register a new application for Veza

    1. From your Azure tenant profile, navigate to App Registrations > New Registration

    2. Name the new application (for example Veza Integration)

    3. Select Accounts in this organizational directory only (tenantname only - Single tenant), and click "Register" to save your changes.

    For more information, see the full instructions from Microsoft.

    2. Grant permissions for the new app

    1. With the new app registration selected, choose Manage > API Permissions and click "Add a Permission"

    2. Enable required permissions: Choose Microsoft Graph. Click "Application Permissions" and select:

      • Application.Read.All

      • AuditLog.Read.All (Required to collect last login date for users)

      • CustomSecAttributeAssignment.Read.All (Required to gather custom security attributes)

      • Device.Read.All (Required to collect Entra ID devices)

      • DeviceManagementManagedDevices.Read.All (Required to collect Intune devices)

      • DeviceManagementRBAC.Read.All (Required to collect Intune roles)

      • Directory.Read.All

      • Domain.Read.All

      • Files.Read.All

      • Group.Read.All

      • GroupMember.Read.All

      • IdentityRiskyUser.Read.All

      • Reports.Read.All (Required when connecting to SharePoint Online)

      • RoleManagement.Read.All (Required for PIM roles and groups)

      • Sites.Read.All

      • User.Read.All

    3. Add Optional permissions. Add these permissions for full visibility in Access Graph. Extraction will succeed without these of permissions, but some entities and relationships may be omitted:

      • InformationProtectionPolicy.Read.All (Required for sensitivity labels extraction)

      • Organization.Read.All

    4. Optional for Lifecycle Management:

      • LicenseAssignment.Read.All

    5. Enable "Grant Admin Consent" on the API permissions screen.

    Check that Admin Consent is granted

    The delegated User.Read permission should be granted automatically. If it isn't present, add the permission from Add a Permission > Microsoft Graph > Delegated Permissions.

    Microsoft is phasing out Directory.Read.All in favor of more granular permissions. In most cases, this permission can be replaced with more specific alternatives:

    • For organization data: Organization.Read.All

    • For role definitions and assignments: RoleManagement.Read.Directory or RoleManagement.Read.All

    • For OAuth2 permission grants: DelegatedPermissionGrant.ReadWrite.All

    Veza suggests Directory.Read.All permission because it provides the broadest compatibility. Organizations with strict permission policies can coordinate with Veza support for alternative configurations.

    3. Enable SharePoint integration (optional)

    Additional API permissions are required if you plan to connect to SharePoint Online. To grant read-only access for Veza, choose SharePoint on the app registration "Add a Permission" screen, and grant the application permissions:

    Adding additional SharePoint permissions
    • User.Read.All

    • Sites.Read.All

    The app registration will also need the Reports.Read.All Microsoft Graph permission from the previous step.

    For a complete overview and visual guide, see the official Azure documentation on configuring client application access.

    Enable audit log parsing for activity-based extraction

    Audit log extraction for SharePoint is provided as an Early Access feature. Please contact your support team to enable this configuration option.

    When audit log extraction is enabled for an Azure tenant, Veza will gather audit logs using the Office 365 Management Activity API, and only connect to SharePoint Online for a full update when changes occur.

    Enabling activity-based scheduling should help reduce lag between extractions, reducing the total time required to ingest large SharePoint environments. Please see below for the requirements and optional steps to enable:

    1. Auditing must be enabled in the Microsoft Purview compliance portal

      1. Go to https://purview.microsoft.com and sign in. Click Audit.

      2. If auditing isn't enabled, a banner will prompt to Start recording user and admin activity.

      3. Click the banner to enable auditing, and wait for the changes to propogate.

      4. Alternatively, use the :

        1. Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true

    2. The Enterprise App used by Veza must have ActivityFeed.Read permission on the Office 365 Management API:

      1. When adding permisions to , add the additional permission for the app registration: API permissions → Office 365 Management APIs → Application permissions → ActivityFeed.Read

    3. After you finish integrating the Azure tenant, enable audit log extraction under Veza Configuration → Cloud Providers. The audit log status column should update to show that extraction is enabled:

    enabling audit log extraction

    4. Generate a Client Secret

    1. From Certificates & Secrets, click "New Client Secret" and select an expiration date. Click "Add" to generate a new client secret value and ID.

    2. Copy the client secret Value, which you'll use to configure the integration within Veza.

    Mark down the client secret

    5. Get the Application and Directory unique identifier

    1. Open the Overview screen for the new application. Copy the Application (client) ID.

    2. Copy the value for Directory (tenant) ID. You will need both values when adding the provider to Veza.

    Retrieving Azure IDs

    6. Assign the Reader role for the Veza app

    For each Azure subscription to discover, you will need to add the new Veza app as a Reader. If you don't have any subscriptions (as will be the case if only integrating with Azure AD as an identity provider), this step is optional.

    Assigning the reader role
    1. From the Azure Subscription, select Access control (IAM)

    2. Click on "+ Add" -> "Add role assignment"

    3. Select "Reader" as the role

    4. Select User, Group, or Service Principal" under Assign Access To

    5. Select or search for the Veza app, and assign it the "Reader" role

    6. (Optional) Assign the "Reader and Data Access" role to discover storage accounts and keys.

    7. Save your changes

    (Optional) Assign the Cosmos DB Account Reader role

    To discover Azure CosmosDB resources, assign the Cosmos DB Account Reader role to the Veza app:

    1. Navigate to your CosmosDB account in Azure Portal

    2. Select Access control (IAM)

    3. Click "+ Add" -> "Add role assignment"

    4. Select "Cosmos DB Account Reader" as the role

    5. Choose "User, Group, or Service Principal" under Assign access to

    6. Search for and select the Veza app

    7. Save the role assignment

    This role provides the minimum required permissions to discover CosmosDB accounts, SQL role definitions, SQL role assignments, and databases. See Azure CosmosDB Support for more details.

    7. Add Key Vault Permissions (Optional)

    To connect to Azure Key Vault, a Key Vault access policy must grant the Veza app List permissions on Keys, Secrets, and Certificates. To create this policy:

    1. On the Key Vaults services page, choose the vault Veza will discover.

    2. Select Access policies.

    3. Click + Create.

    4. Select List under Key Permissions, Secret permissions, and Certificate permissions.

    5. Click Next.

    6. Search and select the Veza app as the Authorized Application.

    7. Click Next, Next, and Create to save the policy.

    Key Vault permissions for the Veza enterprise app.

    8. Add the Azure tenant to Veza

    After completing the steps above, you can add the credentials and enable discovery by navigating to Veza Integrations > Add Integration. Choose Azure as the Integration Type.

    Field
    Notes

    Insight Point

    Leave default unless using an Insight Point

    Name

    Friendly name for the account

    Tenant ID

    Azure tenant ID to discover

    Application ID

    App UUID

    Client Secret Value

    App client secret value

    Auth Certificate

    Optional certificate for connecting to SharePoint

    Veza will gather metadata for all discovered Azure AD (Entra ID) domains for the tenant. Use the Domains list to only include the specified domains in the extraction.

    Limit Services

    Additional options when adding or editing an integration enable limits on the data sources and identities that are extracted. When configuring limited services, you can select specific Microsoft 365 services to enable, including:

    • Exchange Online - Email permissions and distribution groups (see Exchange Online setup)

    • SharePoint - Document and site permissions

    • Teams - Team channels and collaboration access

    • Intune - Device management

    • And other Azure services (SQL Server, Azure VM, CosmosDB, etc.)

    Option
    Details

    Gather disabled users

    Whether to include disabled users

    Gather guest users

    Whether to parse identity metadata for Azure AD Guest users

    Gather personal sites

    Whether to include personal SharePoint sites

    Gather Group Extra Information

    Whether to collect additional group attributes (allow_external_senders, hide_from_address_lists, hide_from_outlook_clients). Requires separate API calls that significantly increase extraction time. Unchecking improves performance but loses these group attributes.

    Gather Group Owner Details

    Whether to identify and collect group ownership information. Requires additional API calls that can delay extraction. Unchecking improves performance but loses group ownership visibility.

    Data source allow/deny lists

    Indicate resources to ignore by name or *

    Azure Subscription Filtering

    You can control which Azure subscriptions are discovered by configuring subscription allow and deny lists. This is particularly useful for focusing extraction on production or specific environment subscriptions, excluding test, development, or deprecated subscriptions, and improving extraction performance by reducing API calls.

    To configure subscription filtering:

    1. When adding or editing an Azure integration, navigate to the Advanced Settings section

    2. Use the following fields:

      • Subscription ID Allow List: Comma-separated list of subscription IDs to include (if specified, only these subscriptions will be extracted)

      • Subscription ID Deny List: Comma-separated list of subscription IDs to exclude

    Examples:

    • To extract only production subscriptions: Add their IDs to the allow list

    • To exclude dev/test subscriptions: Add their IDs to the deny list

    • If both lists are provided, the allow list takes precedence

    Subscription filtering applies to all Azure services including RBAC, Storage, SQL, PostgreSQL, CosmosDB, Key Vault, AKS, and others. The filtering occurs at the subscription discovery level, ensuring consistent behavior across all extractors.

    Troubleshooting

    If the initial connection fails with the status "Insufficient privileges to complete the operation," validate that the correct API Permissions are granted, and are granted with the type application and not delegated.

    Connecting to SharePoint

    You can connect to SharePoint Online by uploading a .PFX certificate generated for app-only access, and optionally providing a password for the certificate. For information about generating the certificate, please see the Microsoft documentation. You will also need to update the permissions granted the Veza app to include User.Read.All and Sites.Read.All, as outlined in the SharePoint setup instructions.

    Custom Security Attributes

    Veza can optionally gather and show custom security attributes on Azure AD objects. The custom properties to discover must be identified by name and type in the Azure tenant configuration.

    An Azure AD Premium P1 or P2 license is required to use Custom Attributes for Azure AD. The Enterprise Application used by Veza must have the CustomSecAttributeAssignment.Read.All Microsoft Graph permission.

    To enable custom property extraction:

    1. Add or edit a new Azure cloud provider configuration.

    2. On the provider configuration modal, click + Add Custom Property.

    3. Provide the type and name of the custom property.

      1. For Azure AD, the name is the attribute name of the custom security attribute. The data type is a property of the custom security attribute (Boolean, Integer, or String).

      2. For example: (EngineeringCertification, Boolean), (MarketingLevel, String).

      3. If the custom properties are part of an , include the attribute set name as a prefix, for example <AttributeSetName>_<AttributeName>.

    4. Save the configuration. The custom attributes will be collected the next time the data source is parsed.

    Enable Privileged Identity Management (PIM)

    Veza supports Azure Privileged Identity Management (PIM) for both roles and groups. For more information about PIM support, see the Azure AD documentation.

    To enable PIM extraction:

    1. Ensure the required permissions are granted to the Veza app:

      • RoleManagement.Read.All

      • PrivilegedAccess.Read.AzureAD

      • Group.Read.All

    2. When configuring the Azure integration, set the "Extract PIM Eligibility" option to "Yes"

    3. Save the configuration. PIM assignments will be collected during the next extraction

    Enable Dynamics 365

    The Microsoft Azure integration includes optional support for Microsoft Dynamics 365. This integration allows Veza to discover connections between Azure AD Users, Groups, and Service Principals, and the permissions they can assume within Dynamics 365 environments.

    Veza supports both Dynamics 365 CRM and Dynamics 365 ERP environments:

    • Dynamics 365 CRM - Customer relationship management environments (URLs such as https://orgXXXXXXX.crm.dynamics.com)

    • Dynamics 365 ERP - Enterprise resource planning environments (URLs such as https://xxx.operations.dynamics.com)

    For full setup instructions and supported entities, see the specific integration guides.

    Enable Microsoft Intune

    The Microsoft Azure integration includes optional support for Intune, including Managed Devices and Role Definitions. Veza discovers and shows connections between Azure AD Users and Groups, and the Devices and Roles to which they are assigned in Intune.

    In order to extract Intune, Veza requires the following Application Permissions for the Microsoft Graph API:

    • DeviceManagementManagedDevices.Read.All

    • DeviceManagementRBAC.Read.All

    Enable Exchange Online

    The Microsoft Azure integration includes optional support for Exchange Online, providing visibility into email and collaboration permissions. This integration discovers mailbox permissions, distribution groups, folder-level access controls, and delegation rights.

    Important: Many organizations using Microsoft 365 require both Azure AD and Exchange Online visibility for complete access governance.

    To enable Exchange Online:

    1. Add API Permission: Grant Office 365 Exchange Online > Exchange.ManageAsApp permission to your Azure app registration

    2. Assign Role: Add the Exchange Administrator role to your Azure app

    3. Enable Service: In your Azure integration settings, go to Limit Services and select Exchange Online

    For detailed setup instructions, see the Exchange Online integration guide.

    Enable Microsoft Teams

    To discover Microsoft Teams resources, including teams, channels, and relationships to external organization users, Veza requires the additional Graph API permissions:

    • Team.ReadBasic.All

    • TeamMember.Read.All

    • Channel.ReadBasic.All

    • ChannelMember.Read.All

    • User.Read.All

    Microsoft SharePoint Online
    Notes & Supported Entities
    Veza for Azure
    iam.roles.get
    iam.roles.list
    iam.serviceAccounts.list
    iam.denypolicies.get
    iam.denypolicies.list
    resourcemanager.folders.getIamPolicy
    resourcemanager.folders.list
    resourcemanager.organizations.get
    resourcemanager.organizations.getIamPolicy
    resourcemanager.projects.getIamPolicy
    resourcemanager.projects.list
    resourcemanager.projects.get
    serviceusage.services.list
    resourcemanager.tagValues.list
    resourcemanager.tagValues.get
    resourcemanager.tagKeys.list
    resourcemanager.tagKeys.get
    compute.instances.listTagBindings
    storage.buckets.listTagBindings
    bigquery.datasets.listTagBindings
    bigquery.tables.listTagBindings
    cloudkms.keyRings.listTagBindings
    cloudkms.cryptoKeys.listTagBindings
    run.services.listTagBindings
    cloudsql.instances.listTagBindings
    secretmanager.secrets.listTagBindings
    gcloud iam roles create VEZA_ROLE_NAME --organization=YOUR_ORG_ID --permissions=\
    iam.roles.get,\
    iam.roles.list,\
    iam.serviceAccounts.list,\
    iam.denypolicies.get,\
    iam.denypolicies.list,\
    resourcemanager.folders.getIamPolicy,\
    resourcemanager.folders.list,\
    resourcemanager.organizations.get,\
    resourcemanager.organizations.getIamPolicy,\
    resourcemanager.projects.getIamPolicy,\
    resourcemanager.projects.list,\
    resourcemanager.projects.get,\
    serviceusage.services.list,\
    resourcemanager.tagValues.list,\
    resourcemanager.tagValues.get,\
    resourcemanager.tagKeys.list,\
    resourcemanager.tagKeys.get,\
    compute.instances.listTagBindings,\
    storage.buckets.listTagBindings,\
    bigquery.datasets.listTagBindings,\
    bigquery.tables.listTagBindings,\
    cloudkms.keyRings.listTagBindings,\
    cloudkms.cryptoKeys.listTagBindings,\
    run.services.listTagBindings,\
    cloudsql.instances.listTagBindings,\
    secretmanager.secrets.listTagBindings,\
    storage.buckets.getIamPolicy,\
    storage.buckets.list,\
    compute.instances.list,\
    compute.instances.getIamPolicy,\
    compute.networks.list,\
    compute.regions.list,\
    compute.subnetworks.getIamPolicy,\
    compute.subnetworks.list,\
    compute.zones.list,\
    cloudkms.locations.get,\
    cloudkms.locations.list,\
    cloudkms.cryptoKeyVersions.get,\
    cloudkms.cryptoKeyVersions.list,\
    cloudkms.cryptoKeyVersions.viewPublicKey,\
    cloudkms.cryptoKeys.getIamPolicy,\
    cloudkms.cryptoKeys.get,\
    cloudkms.cryptoKeys.list,\
    cloudkms.keyRings.get,\
    cloudkms.keyRings.list,\
    cloudkms.keyRings.getIamPolicy,\
    bigquery.datasets.getIamPolicy,\
    bigquery.datasets.get,\
    bigquery.tables.getIamPolicy,\
    bigquery.tables.get,\
    bigquery.tables.list,\
    run.services.list,\
    run.services.getIamPolicy,\
    run.locations.list,\
    cloudsql.instances.list,\
    cloudsql.users.list,\
    cloudsql.databases.list,\
    container.clusters.list,\
    secretmanager.secrets.list,\
    secretmanager.secrets.get,\
    secretmanager.secrets.getIamPolicy,\
    secretmanager.versions.list,\
    secretmanager.versions.get,\
    secretmanager.locations.get,\
    secretmanager.locations.list,\
    secretmanager.secrets.listEffectiveTags,\
    secretmanager.secrets.listTagBindings,\
    logging.logEntries.list
    gcloud iam roles update <<role_name>> --organization=<<ORG_ID>> --add-permissions=<<PERMISSIONS>>
    Policy.Read.All (Used to evaluate Conditional Access policies for service principals)
  • Policy.Read.AuthenticationMethod

  • PrivilegedAccess.Read.AzureAD (Required for PIM roles and groups)

  • RoleEligibilitySchedule.Read.Directory

  • SecurityEvents.Read.All (To fetch tenant secure scores)

  • SharePointTenantSettings.Read.All (To fetch SharePoint sharing capability settings)

  • Sites.FullControl.All (To get permissions for SharePoint site - extended functionality)

  • User-Mail.ReadWrite.All (To get read access to otherEmails property for Azure AD User)

  • User-PasswordProfile.ReadWrite.All (To get password reset-related properties; also allows reading some identifier-related properties on the user object)

  • User.EnableDisableAccount.All (To read and write the accountEnabled property on Azure AD User)

  • Auth certificate password

    Password for SharePoint certificate (optional)

    Subscription ID Allow List

    Comma-separated list of subscription IDs; if present, discovery will be limited to the listed subscriptions (optional)

    Subscription ID Deny List

    Comma-separated list of subscription IDs; if present, listed subscriptions will be excluded from discovery (optional)

    Limit Azure services extracted

    Choose individual services to discover (See below)

    Domains

    Comma-separated list of domains to discover, ignoring any others

    Dynamics 365 CRM Environments

    Optional list of Dynamics 365 CRM environments to discover, e.g. https://org50e57fbd.crm.dynamics.com.

    Dynamics 365 ERP Environments

    Optional list of Dynamics 365 ERP environments to discover, e.g. https://company.operations.dynamics.com.

    Azure Gov Cloud

    Azure Government Cloud region where the tenant is located (currently supported: "None," "US").

    Extract PIM Eligibility

    Optionally discover temporary role assumptions based on Privileged Identity Management scheduling rules.

    Custom Properties

    Indicate custom security attributes to gather

    Exchange Power Shell
    Enable SharePoint integration (optional)
    Attribute Set
    Configuring the domain list to include a single domain in extractions.
    arn:aws:iam::064704382911:role/tenant1-insight-point
  • Complete the common Google Cloud setup steps (excluding service account key creation):

    • Enable domain-wide delegation.

    • Create and assign a custom admin role.

    • Create and bind an organizational role.

    • Enable required APIs.

  • : Add a unique identifier, e.g.
    veza-aws-prod
  • AWS Account ID: Enter the AWS account ID from the role ARN shown in the Veza configuration form, e.g., 064704382911

  • Click Continue

  • Configure the attribute mapping to extract the role name from Veza's AWS ARN:

    • For Google field: enter attribute.aws_role

    • For AWS field: enter assertion.arn.extract('assumed-role/{role}/')

  • Under 'Attribute Conditions', add:

    Replace ROLE_NAME with your Veza integration role name.

    Note: The attribute mappings transform AWS role information into a format Google Cloud can use, while the condition acts as a security control by only allowing the specific Veza integration role to use this federation. This prevents any other AWS roles from accessing your Google Cloud resources.

  • Click Save

  • Under Select Principals:

    1. Choose "AWS Role" as the attribute name

    2. Enter your Veza AWS Role ARN as the attribute value.

  • Click Save and Dismiss

  • Check STS token exchange logs in Log Explorer:

    • Open Observability-->Logging

    • Set the resource to audited_resource

    • Filter for resource.labels.service="sts.googleapis.com"

    • Look for principalSubject in the logs to verify the AWS role ARN attempting federation

    Choose JSON format

  • Download and securely store the key file

  • compute.instances.listTagBindings

  • compute.networks.list

  • compute.regions.list

  • compute.subnetworks.getIamPolicy

  • compute.subnetworks.list

  • compute.zones.list

  • Required API: Compute Engine API

  • cloudkms.cryptoKeyVersions.viewPublicKey

  • cloudkms.cryptoKeys.get

  • cloudkms.cryptoKeys.list

  • cloudkms.cryptoKeys.getIamPolicy

  • cloudkms.cryptoKeys.listTagBindings

  • cloudkms.keyRings.get

  • cloudkms.keyRings.list

  • cloudkms.keyRings.getIamPolicy

  • cloudkms.keyRings.listTagBindings

  • cloudkms.locations.get

  • cloudkms.locations.list

  • Required API: KMS API

  • bigquery.datasets.listTagBindings

  • bigquery.tables.getIamPolicy

  • bigquery.tables.get

  • bigquery.tables.list

  • bigquery.tables.listTagBindings

  • Required Permissions for Activity Monitoring:

    • logging.logEntries.list

    • logging.privateLogEntries.list

  • Required API: BigQuery API

  • run.services.listTagBindings

  • run.locations.list

  • Required API: Cloud Run Admin API

  • cloudsql.users.list

  • cloudsql.databases.list

  • Required API: Cloud SQL Admin API

  • secretmanager.secrets.getIamPolicy

  • secretmanager.versions.list

  • secretmanager.versions.get

  • secretmanager.locations.get

  • secretmanager.locations.list

  • secretmanager.secrets.listEffectiveTags

  • secretmanager.secrets.listTagBindings

  • Required API: Secret Manager API

  • aiplatform.reasoningEngines.get

  • aiplatform.endpoints.list

  • aiplatform.endpoints.getIamPolicy

  • aiplatform.models.list

  • Required API: Vertex AI API

  • Identity Mapping Configurations

    Configure Identity Mappings

    Service Accounts
    Google's Workload Identity Federation Documentation
    Google's Audit Logging Documentation
    Service Accounts
    Enable API
    Enable API
    Enable API
    Enable API
    Enable API
    Enable API
    Enable API
    Enable API
    Enable API
    Cloud Storage API
    Kubernetes Engine API
    Insight Point
    extraction limits
    Creating a GCP service account
    Using logs to identify the Veza role ARN
    Creating a GCP service account
    attribute.aws_role == 'ROLE_NAME'
    {
       "universe_domain": "googleapis.com",
       "type": "external_account",
       "audience": "//iam.googleapis.com/projects/<project_id>/locations/global/workloadIdentityPools/<pool_name>/providers/<provider_name>",
       "subject_token_type": "urn:ietf:params:aws:token-type:aws4_request",
       "token_url": "https://sts.googleapis.com/v1/token",
       "credential_source": {
          "environment_id": "aws1",
          "regional_cred_verification_url": "https://sts.{region}.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15"
       }
    }
    https://www.googleapis.com/auth/admin.directory.user.readonly
    https://www.googleapis.com/auth/admin.directory.domain.readonly
    https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly
    https://www.googleapis.com/auth/apps.groups.settings

    Microsoft SharePoint Online

    Enabling Veza discovery of SharePoint resources

    Prerequisites: You must have an existing Azure integration configured before setting up SharePoint discovery.

    To enable SharePoint discovery for an Azure tenant configuration, you will need to upload an X.509 certificate for authentication. Once provided, Veza will automatically extract permissions metadata for SharePoint Online resources, and show effective permissions for AzureAD users and groups to SharePoint servers, sites, libraries, and folders.

    1. Prepare certificate

    Microsoft and Veza recommend using a valid signed certificate, but you can use a self-signed certificate if needed.

    To create a self-signed certificate and private key:

    1. Copy the script full script on this page: .

    2. Save the script with a text editor Create-SelfSignedCertificate.ps1

    3. Open PowerShell as an Administrator and invoke the script

    2. Configure the Veza Enterprise App

    If you haven't already completed the steps to , you should do so before continuing.

    1. From your Microsoft Azure Portal, go to Azure Active Directory and select "App Registrations"

    2. Select the app registration used by Veza for discovery of the Azure tenant

    3. Click on API permissions, and "Add a permission" Grant the following Application Permissions:

    Required Permissions Checklist:

    1. Go to the app registration's Certificates & Secrets, click "Upload certificate," and provide the public key from the key pair from step 1.

    2. Verify that the certificate has been uploaded by selecting "Manifest" and checking the keyCredentials property.

    3. Configure Veza

    You can upload the required certificate when to Veza, or by navigating to the Integrations page and editing an existing Azure tenant. Upload the certificate pair from the first step.

    Enabling Last Activity Date for SharePoint Sites

    To enable parsing of Last Activity Date as a searchable property for SharePoint sites, you will need to disable :

    1. From the Office 365 admin center, go to Settings > Org Settings > Services

    2. Select Reports

    3. Clear the checkbox for Display concealed user, group, and site names in all reports, and save your changes

    Note: Last activity stats are only obtainable for top-level sites (not sub-sites).

    Core SharePoint Entities

    The SharePoint integration discovers and analyzes the following core entities within your SharePoint environment, creating relationships between resources, permissions, and identities:

    SharePoint Sites

    Individual SharePoint sites including both Communication sites and Team sites, with activity metrics and permission tracking.

    Attribute
    Notes
    SharePoint Users

    Individual user accounts with access to SharePoint resources, including both internal users and external guests with activity tracking.

    Attribute
    Notes
    SharePoint Libraries

    Document libraries and other content repositories within SharePoint sites, with permission inheritance and content management features.

    Attribute
    Notes
    SharePoint Folders

    Organizational folders within SharePoint libraries, with hierarchical structure and sharing capabilities.

    Attribute
    Notes
    SharePoint Lists

    SharePoint lists for structured data, task management, and custom applications within sites.

    Attribute
    Notes
    SharePoint Groups

    SharePoint-specific security groups for managing permissions to sites, libraries, and lists.

    Attribute
    Notes
    SharePoint Site Memberships

    Administrative relationship nodes that connect Azure AD users to special site-level roles such as Site Administrator or Guest access.

    Attribute
    Notes

    The entities listed above reflect the limitations of read-only SharePoint API and Microsoft Graph API access. Additional entities are supported with optional permissions described in the section below.

    Cross-Service Identity Correlation

    When deployed alongside an , Veza automatically correlates SharePoint users and groups with their corresponding Azure AD identities. This correlation enables access analysis across both platforms.

    Cross-service correlation requires both Azure and SharePoint integrations to be configured and running. The correlation happens automatically when both integrations are present.

    SharePoint Permissions

    SharePoint uses a complex permission system that combines role-based access control with granular permissions. Veza discovers and analyzes all permission types to provide visibility into access rights.

    Permission Categories:

    Standard Access Levels:

    • read - Read-only access to content

    • write - Ability to modify existing content

    • owner - Full control including permission management

    Permission Inheritance:

    • inherited_read - Read permissions inherited from parent

    • inherited_write - Write permissions inherited from parent

    • inherited_owner - Owner permissions inherited from parent

    SharePoint-Specific Permissions:

    SharePoint provides 34 granular permissions organized into functional categories:

    • View List Items - View items in lists and document libraries

    • Add List Items - Add items to lists and document libraries

    • Edit List Items - Edit items in lists and document libraries

    Azure Enterprise Application Permissions:

    When integrated with Azure AD, SharePoint also supports enterprise application permissions for sites and files:

    • Office365SharePointOnline.Sites.Read.All - Read site collections and sites

    • Office365SharePointOnline.Sites.ReadWrite.All - Read and write site collections and sites

    • Office365SharePointOnline.Sites.FullControl.All - Full control of site collections and sites

    Permission Inheritance Patterns:

    SharePoint permissions follow a hierarchical inheritance model. Users can have unique permissions at any level, breaking inheritance from parent objects.

    SharePoint Permission Inheritance Hierarchy
    1. Tenant Level - SharePoint Online tenant settings

    2. Site Collection Level - Individual sites inherit from tenant

    Term Store Entities

    When the Term Store permissions are configured (see ), Veza discovers SharePoint Term Store administrative access and creates the following graph entities and relationships:

    Term Store

    Centralized taxonomy management resource that allows administrators to create, organize, and manage metadata across SharePoint sites through terms, term sets, and term groups.

    Attribute
    Notes
    Term Store Membership

    Administrative relationship nodes that connect Azure AD principals (users and groups) to Term Store administrator roles, representing who has administrative control over the taxonomy management system.

    Attribute
    Notes

    Expanded Functionality

    When granted write-level or admin-level permissions, Veza can gather additional entities and properties. The following table identifies our expanded support and the required permissions:

    Entity / Property
    API Permissions

    Additional Entities

    SharePoint Roles

    Role definitions that define sets of granular permissions for SharePoint sites, lists, and libraries.

    Attribute
    Notes
    SharePoint Role Assignments

    Connections between principals (users/groups) and roles on specific SharePoint resources, enabling granular permission tracking.

    Attribute
    Notes
    SharePoint Grouped Resources

    Performance optimization entities that group multiple resources sharing identical permission patterns, reducing graph complexity for large SharePoint environments.

    Attribute
    Notes

    Enabling List and Site Permissions will create distinct Permission nodes connecting principal-type entities such as users to SharePoint Site and List entities.

    Sharing Capability is a property on the tenant-level SharePoint Online Server entity indicating the maximum-permitted sharing settings for sharable objects within the tenant. The value can be:

    Value
    Description

    Sharing capability is not currently provided for child Sites and Libraries due to Microsoft API limitations.

    Term Store Permissions enable Veza to discover SharePoint Term Store administrators and their access relationships. Term Store is a centralized taxonomy management system that allows administrators to create, organize, and manage metadata across SharePoint sites through terms (categories, tags, or keywords) grouped into term sets.

    Veza discovers Term Store administrative access for:

    • Azure AD Users

    • Microsoft 365 Groups (Azure AD Groups)

    Only Term Store and corresponding admins are supported (term sets are not included). Security groups are not supported due to SharePoint API limitations.

    Additional Setup Requirements for Term Store:

    Prerequisites: You must have an existing configured before proceeding with Term Store setup.

    Term Store discovery requires additional configuration beyond the standard Azure app registration.

    Step 1: Configure SharePoint App Permissions

    Follow these steps to register your existing Azure app with SharePoint and grant it the additional taxonomy permissions needed for Term Store discovery:

    1. Navigate to https://<your-organization>-admin.sharepoint.com/_layouts/15/appinv.aspx

    2. In the App Id field, paste the Client ID from the app registration you're currently using for SharePoint

    3. Click Lookup to auto-populate the form fields

    4. If the App Domain and Redirect URL fields are empty, enter:

    After trusting the app, you should be redirected to the SharePoint home page, indicating successful registration.

    Step 2: Configure PowerShell Settings

    This step is required to prevent "Token Type Not Allowed" errors. SharePoint has the DisableCustomAppAuthentication property set to True by default, which blocks the authentication method needed for Term Store access.

    The commands below must be run on a Windows machine. PowerShell on Linux or macOS is not fully compatible and does not support the required commands.

    PowerShell Configuration Steps:

    Detailed PowerShell Commands
    1. Install the SharePoint Online Management Shell module:

    2. Connect to your SharePoint Online tenant:

      You will be prompted to enter credentials. Use an account with SharePoint Administrator permissions.

    Additional Resources:

    Important: Term Store support is currently available but depends on Azure Access Control service, which Microsoft will retire on April 2, 2026. Future availability depends on Microsoft providing alternative authentication methods.

    When prompted, enter a password for encryption.
  • Use the .PFX file to configure the Azure integration in Veza and .CER to configure the App Registration in Azure (see step 2.4).

  • For Linux, macOS, or other platforms, you can use OpenSSL to generate certificates. Refer to OpenSSL certificate generation for detailed instructions.

  • is_personal

    Boolean indicating if this is a personal OneDrive site

    inherits_parent_permissions

    Boolean indicating permission inheritance from parent

    active_file_count

    Number of files with recent activity

    file_count

    Total number of files in the site

    page_view_count

    Number of page views for analytics

    visited_page_count

    Number of unique pages visited

    storage_used

    Storage space consumed in bytes

    storage_allocated

    Total storage allocation in bytes

    has_stats

    Boolean indicating if activity statistics are available

    parent_site_id

    Identifier of parent site for hierarchy

    is_deleted

    Boolean indicating if site is in recycle bin

    last_activity_date

    Timestamp of most recent site activity

    owner_display_name

    Display name of the site owner

    created_at

    Site creation timestamp

    azure_tenant_id

    Azure tenant identifier for cross-service correlation

    guest

    Boolean indicating guest access permissions

    is_site_admin

    Boolean indicating site administrator privileges

    user_principal_name

    Azure AD user principal name for identity correlation

    is_deleted

    Boolean indicating if user account is deleted

    deleted_date

    Timestamp when user was deleted

    last_activity_date

    Timestamp of most recent SharePoint activity

    viewed_or_edited_file_count

    Number of files viewed or edited by user

    synced_file_count

    Number of files synchronized to local devices

    shared_internally_file_count

    Number of files shared within the organization

    shared_externally_file_count

    Number of files shared with external users

    visited_page_count

    Number of SharePoint pages visited

    assigned_products

    String listing Microsoft products assigned to user

    has_stats

    Boolean indicating if user activity statistics are available

    created_at

    Account creation timestamp

    description

    User description or role information

    web_url

    URL to user's profile or personal site

    quota

    Storage quota assigned to user

    quota

    Storage quota allocated to the library

    inherits_parent_permissions

    Boolean indicating permission inheritance from parent site

    created_at

    Library creation timestamp

    depth

    Folder depth level in hierarchy

    scope

    Permission scope (inherited, unique, etc.)

    library_type

    Type of containing library

    is_shared

    Boolean indicating if folder has sharing links

    sharing_links

    List of active sharing links and permissions

    web_url

    Direct URL to access the folder

    inherits_parent_permissions

    Boolean indicating permission inheritance

    created_at

    Folder creation timestamp

    description

    List description and purpose

    inherits_parent_permissions

    Boolean indicating permission inheritance from parent site

    created_at

    List creation timestamp

    web_url

    URL to group management page

    quota

    Storage quota associated with group

    Site Memberships represent elevated permissions that go beyond standard SharePoint group memberships:

    • Admin Memberships: Connect users who have site administrator privileges

    • Guest Memberships: Connect users who have guest access to the site

    These memberships are automatically created when users are granted site admin privileges or guest access through SharePoint's administrative interfaces.

    direct_read - Direct read permissions assigned at resource level
  • direct_write - Direct write permissions assigned at resource level

  • direct_owner - Direct owner permissions assigned at resource level

  • Delete List Items - Delete items from lists and document libraries

  • Approve Items - Approve minor versions of list items or documents

  • Open Items - View items in lists, documents in document libraries, view Web discussion comments

  • View Versions - View past versions of list items or documents

  • Delete Versions - Delete past versions of list items or documents

  • Cancel Checkout - Discard or check in documents checked out to other users

  • Manage Personal Views - Create, change, and delete personal views of lists

  • Manage Lists - Create and delete lists, add or remove columns, and add or remove public views

  • View Form Pages - View forms, views, and application pages; enumerate lists

    • Open - Allows users to open sites, lists, or folders to access items

    • View Pages - View pages in sites

    • Add And Customize Pages - Add, change, or delete HTML or Web Part pages

    • Apply Theme And Border - Apply themes or borders to entire sites

    • Apply Style Sheets - Apply style sheets to entire sites

    • View Usage Data - View reports on site usage

    • Create SSC Site - Create subsites (Self-Service Site Creation)

    • Manage Subwebs - Create subsites and manage subsite permissions

    • Create Groups - Create SharePoint groups

    • Manage Permissions - Create and change permission levels and assign permissions

    • Browse Directories - Enumerate files and folders in sites using SharePoint Designer

    • Browse User Info - View information about users of sites

    • Add Del Private Web Parts - Add or delete personal Web Parts on Web Part pages

    • Update Personal Web Parts - Update Web Parts to display personalized information

    • Manage Web - Grants ability to perform site administration tasks and manage content

    • Use Remote APIs - Use SOAP, Web DAV, or SharePoint Designer interfaces

    • Manage Alerts - Manage alerts for all users of sites

    • Create Alerts - Create email alerts

    • Edit My User Info - Allows user to change their own user information

    • Enumerate Permissions - Enumerate permissions for sites, lists, folders, documents, or list items

    • Use Client Integration - Use features that launch client applications

    Office365SharePointOnline.Sites.Manage.All - Manage site collections and sites

  • MicrosoftGraph.Sites.Read.All - Read site collections via Microsoft Graph

  • MicrosoftGraph.Sites.ReadWrite.All - Read and write sites via Microsoft Graph

  • MicrosoftGraph.Sites.FullControl.All - Full control of sites via Microsoft Graph

  • MicrosoftGraph.Sites.Manage.All - Manage sites via Microsoft Graph

  • AllSites.FullControl - Full control of all sites

  • AllSites.Manage - Manage all sites

  • AllSites.Write - Write to all sites

  • AllSites.Read - Read all sites

  • Sites.FullControl.All - Full control of all sites (shorter form)

  • Sites.ReadWrite.All - Read and write all sites (shorter form)

  • Sites.Manage.All - Manage all sites (shorter form)

  • Sites.Read.All - Read all sites (shorter form)

    • Office365SharePointOnline.Files.ReadWrite.All - Read and write all files

    • Office365SharePointOnline.Files.ReadWrite.AppFolder - Read and write app folder files

    • Office365SharePointOnline.Files.Read.All - Read all files

    • Office365SharePointOnline.Files.Read - Read user files

    • Office365SharePointOnline.MyFiles.Write - Write to user's files

    • Office365SharePointOnline.MyFiles.Read - Read user's files

    • MicrosoftGraph.Files.Read.All - Read all files via Microsoft Graph

    • MicrosoftGraph.Files.ReadWrite.All - Read and write all files via Microsoft Graph

    • MicrosoftGraph.Files.ReadWrite.AppFolder - Read and write app folder files via Microsoft Graph

    • MicrosoftGraph.Files.ReadWrite.Selected - Read and write selected files via Microsoft Graph

    • MicrosoftGraph.Files.Read.Selected - Read selected files via Microsoft Graph

    • MicrosoftGraph.Files.ReadWrite - Read and write user files via Microsoft Graph

    • MicrosoftGraph.Files.Read - Read user files via Microsoft Graph

    • Files.ReadWrite.All - Read and write all files (shorter form)

    • Files.Read.All - Read all files (shorter form)

    • Files.ReadWrite.AppFolder - Read and write app folder files (shorter form)

    • Files.ReadWrite.Selected - Read and write selected files (shorter form)

    • Files.Read.Selected - Read selected files (shorter form)

    • Files.ReadWrite - Read and write user files (shorter form)

    • Files.Read - Read user files (shorter form)

    Site Level - Subsites inherit from parent sites
  • Library/List Level - Content containers inherit from sites

  • Item Level - Individual files/items inherit from containers

  • Key Points:

    • Permissions cascade down the hierarchy by default

    • Breaking inheritance creates unique permissions at that level

    • Unique permissions override inherited permissions

    • Changes to parent permissions don't affect objects with broken inheritance

    language_tags

    List of supported languages for the term store

    Term Store identifier this membership applies to

    permissions

    Administrative role (currently "Administrator", may include additional roles in the future)

    permissions

    List of granular SharePoint permissions granted by role

    Common SharePoint roles include:

    • Full Control - Complete administrative access

    • Design - Create lists, libraries, and pages

    • Edit - Add, edit, and delete items and documents

    • Contribute - Add, edit, and delete items

    • Read - View-only access to sites and content

    role_name

    Name of the role being assigned

    Role assignments connect:

    • SharePoint Users → Roles → Resources (Sites, Libraries, Lists, Folders)

    • SharePoint Groups → Roles → Resources

    • Azure AD Users → Roles → Resources (via cross-service connection)

    • Azure AD Groups → Roles → Resources (via cross-service connection)

    SharePoint site identifier

    Grouped Resources improve performance by:

    • Consolidating identical permission patterns across multiple resources

    • Reducing the number of direct permission edges in large environments

    • Maintaining accurate permission representation while optimizing query performance

    When multiple SharePoint resources (folders, libraries, etc.) have identical permission assignments, Veza creates a Grouped Resource node that represents the shared permission pattern, then connects individual resources to this grouped node rather than creating duplicate permission edges.

  • App Domain: localhost

  • Redirect URL: https://localhost/

  • These values are not used for Entra ID Apps but are required fields.

  • In the Permission Request XML field, paste the complete XML below to grant necessary permissions:

  • Click Create

  • When prompted, click Trust It to grant the permissions.

  • Disable the custom app authentication restriction:

  • Verify the setting was applied:

  • The value should be False, confirming that custom app authentication is now enabled.

    web_url

    Direct URL to access the SharePoint site

    description

    Site description and purpose

    root

    member_login_name

    SharePoint-specific login identifier

    email

    User email address for contact and identification

    is_guest

    library_type

    Type of library (Document, Picture, etc.)

    web_url

    Direct URL to access the library

    description

    parent_id

    Identifier of parent folder for hierarchy

    library_id

    Identifier of containing library

    parent_path

    hidden

    Boolean indicating if list is hidden from site navigation

    template

    SharePoint list template type (Custom, Tasks, Calendar, etc.)

    web_url

    global_members

    List of user login names who are members of this group

    created_at

    Group creation timestamp

    description

    name

    Role type: "Admin" for site administrators, "Guest" for guest users

    global_members

    List of user login names with this membership type

    site_id

    name

    Term Store display name

    id

    Unique Term Store identifier

    default_language_tag

    principal_id

    Azure AD User or Group identifier

    principal_type

    "AzureADUser" or "AzureADGroup"

    Sharing Capability

    Microsoft Graph: SharePointTenantSettings.Read.All

    SharePoint Site Permissions

    Microsoft Graph: Sites.FullControl.All SharePoint: Sites.FullControl.All

    SharePoint List Permissions

    SharePoint: Sites.FullControl.All

    SharePoint Role Assignments

    SharePoint: Sites.FullControl.All

    Term Store Permissions

    SharePoint: http://sharepoint/taxonomy (Read)

    name

    Role name (e.g., "Full Control", "Design", "Edit")

    description

    Description of the role's purpose and scope

    hidden

    permissions

    List of specific permissions granted by this assignment

    sharepoint_global_user_id

    SharePoint user login name for cross-service correlation

    principal_type

    resource_type

    Type of resources being grouped (Site, Library, etc.)

    tenant_id

    Azure tenant identifier

    disabled

    Users can share only with people in the organization.

    externalUserSharingOnly

    Users can share with new and existing guests.

    externalUserAndGuestSharing

    Users can share with anyone, with no sign-in requirement.

    existingExternalUserSharingOnly

    Users can share with existing guests in the organization directory.

    Setting up an Azure AD app for app-only access
    configure a Microsoft Azure integration
    adding a new Azure account
    hidden user details in Office 365 Reports
    Expanded Functionality
    Azure integration
    Expanded Functionality
    Azure integration
    SharePoint add-in permissions
    Register SharePoint add-ins using AppRegNew.aspx
    .\Create-SelfSignedCertificate.ps1 -CommonName "MyCompanyName" -StartDate 2017-10-01 -EndDate 2019-10-01

    Boolean indicating if this is the root site collection

    Boolean indicating external guest user status

    Library description and purpose

    Full path to parent folder

    Direct URL to access the list

    Group description and purpose

    Identifier of the site this membership applies to

    Default language for taxonomy terms

    resource_id

    Boolean indicating if role is hidden from UI

    Type of principal: User, SecurityGroup, or SharePointGroup

    site_id

    <AppPermissionRequests AllowAppOnlyPolicy="true">
        <AppPermissionRequest Scope="http://sharepoint/taxonomy" Right="Read" />
        <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read" />
        <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="Read" />
    </AppPermissionRequests>
    Set-SPOTenant -DisableCustomAppAuthentication $false
    Get-SPOTenant | Select-Object DisableCustomAppAuthentication
    Install-Module -Name Microsoft.Online.SharePoint.PowerShell
    $orgName="your-organization-name"  # Replace with your organization name
    Connect-SPOService -Url https://$orgName-admin.sharepoint.com

    Notes & Supported Entities

    Supported entity types and more information about the Veza-AWS connector.

    Veza integrates with AWS to parse service and resource metadata using native API calls. You can enable a read-only connection via an IAM user, an assumed IAM role, or using an Insight Point running on EC2.

    Veza creates entities in the data catalog to represent discovered resources and identities, including tags and attributes applied within AWS. To gather granular metadata for database services such as RDS, Veza requires additional permissions to connect as a local user and execute queries when data APIs aren't available.

    Veza analyzes cross-service connections between discovered entities, calculates effective permissions, and identifies authorization paths, including the cumulative effects of permission boundaries, service control policies, group memberships, and hierarchical policy statements. These relationships can be searched in the Access Graph, or audited using Workflows or the Query Builder.

    To show external identities with access to AWS resources, Veza supports identity federation, displaying permissions for external users and groups from providers such as Okta, Azure AD, and custom identity providers.

    Supported Services and Entities

    Note that by default, all regions and services are extracted. Allow/deny lists can contain string lists (including wildcards) of resources names to ignore.

    Amazon Cognito

    Supported entities:

    • Cognito Service

    • Cognito Identity Pool

    Amazon EC2

    Supported entities:

    • EC2 Service

    • EC2 VPC

    • EC2 Security Group

    • EC2 Instance

    As of Veza 2021.2.1, EC2 discovery is supported for up to 1000 instances per AWS account.

    Amazon Elastic Container Registry (ECR)

    Supported entities:

    • ECR Service

    • ECR Private Registry

    • ECR Private Repository

    • ECR Public Registry

    Amazon Elastic Kubernetes Service (EKS)

    Supported entities:

    • EKS Service

    • EKS Cluster

    Amazon Elastic MapReduce (EMR)

    Supported entities:

    • EMR Service

    • EMR Cluster

    • EMR Node

    • EMR Studio

    The EMR service to discover must use EC2 (EMR on EKS isn't yet supported). See for more details.

    Amazon Redshift

    Supported entities:

    • Redshift Cluster

    • Redshift Database

    • Redshift Schema

    • Redshift Effective Permission

    The default policy only includes API permissions to get authorization metadata for Redshift clusters. To connect to Redshift databases for full discovery, a with the redshift:GetClusterCredentials IAM privilege must be available.

    Amazon S3

    Supported entities:

    • S3 Service

    • S3 Bucket

    • S3 Bucket Policies

    • S3 Bucket Policy Statement

    As of release 2022.2.1, effective permissions to S3 now consider object-level permissions granted via IAM policy. Access Points are not yet supported. S3 bucket objects can have individual Access Control Lists. Since Veza doesn't parse individual bucket objects, object-level permissions may not be authoritative for buckets allowing ACLs.

    AWS DynamoDB

    Supported entities:

    • DynamoDB Service

    • DynamoDB Table

    • DynamoDB Secondary Index

    • DynamoDB Stream

    See for more information.

    AWS IAM

    Identity and Access Management

    Supported entities:

    • AWS Accounts

    • IAM Groups

    • IAM Users

    • IAM Roles

    AWS IAM Policy entities have the attribute Permissions Boundary Usage Count, enabling queries on unused policies with no relationship to any principals.

    IAM Roles Anywhere

    Supported entities:

    • Trust Anchors

    • Certificate Revocation Lists (CRLs)

    • Profiles

    IAM Roles Anywhere enables workloads running outside of AWS to obtain temporary AWS credentials using X.509 certificate-based authentication instead of long-term access keys. Veza discovers the trust relationships and maps certificates to their associated permission sets.

    AWS Certificate Manager

    Supported entities:

    • X.509 Certificates

    • Certificate metadata and tags

    AWS Certificate Manager support enables discovery and tracking of X.509 certificates used for authentication across AWS services, including certificates used with IAM Roles Anywhere.

    AWS IAM Identity Center

    Supported entities:

    • Identity Center Service

    • Identity Center User

    • Identity Center Group

    • Identity Center Permission Set

    Identity Center is a service only available in the management account of an organization. To discover Identity Center entities, the region configured for the AWS account integration must match the region IAM Identity Center is enabled in. For example, if the IAM Identity Center is enabled in us-east-1, the AWS Integration must have the us-east-1 region defined. Otherwise, AWS IAM Identity Center will not appear as a Data Source.

    AWS Key Management Service (KMS)

    Supported entities:

    • KMS Service

    • KMS Customer Managed Key (CMK)

    • KMS Policy

    • KMS Policy Statements

    In order for a CMK to be discoverable, its Key Policy must have IAM permissions enabled, or grant the Veza AWS IAM principal directly.

    AWS Lambda

    Supported entities:

    • Lambda Service

    • Lambda Function

    AWS Organizations and Organizational Units

    Supported entities:

    • AWS Organization Unit

    • AWS Organization Account

    You can track org unit accounts not yet configured for discovery using the assessments AWS Accounts that are part of an organization but not managed.

    AWS RDS

    Supported entities:

    • RDS Service

    • RDS Instance

    • RDS Cluster

    • RDS Cluster Instance

    RDS MySQL

    Supported entities:

    • RDS MySQL Database

    • RDS MySQL Function

    • RDS MySQL Instance

    • RDS MySQL Local User

    RDS PostgreSQL

    Supported entities:

    • PostgreSQL User

    • PostgreSQL Database

    • PostgreSQL Group

    • PostgreSQL Instance

    To get database-level metadata, users, and privileges, Veza will need to execute database queries as a local Postgres or MySQL user.

    Amazon DocumentDB

    Amazon DocumentDB is a fully managed document database service designed for MongoDB compatibility. Veza provides two-tier discovery: cluster metadata via AWS APIs and optional database-level extraction (users, roles, permissions) using MongoDB protocol.

    Supported entities:

    Cluster-level (always discovered):

    • DocumentDB Cluster (regular and elastic)

    Database-level (requires credentials):

    • DocumentDB Database

    • DocumentDB User

    • DocumentDB Role

    Required IAM Permissions (Least Privilege):

    See for complete setup instructions, including database user configuration for granular permission discovery.

    Amazon Neptune

    Supported entities:

    • Neptune Service

    • Neptune Global Database

    • Neptune Cluster

    • Neptune Instance

    Amazon Neptune is AWS's managed graph database service designed for applications that work with highly connected datasets. Neptune supports both property graphs (using Gremlin and openCypher query languages) and RDF graphs (using SPARQL).

    Neptune uses a hierarchical structure where Global Databases span multiple AWS regions for global applications, containing primary and secondary Clusters. Each Cluster consists of multiple Instances (one primary writer and up to 15 read replicas) that share underlying managed storage. Global Databases enable cross-region replication with typically sub-second latency.

    Veza extracts Neptune resources and their hierarchical relationships, including the connections between Global Databases, Clusters, and Instances, as well as IAM relationships that govern access to Neptune resources. This provides visibility into both the graph database structure and the authorization paths that control access to your graph data.

    AWS Secrets Manager

    Supported entities:

    • Secrets Manager Service

    • Secrets Manager Secret

    AWS Systems Manager Parameter Store

    AWS Systems Manager Parameter Store provides secure, hierarchical storage for configuration data management and secrets. Parameters support organization using forward-slash delimited paths (like /MyApp/Prod/Database/Password) that enable structured querying and granular access control based on path hierarchy. Veza extracts parameters from each AWS region specified in the integration configuration, as Parameter Store data is region-specific and stored separately in each region.

    Veza extracts parameter metadata including type, tier, version, description, expiration policies, and modification timestamps. SecureString parameters are automatically linked to their KMS encryption keys, enabling visibility into the encryption chain and key access permissions. Veza analyzes IAM permission relationships to show which principals can access, modify, or delete parameters.

    Systems Manager Service

    The AWS Systems Manager service entity represents the centralized management hub for infrastructure operations, enabling secure remote management, automation, and compliance across AWS resources without requiring direct server access.

    Attribute Name
    Description

    Systems Manager Parameter

    A Parameter Store parameter represents a stored piece of configuration data or secret (such as passwords, database strings, AMI IDs, or license codes) that can be referenced by applications and AWS services, supporting versioning and hierarchical organization.

    Attribute Name
    Description

    Parameter Types:

    • String - Plain text configuration values such as application URLs, AMI IDs, and license codes that don't require encryption

    • StringList - Comma-separated lists of values for storing multiple related configuration items that can be processed as a list

    • SecureString - Encrypted parameters using AWS KMS for sensitive data like passwords and secrets that require access control and audit trails

    Required IAM Permissions:

    AWS Bedrock

    AWS Bedrock is a fully managed service that offers a choice of high-performing foundation models from leading AI companies through a single API, along with capabilities to build generative AI applications with security, privacy, and responsible AI practices.

    Supported entities:

    • Bedrock Service

    • Bedrock Agent

    • Bedrock Agent Alias

    • Bedrock Agent Version

    Bedrock Service

    The AWS Bedrock service entity represents the main service instance providing access to foundation models and AI capabilities.

    Attribute Name
    Description

    Bedrock Agent

    AI agents that can reason through problems and execute multi-step tasks using foundation models.

    Attribute Name
    Description

    Bedrock Agent Alias

    Named references to specific agent versions that enable routing requests to particular agent configurations.

    Attribute Name
    Description

    Bedrock Agent Version

    Immutable snapshots of agent configurations enabling version control and rollback capabilities.

    Attribute Name
    Description

    Bedrock Action Group

    Defines the actions an agent can perform by connecting to APIs or functions.

    Attribute Name
    Description

    Bedrock Foundation Model

    Pre-trained models from AI providers available through the Bedrock API.

    Attribute Name
    Description

    Bedrock Custom Model

    Fine-tuned versions of foundation models customized with organization-specific data.

    Attribute Name
    Description

    Bedrock Imported Model

    Third-party models imported into Bedrock from external sources.

    Attribute Name
    Description

    Bedrock Knowledge Base

    Vector databases for retrieval-augmented generation (RAG) applications.

    Attribute Name
    Description

    Bedrock Knowledge Base Data Source

    Data sources that populate knowledge bases with content for retrieval operations.

    Attribute Name
    Description

    Bedrock Prompt

    Reusable prompt templates for consistent model interactions.

    Attribute Name
    Description

    Bedrock Prompt Version

    Versioned instances of prompts enabling change tracking and rollback.

    Attribute Name
    Description

    Bedrock Prompt Router

    Intelligent routing system that directs requests to optimal models based on criteria.

    Attribute Name
    Description

    Bedrock Guardrail

    Safety controls that filter and moderate model inputs and outputs.

    Attribute Name
    Description

    Bedrock Guardrail Version

    Versioned guardrail configurations for tracking policy changes over time.

    Attribute Name
    Description

    Required IAM Permissions:

    Search for AWS Entities

    The Access Graph includes some additional support for searching AWS entities:

    • To see the native AWS permissions for an Effective Permission, select an ungrouped EP node and choose Explain Effective Permissions on the actions sidebar

    • To view an AWS IAM policy, select a Policy node and choose Show JSON Document from the actions sidebar

    • To understand how one IAM role can assume another role, select an AWS IAM Role and choose Explain Assume Role from the actions sidebar. See for details.

    API Rate Limits

    Following best practices for AWS client applications, Veza implements an exponential backoff mechanism for requests (see the AWS documentation on for more information). This should prevent hitting endpoint rate limits, and provide ample room for other services to consume the same APIs.

    By default, exponential backoff is configured for up to 10 attempts, with a max wait of 300 seconds.

    Adding Accounts with Veza APIs

    You can use the to configure AWS connectors programmatically.

    For example:

    Note that by default, all regions and services are extracted. Allow/deny lists can contain string lists (including wildcards) of resources names to ignore.

    Conditions in Policy Statements

    Veza does not currently support all AWS policy conditions operators and keys. For more details on IAM policy condition operators, see the .

    The unsupported conditions include ones that are difficult to parse or meaningless in Veza's graph representation, such as DateGreaterThan:aws:CurrentTime. However, unsupported conditions CAN have a meaningful impact on the actual access granted to principals shown in Graph.

    When Veza detects an unsupported condition, the boolean property Unsupported Condition is set to True for the corresponding Policy Statement and Permission nodes. This property can be used in an attribute filter to display query results that are or are not impacted by unsupported conditions.

    Veza supports the following condition operators, grouped by type:

    • StringEquals

    • StringNotEquals

    • StringEqualsIgnoreCase

    ECR Public Repository
    EMR Notebook Execution
    Redshift Local User
  • Redshift Database Instance

  • Redshift Group

  • Redshift Table

  • Redshift Service

  • IAM Policies
  • IAM Permissions

  • IAM Identity Providers (SAML and OIDC)

  • KMS Permissions
  • KMS Customer Managed Key Permissions

  • RDS MySQL Local User Instance
  • RDS MySQL Procedure

  • RDS MySQL Role

  • RDS MySQL Role Instance

  • RDS MySQL Service

  • RDS MySQL Table

  • RDS MySQL Trigger

  • PostgreSQL Schema
  • PostgreSQL Table

  • PostgreSQL Procedure

  • PostgreSQL Trigger

  • PostgreSQL Permissions

  • Tags

    AWS resource tags applied to the parameter

    Expiration Policy

    Whether parameter has expiration policy configured

    Expiration Date

    Date when parameter expires (if applicable)

    Last Modified

    Timestamp when parameter was last updated

    Bedrock Action Group
  • Bedrock Foundation Model

  • Bedrock Custom Model

  • Bedrock Imported Model

  • Bedrock Knowledge Base

  • Bedrock Knowledge Base Data Source

  • Bedrock Prompt

  • Bedrock Prompt Version

  • Bedrock Prompt Router

  • Bedrock Guardrail

  • Bedrock Guardrail Version

  • Updated At

    Agent last modification timestamp

    Latest Agent Version

    Most recent version of the agent

    Updated At

    Agent alias last modification timestamp

    Status

    Model operational status

    Owner Account ID

    Account ID of the model owner

    Fallback Model ARN

    ARN of the fallback model

    Description

    Prompt router description text

    Created At

    Prompt router creation timestamp

    Updated At

    Prompt router last modification timestamp

    AWS IAM Role relationships may be nested (a role assignment can imply membership in another). When this is the case, an icon will indicate that the node has a hierarchical relationship. Choose Show Hierarchy to open a detailed view. Entities will have a hierarchical_level to enable search on nested nodes.
  • When multiple AWS accounts are connected, entities with the same name (such as built-in IAM roles) are numbered for differentiation. Toggle the AWS Account Label search option to add additional color-coding by account name.

  • You can highlight authorization paths available via role assumption using the Entities of Interest graph search option.

  • StringNotEqualsIgnoreCase
  • StringEqualsIfExists

  • StringLike

  • StringNotLike

  • StringLikeIfExists

  • ArnEquals

  • ArnNotEquals

  • ArnLike

  • ArnNotLike

  • ForAllValues:StringEquals

  • ForAllValues:StringLike

  • ForAnyValue:StringEquals

  • ForAnyValue:StringLike

  • Bool

  • NumericGreaterThan

  • Account ID

    AWS account identifier

    Account Name

    AWS account name

    Region

    AWS region where the service is located

    Name

    Parameter name and hierarchical path

    Type

    Parameter type (String, StringList, SecureString)

    Description

    Parameter description text

    Version

    Parameter version number

    Tier

    Parameter tier (Standard or Advanced)

    Key ID

    KMS key ID for SecureString parameters

    Account ID

    AWS account identifier

    Account Name

    AWS account name

    ID

    Agent unique identifier

    Name

    Agent display name

    ARN

    Agent Amazon Resource Name

    Description

    Agent description text

    Status

    Agent operational status

    Created At

    Agent creation timestamp

    ID

    Agent alias unique identifier

    Name

    Agent alias display name

    ARN

    Agent alias Amazon Resource Name

    Description

    Agent alias description text

    Status

    Agent alias operational status

    Created At

    Agent alias creation timestamp

    Agent ID

    ID of the associated agent

    Agent Name

    Name of the associated agent

    Description

    Agent version description text

    Agent Status

    Status of the agent version

    Created At

    Agent version creation timestamp

    Updated At

    Agent version last modification timestamp

    ID

    Action group unique identifier

    Name

    Action group display name

    Description

    Action group description text

    State

    Current state of the action group

    Updated At

    Action group last modification timestamp

    ID

    Model unique identifier

    Model ARN

    Model Amazon Resource Name

    Model Name

    Model display name

    Provider Name

    AI company providing the model

    Response Streaming Supported

    Whether model supports streaming responses

    Lifecycle Status

    Model availability status

    ID

    Custom model unique identifier

    Name

    Custom model display name

    ARN

    Custom model Amazon Resource Name

    Provider Name

    Name of the model provider

    Status

    Current status of the custom model

    Customization Type

    Type of customization applied

    ID

    Imported model unique identifier

    Name

    Imported model display name

    ARN

    Imported model Amazon Resource Name

    Architecture

    Model architecture type

    Instruct Supported

    Whether instruct mode is supported

    Created At

    Model import timestamp

    ID

    Knowledge base unique identifier

    Name

    Knowledge base display name

    Status

    Knowledge base operational status

    Description

    Knowledge base description text

    Updated At

    Knowledge base last modification timestamp

    ID

    Data source unique identifier

    Name

    Data source display name

    Status

    Current status of the data source

    Description

    Data source description text

    Updated At

    Data source last modification timestamp

    ID

    Prompt unique identifier

    Name

    Prompt display name

    ARN

    Prompt Amazon Resource Name

    Created At

    Prompt creation timestamp

    ID

    Prompt version unique identifier

    Name

    Prompt version display name

    Version

    Version identifier

    Description

    Prompt version description text

    Created At

    Prompt version creation timestamp

    Updated At

    Prompt version last modification timestamp

    ID

    Prompt router unique identifier

    Name

    Prompt router display name

    ARN

    Prompt router Amazon Resource Name

    Status

    Current status of the prompt router

    Router Type

    Type of routing algorithm used

    Routing Criteria Response Quality Difference

    Quality difference criteria for routing

    ID

    Guardrail unique identifier

    Name

    Guardrail display name

    ARN

    Guardrail Amazon Resource Name

    Created At

    Guardrail creation timestamp

    Version

    Version identifier

    Status

    Current status of the guardrail version

    Description

    Guardrail version description text

    Created At

    Guardrail version creation timestamp

    Updated At

    Guardrail version last modification timestamp

    EMR
    local Redshift user
    DynamoDB
    AWS DocumentDB
    Explain Assume Role
    Error Retries and Exponential Backoff
    management API
    AWS IAM Condition Operators Documentation
    {
      "Sid": "DocumentDBClusterDiscovery",
      "Effect": "Allow",
      "Action": [
        "rds:DescribeDBClusters",
        "docdb-elastic:ListClusters",
        "docdb-elastic:GetCluster"
      ],
      "Resource": "*"
    }
    {
      "Sid": "SystemsManager",
      "Effect": "Allow",
      "Action": [
        "ssm:DescribeParameters",
        "ssm:ListTagsForResource"
      ],
      "Resource": "*"
    }
    {
      "Sid": "Bedrock",
      "Effect": "Allow",
      "Action": [
        "bedrock:ListFoundationModels",
        "bedrock:ListCustomModels",
        "bedrock:ListImportedModels",
        "bedrock:ListAgents",
        "bedrock:GetAgent",
        "bedrock:ListAgentAliases",
        "bedrock:ListAgentVersions",
        "bedrock:ListAgentActionGroups",
        "bedrock:ListAgentKnowledgeBases",
        "bedrock:ListKnowledgeBases",
        "bedrock:ListDataSources",
        "bedrock:ListPrompts",
        "bedrock:ListPromptRouters",
        "bedrock:ListGuardrails"
      ],
      "Resource": "*"
    }
    curl -X POST '{baseurl}/api/v1/providers/aws
    -d  {
      "values": [
        {
          "name": "AWS-Org",
          "type": "AWS",
          "data_plane_id": "a2e32a80-9d64-4725-b4a9-8de6ffd0682b",
          "status": "SUCCESS",
          "account_id": "123456789010",
          "credentials_type": "ASSUME_CUSTOMER_ROLE",
          "access_key_id": null,
          "assume_role_name": "veza-connector",
          "assume_role_external_id": "0477997275",
          "regions": [],
          "db_user": "veza_db_user",
          "services": [],
          "redshift_database_allow_list": [],
          "redshift_database_deny_list": [],
          "rds_database_allow_list": [],
          "rds_database_deny_list": [],
          "s3_bucket_allow_list": [],
          "s3_bucket_deny_list": []
        }
      ]
    }

    Microsoft Azure AD

    Configuring the Veza integration for Microsoft Azure AD (Entra ID).

    Veza discovers Authorization metadata for Azure Active Directory, including roles, groups, users, and service principals, for any Microsoft Azure tenant integrated with Veza.

    Native Identity Mapping: If you also have Active Directory integrated, Veza automatically creates identity relationships between Azure AD users/groups and Active Directory users/groups when the Azure AD entity has the onPremisesSyncEnabled flag. Custom identity mapping is only needed for connecting to other systems. See Custom Identity Mappings for details.

    Enabling this integration can help:

    • Identify privileged access paths, including time-bound and just-in-time assignments

    • Track group-based inheritance of privileged roles

    • Conduct access reviews direct and group-based assignments

    If your organization only utilizes Azure AD, and doesn't require Veza discovery of entities such as storage resources, virtual machines, or SQL databases, you can disable those services and data sources when editing or adding an Azure integration.

    Custom Security Attributes

    Veza can optionally gather and show on Azure AD objects. To enable this, the Enterprise Application used by Veza to connect must have the CustomSecAttributeAssignment.Read.All Microsoft Graph permission. Attributes to gather must be specified in the Azure integration configuration.

    Privileged Identity Management (PIM)

    Microsoft Entra Privileged Identity Management (PIM) is a service for managing and monitoring access to important resources within an organization. PIM provides time-based and approval-based role activation to mitigate the risks of excessive, unnecessary, or misused access permissions.

    To support PIM discovery, the Veza Enterprise Application in Azure AD requires the following Microsoft Graph API permissions:

    • RoleManagement.Read.All

    • PrivilegedAccess.Read.AzureAD

    • Group.Read.All

    When available, Veza can provide visibility into both direct assignments and group-based assignments:

    • PIM for Roles: Just-in-time access to Azure AD administrative roles

    • PIM for Groups: Just-in-time membership and ownership of security groups or Microsoft 365 groups

    PIM Assignment Types and Status

    In Azure PIM, assignments can be either active (direct access without activation) or eligible (requiring activation when needed). Veza distinguishes between these statuses in the Access Graph:

    • Eligible assignments appear with an Azure AD Role Eligibility Schedule node between the user and role

    • Active assignments (including activated PIM assignments) appear as direct connections without the eligibility schedule node

    Understanding this distinction can help identify both current access and potential future access.

    Access Graph Representation

    Veza represents different PIM assignment types in the Access Graph with paths between graph nodes:

    1. User assigned (Active) to Role: Azure AD User → Azure AD Role

    2. User assigned (Active) to Role via Group: Azure AD User → Azure AD Group → Azure AD Role

    3. User Eligible for a Role: Azure AD User → Azure AD Role Eligibility Schedule → Azure AD Role

    Important: These intermediate entities (Azure AD Role Eligibility Schedule nodes) are filtered out in Effective query mode. To view, search, or create access reviews that include PIM eligibility schedules, you must use .

    When evaluating PIM eligibility, the following conditions apply:

    • Only assignments that have started (past their start date) and have not expired are shown in the graph

    • Future assignments and expired assignments are not displayed

    • When a user activates an eligible assignment, Microsoft creates a temporary active assignment (typically for up to 8 hours). Veza represents this as a direct connection, assuming data source extraction and parsing runs after activation and before expiration.

    • Groups cannot activate themselves; only individual members of a group can activate their eligible assignments

    Supported Entities and Attributes

    Veza discovers and maps Azure AD (Entra ID) entities and their relationships to enable queries based on attributes and relationships in your identity environment.

    The integration standardizes Application and Directory role permissions to effective create, read, update, and delete actions, and detects the following relationships between entities:

    • User and group membership, including nested groups

    • Service principal assignments to roles and resources

    • Role eligibility and assignments

    • Group ownership and management

    See below for all supported entities and attributes.

    Azure AD User

    Represents a user identity in Microsoft Entra ID (formerly Azure AD). User objects store authentication and profile information for organizational members, guests, and external identities. Users can sign into Microsoft Entra ID, access protected resources, and be assigned to groups, roles, and applications.

    Entity Type Group: IDP_USER

    Attribute
    Type
    Required
    Description

    Azure AD User Active Status

    The Is Active property for an Azure AD user is determined by the account_enabled attribute. If account_enabled is true, then Is Active will be true. If account_enabled is false, then Is Active will be false.

    Azure AD Group

    Represents a collection of users in Microsoft Entra ID used for assigning access rights and permissions. Groups can be security groups (used to manage access to shared resources) or Microsoft 365 groups (providing collaboration opportunities), with support for dynamic membership rules and nested groups.

    Entity Type Group: IDP_GROUP

    Attribute
    Type
    Required
    Description

    Note: Some group attributes are only collected when specific configuration options are enabled during Azure integration setup:

    • allow_external_senders, hide_from_address_lists, and hide_from_outlook_clients require the "Gather Group Extra Information" option

    • owners requires the "Gather Group Owner Details" option

    These options require additional API calls that can significantly increase extraction time. See the

    Azure AD Role

    Represents administrative roles within Microsoft Entra ID that define permissions for managing tenant resources. Roles can be built-in (predefined by Microsoft) or custom roles created by administrators, and are assigned to users, groups, or service principals to delegate identity management tasks.

    Entity Type Group: ROLE

    Attribute
    Type
    Required
    Description

    Azure AD Enterprise Application

    Represents a service principal in Microsoft Entra ID, which is the local representation of an application in a specific tenant. Service principals define what an application can do within your tenant, including what resources it can access and what authentication methods it uses. They serve as the security identity for applications accessing resources secured by Microsoft Entra ID.

    Entity Type Group: SERVICE_ACCOUNT

    Attribute
    Type
    Required
    Description

    Azure AD Device

    Represents a device registered or joined to Microsoft Entra ID. Devices can be Azure AD joined, hybrid joined, or registered, and are used in conditional access policies and device-based access controls. Device objects store information about platform, compliance state, and management status for making authentication and authorization decisions.

    Entity Type Group: SERVICE_ACCOUNT

    Attribute
    Type
    Required
    Description

    Azure AD App Role

    Represents roles defined within applications for role-based access control (RBAC). App roles allow developers to define authorization parameters within their applications and enable administrators to assign these roles to users, groups, or service principals. When a user signs in, Microsoft Entra ID emits a roles claim for each assigned role, which applications can use for authorization decisions.

    Entity Type Group: APPLICATION_ROLE

    Attribute
    Type
    Required
    Description

    Azure AD Conditional Access Policy

    Represents Microsoft Entra ID's policy engine for enforcing security controls based on specific conditions. Conditional Access policies function as if-then statements that evaluate signals (like user, device, location, and risk) when authentication occurs and enforce organizational access requirements such as MFA, device compliance, or session controls before granting access to resources.

    Entity Type Group: POLICY

    Attribute
    Type
    Required
    Description

    Azure AD Domain

    Represents a DNS domain associated with a Microsoft Entra ID tenant. Domains are used for user principal names (UPNs), email addresses, and application identifiers. Domains can be the initial onmicrosoft.com domain or custom verified domains that prove ownership of the namespace for use with Microsoft Entra ID services.

    Entity Type Group: DOMAIN

    Attribute
    Type
    Required
    Description

    Azure AD License

    Represents a product license assigned to users in Microsoft Entra ID that grants access to Microsoft cloud services and applications. Licenses determine which features and capabilities are available to users, including Microsoft 365 services, Entra ID Premium features (like Conditional Access), and other Microsoft cloud products.

    Entity Type Group: ROLE

    Attribute
    Type
    Required
    Description

    Next Steps: Complete Microsoft 365 Integration

    Important for Microsoft 365 Users: If your organization uses Exchange Online for email and collaboration, you should enable the Exchange Online service after completing your Azure AD setup. See the for detailed configuration instructions.

    Consider enabling these additional Microsoft 365 services in your Azure integration:

    • - Email permissions, distribution groups, and mailbox access

    • - Document and site permissions

    • - Team channels and collaboration access

    • Microsoft Intune - Device management and compliance (see )

    User Eligible for a Role
  • User Eligible for a Role via Group: Azure AD User → Azure AD Group → Azure AD Role Eligibility Schedule → Azure AD Role

    User Eligible for a Role via Group
  • User with Activated Eligible Assignment: Azure AD User → Azure AD Role (temporarily present during activation period)

  • User with Activated Eligible Assignment via Group: Azure AD User → Azure AD Group → Azure AD Role (temporarily present during activation period)

  • Permanent assignments (with no end date) are shown as active assignments

    Conditional access policy application to users and groups

  • Cross-cloud identity relationships with systems like AWS, GCP, Kubernetes, and databases

  • Federation and trust relationships with external identity providers

  • created_at

    TIMESTAMP

    Optional

    When the user was created

    datasource_id

    STRING

    Optional

    ID of the data source

    default_mfa_method

    STRING

    Optional

    User's default multi-factor authentication method

    deleted_at

    TIMESTAMP

    Optional

    When the user was deleted, if applicable

    department

    STRING

    Optional

    User's department

    email

    STRING

    Optional

    User's primary email address

    employee_id

    STRING

    Optional

    User's employee ID

    employee_type

    STRING

    Optional

    Type of employee (e.g., contractor, full-time)

    external_user_state

    STRING

    Optional

    State of external user if applicable

    first_name

    STRING

    Optional

    User's first name

    full_admin

    BOOLEAN

    Optional

    Whether the user has full administrative privileges

    guest

    BOOLEAN

    Optional

    Whether the user is a guest account

    id

    STRING

    Required

    Unique identifier for the user

    identity_type

    STRING

    Required

    Type of identity

    idp_unique_id

    STRING

    Required

    Unique identifier from the identity provider

    is_active

    BOOLEAN

    Required

    A boolean value calculated by Veza. See for details.

    is_admin

    BOOLEAN

    Optional

    Whether the user has administrative privileges

    is_licensed

    BOOLEAN

    Optional

    Whether the user has any licenses assigned

    is_mfa_capable

    BOOLEAN

    Optional

    Whether the user can use MFA for sign-in

    is_mfa_registered

    BOOLEAN

    Optional

    Whether the user has registered for MFA

    is_passwordless_capable

    BOOLEAN

    Optional

    Whether the user can use passwordless authentication

    is_sspr_capable

    BOOLEAN

    Optional

    Whether self-service password reset is available for the user

    is_sspr_enabled

    BOOLEAN

    Optional

    Whether SSPR is enabled for the user

    is_sspr_registered

    BOOLEAN

    Optional

    Whether the user has registered for SSPR

    is_system_preferred_authentication_method_enabled

    BOOLEAN

    Optional

    Whether system-preferred authentication is enabled

    job_title

    STRING

    Optional

    User's role or job title

    last_login_at

    TIMESTAMP

    Optional

    When the user last logged in

    last_name

    STRING

    Optional

    User's last name

    last_successful_login_at

    TIMESTAMP

    Optional

    When the user last successfully logged in

    licenses

    STRING_LIST

    Optional

    List of licenses assigned to the user

    mail_nickname

    STRING

    Optional

    User's mail nickname

    manager

    STRING

    Optional

    The user's manager

    manager_id

    STRING

    Optional

    ID of the user's manager

    manager_principal_name

    STRING

    Optional

    Principal name of the user's manager

    methods_registered

    STRING_LIST

    Optional

    Authentication methods registered by the user

    name

    STRING

    Required

    Display name of the user

    nickname

    STRING

    Optional

    User's nickname

    office

    STRING

    Optional

    User's office location

    on_premises_distinguished_name

    STRING

    Optional

    Distinguished name from on-premises AD

    on_premises_sam_account_name

    STRING

    Optional

    SAM account name from on-premises AD

    on_premises_sync

    BOOLEAN

    Required

    Whether the user is synchronized from on-premises AD

    on_premises_user_principal_name

    STRING

    Optional

    UPN from on-premises AD

    other_mails

    STRING_LIST

    Optional

    Additional email addresses

    owners

    STRING

    Optional

    List of user owners

    password_policies

    STRING_LIST

    Required

    Password policies applied to the user

    password_profile_force_change_password_next_sign_in

    BOOLEAN

    Optional

    Whether password change is required at next sign-in

    password_profile_force_change_password_next_sign_in_with_mfa

    BOOLEAN

    Optional

    Whether password change with MFA is required at next sign-in

    principal_name

    STRING

    Required

    User principal name (UPN)

    provider_id

    STRING

    Optional

    ID of the identity provider

    risk_score

    NUMBER

    Optional

    Risk score assigned to the user

    street_address

    STRING

    Optional

    User's street address

    system_preferred_authentication_methods

    STRING_LIST

    Optional

    System-preferred authentication methods

    usage_location

    STRING

    Optional

    User's usage location for licensing

    user_preferred_method_for_secondary_authentication

    STRING

    Optional

    User's preferred secondary authentication method

    user_type

    STRING

    Optional

    Type of user (Member, Guest, etc.)

    created_at

    TIMESTAMP

    Optional

    When the group was created

    datasource_id

    STRING

    Optional

    ID of the data source

    deleted_at

    TIMESTAMP

    Optional

    When the group was deleted, if applicable

    description

    STRING

    Optional

    Description of the group

    expires_at

    TIMESTAMP

    Optional

    When the group expires, if applicable

    group_types

    STRING_LIST

    Optional

    Types of the group (e.g., "Unified" for M365 groups)

    has_member_with_license_errors

    BOOLEAN

    Optional

    Whether any members have license errors

    hide_from_address_lists

    BOOLEAN

    Optional

    Whether the group is hidden from address lists

    hide_from_outlook_clients

    BOOLEAN

    Optional

    Whether the group is hidden from Outlook clients

    hierarchical_in_cycle

    BOOLEAN

    Optional

    Whether the group is part of a circular reference

    hierarchical_level

    NUMBER

    Required

    Depth in the nested group hierarchy

    id

    STRING

    Required

    Unique identifier for the group

    idp_unique_id

    STRING

    Required

    Unique identifier from the identity provider

    is_assignable_to_role

    BOOLEAN

    Optional

    Whether the group can be assigned to roles

    is_owner_group

    BOOLEAN

    Optional

    Whether the group is used for ownership assignments

    is_security_group

    BOOLEAN

    Optional

    Whether the group is a security group

    mail_enabled

    BOOLEAN

    Optional

    Whether the group can receive emails

    managed_by

    STRING_LIST

    Optional

    List of entities that manage this group

    name

    STRING

    Required

    Display name of the group

    on_premises_distinguished_name

    STRING

    Optional

    Distinguished name from on-premises AD

    on_premises_last_sync_date_time

    TIMESTAMP

    Optional

    Last synchronization time from on-premises AD

    on_premises_sam_account_name

    STRING

    Optional

    SAM account name from on-premises AD

    on_premises_sync

    BOOLEAN

    Required

    Whether the group is synchronized from on-premises AD

    owners

    STRING

    Optional

    List of group owners

    preffered_data_location

    STRING

    Optional

    Preferred data location for the group

    preffered_language

    STRING

    Optional

    Preferred language for the group

    principal_name

    STRING

    Required

    Principal name of the group

    provider_id

    STRING

    Optional

    ID of the identity provider

    renewed_at

    TIMESTAMP

    Optional

    When the group was last renewed

    risk_score

    NUMBER

    Optional

    Risk score assigned to the group

    visibility

    STRING

    Optional

    Visibility setting (Public, Private, or HiddenMembership)

    for configuration details and performance considerations.

    description

    STRING

    Optional

    Description of the role

    enabled

    BOOLEAN

    Optional

    Whether the role is currently enabled

    id

    STRING

    Required

    Unique identifier for the role

    is_privileged

    BOOLEAN

    Optional

    Whether the role grants privileged access

    name

    STRING

    Required

    Display name of the role

    owners

    STRING

    Optional

    List of role owners

    permissions

    STRING_LIST

    Optional

    List of permissions granted by the role

    provider_id

    STRING

    Optional

    ID of the identity provider

    risk_score

    NUMBER

    Optional

    Risk score assigned to the role

    application_template

    STRING

    Required

    Template used to create the application

    application_template_id

    STRING

    Optional

    ID of the template used to create the application

    application_type

    STRING

    Optional

    Type of application

    azure_tenant_id

    STRING

    Required

    The Azure tenant ID associated with the application

    datasource_id

    STRING

    Optional

    ID of the data source

    domain_service_now

    STRING

    Optional

    ServiceNow domain if applicable

    enabled

    BOOLEAN

    Optional

    Whether the service principal is enabled

    github_enterprise_cloud_enterprise

    STRING

    Optional

    GitHub Enterprise Cloud organization if applicable

    github_enterprise_server_domain

    STRING

    Optional

    GitHub Enterprise Server domain if applicable

    id

    STRING

    Required

    Unique identifier for the service principal

    identity_type

    STRING

    Required

    Type of identity

    is_active

    BOOLEAN

    Required

    Whether the service principal is active

    name

    STRING

    Required

    Display name of the service principal

    owners

    STRING

    Optional

    List of service principal owners

    permissions

    STRING_LIST

    Optional

    List of permissions granted to the application

    provider_id

    STRING

    Optional

    ID of the identity provider

    risk_score

    NUMBER

    Optional

    Risk score assigned to the service principal

    snowflake_domain

    STRING

    Optional

    Snowflake domain if applicable

    datasource_id

    STRING

    Optional

    ID of the data source

    device_category

    STRING

    Optional

    Category of the device

    device_id

    STRING

    Required

    Unique device identifier

    device_ownership

    STRING

    Optional

    Ownership type of the device

    enrollment_profile_name

    STRING

    Optional

    Name of the enrollment profile

    enrollment_type

    STRING

    Optional

    Type of enrollment

    id

    STRING

    Required

    Unique identifier for the device

    identity_type

    STRING

    Required

    Type of identity

    is_active

    BOOLEAN

    Required

    Whether the device is active

    is_compliant

    BOOLEAN

    Optional

    Whether the device meets compliance policies

    is_managed

    BOOLEAN

    Optional

    Whether the device is managed by Intune or another MDM

    is_rooted

    BOOLEAN

    Optional

    Whether the device is rooted/jailbroken

    management_type

    STRING

    Optional

    Type of management for the device

    manufacturer

    STRING

    Optional

    Device manufacturer

    mdm_app_id

    STRING

    Optional

    ID of the MDM application managing the device

    model

    STRING

    Optional

    Device model

    name

    STRING

    Required

    Display name of the device

    operating_system

    STRING

    Optional

    Device operating system

    operating_system_version

    STRING

    Optional

    Version of the operating system

    owners

    STRING

    Optional

    List of device owners

    profile_type

    STRING

    Optional

    Type of device profile

    provider_id

    STRING

    Optional

    ID of the identity provider

    registered_at

    TIMESTAMP

    Optional

    When the device was registered

    risk_score

    NUMBER

    Optional

    Risk score assigned to the device

    trust_type

    STRING

    Optional

    Azure AD Joined, Hybrid Joined, or Registered

    id

    STRING

    Required

    Unique identifier for the app role

    name

    STRING

    Required

    Display name of the app role

    provider_id

    STRING

    Optional

    ID of the identity provider

    risk_score

    NUMBER

    Optional

    Risk score assigned to the app role

    saml_provider_arn

    STRING

    Optional

    SAML provider ARN if applicable

    name

    STRING

    Required

    Display name of the policy

    provider_id

    STRING

    Optional

    ID of the identity provider

    risk_score

    NUMBER

    Optional

    Risk score assigned to the policy

    name

    STRING

    Required

    Domain name

    provider_id

    STRING

    Optional

    ID of the identity provider

    risk_score

    NUMBER

    Optional

    Risk score assigned to the domain

    owners

    STRING

    Optional

    List of license owners

    provider_id

    STRING

    Optional

    ID of the identity provider

    risk_score

    NUMBER

    Optional

    Risk score assigned to the license

    account_enabled

    BOOLEAN

    Optional

    Whether the user account is enabled

    azure_tenant_id

    STRING

    Required

    The Azure tenant ID associated with the user

    country_or_region

    STRING

    Optional

    allow_external_senders

    BOOLEAN

    Optional

    Whether external senders can send to this group

    azure_tenant_id

    STRING

    Required

    The Azure tenant ID associated with the group

    classification

    STRING

    Optional

    azure_tenant_id

    STRING

    Required

    The Azure tenant ID associated with the role

    builtin

    BOOLEAN

    Optional

    Whether the role is a built-in Microsoft role

    datasource_id

    STRING

    Optional

    app_role_assignment_required

    BOOLEAN

    Optional

    Whether users need explicit assignment to use the app

    application_id

    STRING

    Required

    Unique application identifier

    application_owners

    STRING_LIST

    Optional

    approximate_last_signed_in_at

    TIMESTAMP

    Optional

    Most recent sign-in from this device

    azure_tenant_id

    STRING

    Required

    The Azure tenant ID associated with the device

    compliance_expires_at

    TIMESTAMP

    Optional

    aws_iam_role_arn

    STRING

    Optional

    AWS IAM role ARN if applicable

    azure_tenant_id

    STRING

    Required

    The Azure tenant ID associated with the app role

    datasource_id

    STRING

    Optional

    conditional_access_policy_state

    STRING

    Required

    Enabled, Disabled, or Report-only

    datasource_id

    STRING

    Optional

    ID of the data source

    id

    STRING

    Required

    azure_tenant_id

    STRING

    Required

    The Azure tenant ID associated with the domain

    datasource_id

    STRING

    Optional

    ID of the data source

    id

    STRING

    Required

    datasource_id

    STRING

    Optional

    ID of the data source

    id

    STRING

    Required

    Unique identifier for the license

    name

    STRING

    Required

    custom security attributes
    System Query Mode
    Exchange Online setup guide
    Exchange Online
    SharePoint Online
    Microsoft Teams
    Azure integration guide
    User assigned Active to Role
    User assigned Active to Role via Group.png

    User's country or region

    Sensitivity classification of the group

    ID of the data source

    List of users/groups designated as application owners

    When device compliance status expires

    ID of the data source

    Unique identifier for the policy

    Unique identifier for the domain

    Name of the license

    Azure integration setup guide
    User Active Status