Meet ConductorOne at Black Hat

Set up a Microsoft Dynamics 365 connector

ConductorOne provides identity governance and just-in-time provisioning for Microsoft Dynamics 365. Integrate your Microsoft Dynamics 365 instance with ConductorOne to run user access reviews (UARs) and enable just-in-time access requests.

Capabilities

ResourceSyncProvision
Accounts
Roles
Teams

Gather Microsoft Dynamics 365 credentials

Configuring the connector requires you to pass in credentials generated in Microsoft Dynamics 365. Gather these credentials before you move on.

A user who is an Application Administrator (or similar admin role) in Microsoft Entra ID and a System Administrator in Microsoft Dynamics 365 must perform this task.

Look up your Microsoft Dynamics 365 environment URL

  1. Log into the Power Platform Admin Center.

  2. On the left side of the screen, click Manage > Environments.

  3. Click the name of the environment you want to integrate with ConductorOne.

  4. On the environment’s details page, carefully copy and save the URL of the environment.

Create a new Entra application

  1. In the Entra ID admin center, navigate to App registrations.

  2. Click + New registration.

  3. Give the application a name, such as “ConductorOne,” and select the supported account type relevant to your Entra installation (typically Accounts in this organizational directory only (Default Directory only - Single tenant)). You do not need to set a redirect URL.

  4. Click Register.

  5. The new app is created. Carefully copy and save the Application (client) ID and the Directory (tenant) ID shown on the application summary page.

Give the new Entra app API permissions

  1. Click API permissions.

  2. Click + Add permissions and click the APIs my organization uses tab.

  3. Search for “Dataverse”.

  4. Click Application permissions.

  5. Select user_impersonation. This permission allows your application to access Dataverse as itself (or, conceptually, to “impersonate” a user defined within Dataverse).

  6. Click Add permissions.

  7. Navigate to Identity > Applications > Enterprise applications > All applications.

  8. Click Grant admin consent for … at the top of the permissions list, and confirm your action.

Create a client secret

  1. Next, we’ll generate a client secret for your app. Navigate to the app and click Certificates & secrets.

  2. Click + New client secret.

  3. Give the client secret a description and set its expiration.

  4. Click Add.

  5. The client secret is shown in the VALUE field. Carefully copy and save the Secret Value.

Create an application user

This step links your Microsoft Entra ID app to your Dataverse environment and assigns it security roles, defining its actual permissions within Dynamics 365.

  1. Sign in to your Dynamics 365 environment.

  2. Click the gear icon in the top right corner and select Advanced Settings.

  3. Navigate to Settings > Security > Users.

  4. In the Users view, change the view from “Enabled Users” to “Application Users” using the view selector in the command bar.

  5. Click New in the command bar.

  6. In the new user form, ensure the form type dropdown at the top is set to Application User.

  7. Fill in the Application User’s details as follows:

    • Application ID: Paste the Application (client) ID you copied from Microsoft Entra ID earlier.

    • Full Name: Give it a descriptive name, such as “Dataverse Integration App User”.

    • Primary Email: You can use a dummy email like appuser@yourdomain.com if desired.

    • Business Unit: Select your Primary/Root Business Unit. This is crucial. If you’re unsure, it’s typically the top-level business unit named after your organization (you can find it by navigating to Power Platform Admin Center > Environments > [Your Env] > Settings > Business Units).

  8. Click Save.

  9. Next, assign Security Roles. Click Manage Roles in the command bar at the top.

  10. Assign the relevant security roles. You’ll need roles that grant the indicated privileges on the following entities:

    To sync (read-only):

    EntityPermissions
    UserRead
    TeamRead
    Security RoleRead

    To sync and provision (read-write):

    EntityPermissions
    UserRead, Append To, Append
    TeamWrite, Read, Append, Append To
    Security RoleRead, Assign
    AccountRead, Append To
    Action Approval ModelRead
    ActivityCreate, Read, Write, Append, Append To
    ApprovalRead
    Approval ProcessCreate, Read, Write, Delete, Append, Append To, Assign, Share
    Approval RequestRead
    Approval ResponseRead
    Approval Stage ApprovalRead
    Approval Stage ConditionRead
    Approval Stage OrderRead
    Approval StepRead
    Await All Action Approval ModelRead
    Await All Approval ModelRead
    Basic Approval Model DataRead
    ConnectionRead
    ContactRead, Append To
    Email SignatureRead
    Flow ApprovalRead
    LeadRead, Write, Append To, Assign
    MailboxRead
    NoteCreate, Read, Write, Delete, Append, Append To, Assign, Share
    Sales Agent ConfigurationRead
    Sales Agent RunCreate, Read, Write, Delete, Append, Append To, Assign, Share
    SalesAgentConfigurationV2Read
    Sales Agent ProfileRead, Append To
    SequenceRead
    Sequence TargetCreate, Read, Write, Delete, Append, Append To, Assign, Share
    Sequence Target StepCreate, Read, Write, Delete, Append, Append To, Assign, Share
    System JobRead
    QueueRead

    We recommend creating a custom security role with only the specific permissions needed for these entities at the “Organization” level.

  11. Click OK.

