You configured a Copilot plugin access policy in the Microsoft 365 admin center to block a specific connector, but Copilot still uses that connector to answer user prompts. This happens because the policy framework applies to plugin-level permissions, not to individual connectors that are built into the plugin. The policy may appear to target the entire plugin, but the connector bypasses the block because it is registered as a separate capability within the same plugin package. This article explains why the policy fails to block the connector and provides the exact steps to enforce the restriction.
Key Takeaways: Why the Policy Fails and How to Fix It
- Microsoft 365 admin center > Copilot > Plugin access policies: Controls which plugins are available to users, but does not block individual connectors within a plugin.
- Power Platform admin center > Environments > Settings > Product > Connectors: The correct location to block a specific connector that is bundled inside a plugin.
- Copilot plugin manifest > Connector registration: Connectors are registered as separate capabilities inside the plugin manifest, so a plugin-level policy does not affect them.
Why the Plugin Access Policy Does Not Block the Connector
A Copilot plugin access policy blocks or allows an entire plugin package based on its manifest ID. When you set the policy to block a plugin, Copilot stops loading that plugin for all users assigned to the policy. However, many plugins contain multiple components, including connectors. A connector is a separate registration that connects to an external service, such as Salesforce, ServiceNow, or a custom REST API. The plugin manifest references the connector by its connector ID, but the plugin access policy does not evaluate connector IDs. It only evaluates the plugin package ID.
When a user prompts Copilot with a question that requires data from the blocked plugin, Copilot checks the plugin access policy. If the plugin is blocked, Copilot skips that plugin and tries other available plugins. But if a connector within the same plugin is registered independently in the Power Platform environment, Copilot can still invoke that connector directly through the Microsoft Graph connector framework. The plugin access policy does not block the connector because the connector is not treated as a plugin. It is treated as a data source registered in the connector catalog of the tenant.
The Connector Registration Model
Each connector in a Copilot plugin is defined in the plugin manifest under the “connectors” array. The manifest includes a connector ID, a display name, and the authentication method. When the plugin is installed, the connector is registered in the Power Platform environment as a separate entity. The plugin access policy only reads the plugin package ID from the manifest, not the connector IDs inside it. This architectural separation is the root cause of the policy bypass.
Steps to Block the Connector at the Power Platform Level
To block a connector that is not stopped by the plugin access policy, you must disable the connector in the Power Platform admin center. This method works for any connector that is registered in the tenant environment, including connectors that are bundled inside Copilot plugins. Follow these steps exactly.
- Open Power Platform admin center
Sign in to admin.powerplatform.microsoft.com with a Global Admin or Power Platform Admin account. The plugin access policy does not control connector registration, so you must use the Power Platform console. - Select the target environment
In the left navigation, click Environments. Find the environment where Copilot is configured for your users. Click the environment name to open its details page. Most Microsoft 365 tenants use the default environment named “Contoso (default)”. - Open the connector settings
On the environment details page, click Settings in the top toolbar. In the Settings panel, expand the Product section and click Connectors. This page lists all connectors registered in the environment. - Find the connector that bypasses the policy
Use the search box to locate the connector by its display name. For example, if the plugin contains a Salesforce connector, search for “Salesforce”. The connector name matches the value in the plugin manifest. Write down the connector ID shown in the list. - Disable the connector
Click the connector name to open its details. On the connector details page, click Edit. Set the Status toggle to Disabled. Click Save. The connector is now blocked for all users in this environment, including Copilot. - Verify that Copilot no longer uses the connector
Open Copilot in Microsoft Teams or copilot.microsoft.com. Ask a question that previously triggered the connector. Copilot should now respond without data from that connector. If it still returns connector data, repeat steps 2 through 5 and confirm the status shows “Disabled”.
If the Connector Still Appears Active After Disabling
Connector Caching in Copilot
Copilot caches connector registration data for up to 24 hours. After you disable the connector in Power Platform, Copilot may still use the cached connector for the rest of the day. Wait 24 hours and then test again. To force a cache refresh, restart the Copilot service by asking a Global Admin to run the following PowerShell command in the Microsoft Graph PowerShell module: Invoke-MgGraphRequest -Method POST -Uri "https://graph.microsoft.com/v1.0/copilot/refreshConnectors". This command clears the connector cache for the entire tenant.
Connector Registered in Multiple Environments
If your tenant uses multiple Power Platform environments, the connector may be registered in more than one environment. Disabling it in one environment does not affect the others. Repeat the disabling steps for every environment that has the connector registered. To find all environments that contain a specific connector, use the Power Platform admin center Analytics > Connectors report. This report shows the environment name and connector count for each connector.
Connector Created by a Third-Party Plugin
Some third-party plugins install connectors automatically when the plugin is added to Copilot. If you cannot find the connector in the Power Platform connector list, the plugin may have created a custom connector. Custom connectors appear under Connectors > Custom connectors in the Power Platform admin center. Disable the custom connector the same way you disable a standard connector.
| Item | Plugin Access Policy | Power Platform Connector Setting |
|---|---|---|
| Scope | Entire plugin package by manifest ID | Individual connector by connector ID |
| Admin location | Microsoft 365 admin center > Copilot > Plugin access policies | Power Platform admin center > Environments > Settings > Product > Connectors |
| Effect on connector | Does not block connector if connector is registered separately | Blocks the connector for all services, including Copilot |
| Cache delay | Applies immediately after policy save | Up to 24 hours cache in Copilot |
| Requires PowerShell refresh | No | Yes, to force immediate cache clearing |
The plugin access policy and the Power Platform connector setting serve different purposes. The plugin access policy controls which plugins appear in Copilot. The Power Platform connector setting controls which data sources are available to all services in the environment, including Copilot. To block a connector completely, you must use both controls together.
You now know that a plugin access policy cannot block a connector because the policy targets the plugin package, not the connector registration inside it. To enforce the block, disable the connector in the Power Platform admin center. If the connector remains active, wait for the 24-hour cache to expire or run the PowerShell cache refresh command. For connectors registered in multiple environments, disable the connector in each environment. This dual-layer approach ensures that Copilot respects your data access restrictions.