# A web content filtering policy governs Copilot Studio agent traffic through the baseline profile

Forwarding Copilot Studio agent traffic to Global Secure Access provides visibility but doesn't restrict the web destinations agents can reach unless a…

Source: https://maester.dev/docs/tests/ZTA.27028

<!-- This file is generated by website/scripts/generate-test-docs.mjs. Do not edit manually. -->

## Overview

Forwarding Copilot Studio agent traffic to Global Secure Access provides visibility but doesn't restrict the web destinations agents can reach unless a web content filtering policy is linked to the baseline profile. The baseline profile is the supported enforcement path for agent traffic; security profiles linked to Conditional Access policies aren't supported for agents. Without an enabled, administrator-configured web content filtering policy on the baseline profile, an agent's HTTP node action or connector can reach web categories and URLs that the organization intended to block, giving a compromised or manipulated agent an unrestricted path to retrieve payloads, contact command-and-control infrastructure, or transmit data to an external destination. Linking the Copilot Studio web content filtering policy to the enabled baseline profile applies those restrictions tenant-wide to forwarded agent traffic.

## Remediation

- [Configure Secure Web and AI Gateway for Microsoft Copilot Studio agents](https://learn.microsoft.com/entra/global-secure-access/how-to-secure-web-ai-gateway-agents?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - Create a web content filtering policy for agent requirements and link it to the baseline profile.
- [Global Secure Access for Copilot Studio agents](https://learn.microsoft.com/power-platform/admin/security/secure-web-ai-gateway-agents?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - Follow the Power Platform guidance for creating the Copilot Studio agent web repositories policy and linking it to the baseline profile.
- Review the linked policy in the Microsoft Entra admin center under **Global Secure Access** > **Secure** > **Security profiles** > **Baseline profile**.

## Run it

The check runs as part of the whole assessment, with the ZeroTrustAssessment module installed:

```powershell
Install-Module ZeroTrustAssessment -Scope CurrentUser
Connect-Maester
Invoke-Maester -Pack ZTA -SkipBuiltIn
```

Leave out `-SkipBuiltIn` to run Maester's own checks in the same run.

<details>
<summary>About this check</summary>

| | |
| --- | --- |
| Severity | High |
| Effort to fix | Medium |
| Impact on users | Medium |
| Pillar | Network |
| Category | AI Gateway |
| Product | [Entra ID](/docs/tests/products/entra) |
| Feature | Global Secure Access |
| Area | AI and agents |
| ATT&CK | [T1567](/docs/tests?mitre=T1567) Exfiltration Over Web Service, [T1071.001](/docs/tests?mitre=T1071.001) Web Protocols |
| Licence | Entra_Premium_Internet_Access |
| Tenant | Workforce |

Product, feature, area and ATT&CK are Maester's: the assessment does not record them, so Maester keeps them in the pack's `taxonomy.json`.

</details>

<p class="mt-ms-note not-content"><svg class="mt-ms-note__logo" viewBox="0 0 21 21" aria-hidden="true"><rect width="10" height="10" fill="#f25022"/><rect x="11" width="10" height="10" fill="#7fba00"/><rect y="11" width="10" height="10" fill="#00a4ef"/><rect x="11" y="11" width="10" height="10" fill="#ffb900"/></svg><span>A Microsoft check, part of the <a href="/docs/tests/packs/zero-trust-assessment">Zero Trust Assessment</a> pack. Text from ZeroTrustAssessment 3.1.0, © Microsoft, <a href="/docs/tests/packs/zero-trust-assessment#licence">MIT licence</a>.</span></p>
