Skip to content
Latest (currently 2026.8.0) has the newest features, bug fixes, and CVE patches of Solo Enterprise for agentregistry.

For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.

Microsoft Copilot Studio

Page as Markdown

Connect Solo Enterprise for agentregistry to a Microsoft Copilot Studio environment so that you can discover deployed agents and monitor them in the registry UI.

This guide walks you through how to connect Solo Enterprise for agentregistry to Microsoft Copilot Studio, so that you can discover deployed agents and add them as instances to the registry Instances view in the registry UI.

Note

Solo Enterprise for agentregistry does not create or deploy Copilot Studio agents. The MicrosoftCopilotStudio runtime is a discovery-only runtime. For more information, see the Runtime concepts and Runtime architectures.

Before you begin

  1. Set up an OIDC provider. This guide assumes that you installed Keycloak. Make sure to follow the General setup tab to install Keycloak with the required realm settings, clients, and secrets.

  2. Install Solo Enterprise for agentregistry.

  3. Make sure that you have access to a Power Platform environment with Dataverse enabled, and sufficient permissions to register an Entra app and administer the environment.

Step 1: Create an Entra app registration

The Entra app registration is the service identity that Solo Enterprise for agentregistry uses to authenticate with Microsoft. When the registry syncs agents from your Power Platform environment, it uses the app registration’s client ID and secret to request a token from Microsoft Entra. The registry then calls the Dataverse Web API with that token to discover Copilot Studio agents.

In this step, you create the Entra app registration and generate the client secret.

  1. Log in to the Azure portal and go to Microsoft Entra ID+AddApp registrations.

  2. Create your app registration.

    • Enter a name for the app, such as agentregistry-copilot.
    • Choose the account type that can access your app.
    • Leave the redirect URI blank. Then, click Register.
  3. On the overview page for your Entra app, get the Application (client) ID and Directory (tenant) ID and save them as environment variables.

    export AZURE_TENANT_ID=<directory-tenant-ID>
    export AZURE_CLIENT_ID=<application-client-ID>
  4. Go to ManageCertificates & secrets+ New client secret. Set an expiration date for your certificate, and click Add.

  5. Copy the secret Value immediately as it is only shown once and save it in an environment variable.

    export AZURE_CLIENT_SECRET=<client-secret-value>
  6. Store the client secret value in a Solo Enterprise for agentregistry Secret. This way, the value is written to the server-side secret backend and never stored in plain text in your runtime.

    arctl apply -f - <<EOF
    apiVersion: ar.dev/v1alpha1
    kind: Secret
    metadata:
      name: microsoft-copilot-creds
    spec:
      type: Opaque
      stringData:
        clientSecret: "${AZURE_CLIENT_SECRET}"
    EOF

    Example output:

    ✓ Secret/microsoft-copilot-creds created
    
  7. Verify that the Secret is created.

    arctl get secret microsoft-copilot-creds

    Example output:

    NAME                      TYPE     DATA
    microsoft-copilot-creds   Opaque   1
    

Step 2: Find your Power Platform environment details

Every Copilot Studio agent lives inside a Power Platform environment. The environment is an isolated container that groups apps, flows, and data for a team or business unit and is backed by its own Dataverse database instance that stores the Copilot Studio agent definitions as bot records. When Solo Enterprise for agentregistry syncs a Copilot Studio runtime, it queries the Dataverse Web API of that specific environment to list those bot records and surface them as instances in the registry UI.

To sync Copilot bot records, Solo Enterprise for agentregistry requires the environment ID (GUID) that your agents are deployed in and the Dataverse Web API URL that this environment is connected to.

  1. Open the Power Platform admin center at admin.powerplatform.microsoft.com.
  2. Go to ManageEnvironments and open the environment that contains your Copilot Studio agents. If you don’t have one, click New, select the environment type, region, and name for your environment. Then, click Save.
  3. On the environment details page, copy the Environment ID and Environment URL and save them as environment variables. Note that if you created an environment for the first time, you might need to provision a Dataverse backend for that environment before you can proceed.
    export POWER_PLATFORM_ENVIRONMENT_ID=<environment-id>
    export DATAVERSE_ENDPOINT=https://<org>.crm.dynamics.com

