C# OAA Application Connector

This document provides a high-level overview of and examples for getting started with a new OAA connector to integrate Veza with SaaS applications, infrastructure systems, custom-built applications, and other systems. These examples use C# and the Veza.OAA SDK.

When developing a connector, source system specifics and individual customer requirements will require alterations to code flow. However, the overall goals, best practices, and development flow are common to most integrations.

Code goals

The example code was written with the following goals in mind:

  • Connector should be easy to run from automation platforms and the Command Prompt.

  • Parameters are passed through environment variables as well as command line flags.

  • Connector does not require maintenance of state:

    • Connector does not require any persistent data between invocations.

    • There is no special invocation for the first execution.

    • The connector handles all provider and data source management logic.

    • Data source name is unique to the discovered environment.

High-level code flow

The exact flow of an OAA connector can change to meet specific requirements, but the general steps are as follows:

  1. Process and validate configuration parameters. Ensure that all required values are present and valid.

  2. Initialize the API client connection to the Veza tenant. Doing so early in the application flow validates the URL and API key before continuing discovery.

  3. Create an instance of the Veza.OAA.Application.CustomApplication class to populate with application metadata.

  4. Connect to the system and perform discovery of required entities.

    • In your custom integrations, discovery order for users, groups, roles, and other entities can adapt to suit application requirements.

    • Populate the CustomApplication instance with the identity, role, permission, resource, and authorization information collected.

  5. Check if the Provider and Data Source exist on Veza. Create them if they do not exist.

  6. Push the application to the Data Source on Veza. The SDK creates the required JSON payload from the CustomApplication instance.

    • Process any returned warnings or errors.

  7. Exit.

Customizing the example

To use this example as a starting point for your application integration, follow these steps:

  1. Update the name, applicationType, and description of the CustomApplication object based on the source system for integration with Veza.

  2. Define any custom_properties needed. Properties must be defined on the CustomApplication object before their values are set on any entities.

  3. Implement the discovery steps in the Discover() function to collect user, group, role, resource, and permission data for the application. As entities are collected, add them to the CustomApplication object.

  4. Run the connector to validate the output in Veza.

Example: custom application

The following code provides a template and examples for creating a new application integration using the Veza.OAA SDK.

Last updated

Was this helpful?