That’s it! Next, move on to the connector configuration instructions.

Configure the Microsoft Dynamics 365 connector

To complete this task, you’ll need:

  • The Connector Administrator or Super Administrator role in ConductorOne
  • Access to the set of Microsoft Dynamics 365 credentials generated by following the instructions above

Follow these instructions to use a built-in, no-code connector hosted by ConductorOne.

  1. In ConductorOne, navigate to Admin > Connectors and click Add connector.

  2. Search for Microsoft Dynamics 365 and click Add.

  3. Choose how to set up the new Microsoft Dynamics 365 connector:

    • Add the connector to a currently unmanaged app (select from the list of apps that were discovered in your identity, SSO, or federation provider that aren’t yet managed with ConductorOne)

    • Add the connector to a managed app (select from the list of existing managed apps)

    • Create a new managed app

  4. Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of ConductorOne users. Setting multiple owners is allowed.

    If you choose someone else, ConductorOne will notify the new connector owner by email that their help is needed to complete the setup process.

  5. Click Next.

  6. Find the Settings area of the page and click Edit.

  7. Enter the Microsoft Dynamics 365 credentials into the relevant fields.

  8. Click Save.

  9. The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.

That’s it! Your Microsoft Dynamics 365 connector is now pulling access data into ConductorOne.

Follow these instructions to use the Microsoft Dynamics 365 connector, hosted and run in your own environment. Contact ConductorOne’s support team to download the latest version of the connector.

When running in service mode on Kubernetes, a self-hosted connector maintains an ongoing connection with ConductorOne, automatically syncing and uploading data at regular intervals. This data is immediately available in the ConductorOne UI for access reviews and access requests.

Step 1: Set up a new Microsoft Dynamics 365 connector

  1. In ConductorOne, navigate to Connectors > Add connector.

  2. Search for Baton and click Add.

  3. Choose how to set up the new Microsoft Dynamics 365 connector:

    • Add the connector to a currently unmanaged app (select from the list of apps that were discovered in your identity, SSO, or federation provider that aren’t yet managed with ConductorOne)

    • Add the connector to a managed app (select from the list of existing managed apps)

    • Create a new managed app

  4. Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of ConductorOne users. Setting multiple owners is allowed.

    If you choose someone else, ConductorOne will notify the new connector owner by email that their help is needed to complete the setup process.

  5. Click Next.

  6. In the Settings area of the page, click Edit.

  7. Click Rotate to generate a new Client ID and Secret.

    Carefully copy and save these credentials. We’ll use them in Step 2.

Step 2: Create Kubernetes configuration files

Create two Kubernetes manifest files for your Microsoft Dynamics 365 connector deployment:

Secrets configuration

# baton-microsoft-dynamics-secrets.yaml
apiVersion: v1
kind: Secret
metadata:
  name: baton-microsoft-dynamics-secrets
type: Opaque
stringData:
  # ConductorOne credentials
  BATON_CLIENT_ID: <ConductorOne client ID>
  BATON_CLIENT_SECRET: <ConductorOne client secret>
  
  # Microsoft Dynamics 365-specific credentials
  BATON_ENVIRONMENT_URL: <Environment URL of your Microsoft Dynamics 365 instance>
  BATON_DYNAMICS_CLIENT_ID: <Client ID of the Entra app created to authenticate with the Dataverse API>
  BATON_DYNAMICS_CLIENT_SECRET: <Client secret of the Entra app created to authenticate with the Dataverse API>

See the connector’s README or run --help to see all available configuration flags and environment variables.

Deployment configuration

# baton-microsoft-dynamics.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: baton-microsoft-dynamics
  labels:
    app: baton-microsoft-dynamics
spec:
  selector:
    matchLabels:
      app: baton-microsoft-dynamics
  template:
    metadata:
      labels:
        app: baton-microsoft-dynamics
        baton: true
        baton-app: microsoft-dynamics
    spec:
      containers:
      - name: baton-microsoft-dynamics
        image: ghcr.io/conductorone/baton-microsoft-dynamics:latest
        imagePullPolicy: IfNotPresent
        envFrom:
        - secretRef:
            name: baton-microsoft-dynamics-secrets

Step 3: Deploy the connector

  1. Create a namespace in which to run ConductorOne connectors (if desired), then apply the secret config and deployment config files.

  2. Check that the connector data uploaded correctly. In ConductorOne, click Applications. On the Managed apps tab, locate and click the name of the application you added the Microsoft Dynamics 365 connector to. Microsoft Dynamics 365 data should be found on the Entitlements and Accounts tabs.

That’s it! Your Microsoft Dynamics 365 connector is now pulling access data into ConductorOne.