Step 3: Register the app as a Dataverse application user

When Solo Enterprise for agentregistry syncs agents from the Copilot Studio runtime, it calls the Dataverse Web API to list bot records from the Bot table. A bot record represents a Copilot Studio agent definition. Dataverse has its own permission model that is separate from Azure RBAC. By default, Microsoft Entra apps do not have access to the Dataverse API. To grant access, you create a Dataverse application user that links the Entra app to a Dataverse identity, and then assign that identity a security role that permits reading records from the Bot table.

  1. From the Power Platform admin center at admin.powerplatform.microsoft.com, select Manage and open the environment that you created or selected earlier.
  2. Click SettingsUsers + permissionsApplication users+ New app user.
  3. Click + Add an app, search for and select the Entra app registration that you created, and select Add.
  4. Set your Business unit.
  5. Click the edit icon under Security roles and assign a role that grants read access to the Bot table. For testing purposes, use System Administrator. For the least privilege, create a custom role with read permissions for the Bot table instead. Then, click Save.

Note

Only one application user can exist per Entra app and environment. You must repeat these steps for each Power Platform environment that you want to discover agents from.

Step 4: Register the MicrosoftCopilotStudio runtime

Register the Power Platform environment as a discovery runtime in Solo Enterprise for agentregistry. The runtime uses the Entra client-credentials flow to call the Dataverse Web API and sync Copilot Studio agents as deployed instances into the registry UI.

  1. Create the MicrosoftCopilotStudio runtime.

    arctl apply -f - <<EOF
    apiVersion: ar.dev/v1alpha1
    kind: Runtime
    metadata:
      name: copilot-studio
    spec:
      type: MicrosoftCopilotStudio
      config:
        environmentId: "${POWER_PLATFORM_ENVIRONMENT_ID}"
        dataEndpoint: "${DATAVERSE_ENDPOINT}"
        auth:
          oidc:
            issuer: "https://login.microsoftonline.com/${AZURE_TENANT_ID}/v2.0"
            clientId: "${AZURE_CLIENT_ID}"
            clientSecretRef:
              name: microsoft-copilot-creds
              key: clientSecret
    EOF
    FieldDescription
    typeSet to MicrosoftCopilotStudio to enable the Copilot Studio discovery provider.
    config.environmentIdThe Power Platform environment GUID from Step 2.
    config.dataEndpointThe Dataverse Web API URL for your environment (https://<org>.crm.dynamics.com).
    config.auth.oidc.issuerThe Microsoft Entra OIDC issuer URL for your tenant. Follows the format https://login.microsoftonline.com/<directory-tenant-id>/v2.0.
    config.auth.oidc.clientIdThe Application (client) ID from your Entra app registration.
    config.auth.oidc.clientSecretRefA reference to the Solo Enterprise for agentregistry Secret that holds the Entra client secret value.

    Example output:

    ✓ Runtime/copilot-studio created
    
  2. Get the details of your runtime and verify that the runtime shows a successful sync with your configured Power Platform environment. If an issue occurs during the sync, the error is listed in the runtime status.

    arctl get runtime copilot-studio -o yaml

    Example output:

    status:
     conditions:
      - lastTransitionTime: "2026-07-01T13:27:21.915068044Z"
        reason: SyncOK
        status: "True"
        type: Synced
     details:
        runtimeSync:
          lastSyncStatus: ok
          lastSyncedAt: "2026-07-01T13:40:43Z"
    

Congratulations! You successfully set up Solo Enterprise for agentregistry and connected it to a Microsoft Copilot Studio environment. Your Copilot Studio agents are now discoverable and visible in the registry UI.

Next steps