{
  "format": "changeintel.gsa-web-filtering-v2",
  "graphShapeDocumented": false,
  "note": "Neutral review format. Create the rule in the Microsoft Entra admin center: Global Secure Access \u003E Secure \u003E Web Filtering Policies (V2).",
  "rules": [
    {
      "name": "ChangeIntel Azure Virtual Desktop session hosts",
      "action": "Allow",
      "destinations": [
        {
          "type": "url",
          "value": "*.service.windows.usgovcloud.microsoft",
          "purpose": "Service Traffic",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of service.windows.usgovcloud.microsoft but not service.windows.usgovcloud.microsoft itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "In Microsoft 365 Common endpoint set 23 (Default category). Microsoft documents that the Microsoft traffic profile is built from this list, combined by traffic category, but not which categories it includes. Confirm in the Global Secure Access client: Advanced diagnostics, Forwarding profile."
          ]
        },
        {
          "type": "url",
          "value": "*.windows.usgovcloud.microsoft",
          "purpose": "Service Traffic",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of windows.usgovcloud.microsoft but not windows.usgovcloud.microsoft itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "In Microsoft 365 Common endpoint set 23 (Default category). Microsoft documents that the Microsoft traffic profile is built from this list, combined by traffic category, but not which categories it includes. Confirm in the Global Secure Access client: Advanced diagnostics, Forwarding profile."
          ]
        },
        {
          "type": "url",
          "value": "*.windows.usgovcloud-static.microsoft",
          "purpose": "Service Traffic",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of windows.usgovcloud-static.microsoft but not windows.usgovcloud-static.microsoft itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "In Microsoft 365 Common endpoint set 23 (Default category). Microsoft documents that the Microsoft traffic profile is built from this list, combined by traffic category, but not which categories it includes. Confirm in the Global Secure Access client: Advanced diagnostics, Forwarding profile."
          ]
        },
        {
          "type": "url",
          "value": "login.microsoftonline.us",
          "purpose": "Authentication to Microsoft Online Services",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "Public material indicates the Microsoft traffic profile takes this before Internet Access (indicated, not confirmed), so this rule is probably redundant. Confirm in the Global Secure Access client: Advanced diagnostics, Forwarding profile."
          ]
        },
        {
          "type": "url",
          "value": "*.wvd.azure.us",
          "purpose": "Service traffic",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of wvd.azure.us but not wvd.azure.us itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did."
          ]
        },
        {
          "type": "url",
          "value": "*.prod.warm.ingest.monitor.core.usgovcloudapi.net",
          "purpose": "Agent traffic Diagnostic output",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of prod.warm.ingest.monitor.core.usgovcloudapi.net but not prod.warm.ingest.monitor.core.usgovcloudapi.net itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did."
          ]
        },
        {
          "type": "url",
          "value": "gcs.monitoring.core.usgovcloudapi.net",
          "purpose": "Agent traffic",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did."
          ]
        },
        {
          "type": "url",
          "value": "azkms.core.usgovcloudapi.net",
          "purpose": "Windows activation",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "Web filtering assumes ports 80 and 443; port 1688 traffic needs a firewall rule instead."
          ]
        },
        {
          "type": "url",
          "value": "mrsglobalstugviffx.blob.core.usgovcloudapi.net",
          "purpose": "Agent and side-by-side (SXS) stack updates",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did."
          ]
        },
        {
          "type": "url",
          "value": "wvdportalstorageblob.blob.core.usgovcloudapi.net",
          "purpose": "Azure portal support",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did."
          ]
        },
        {
          "type": "url",
          "value": "ctldl.windowsupdate.com",
          "purpose": "Certificates",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "HTTP only: published for port 80."
          ]
        },
        {
          "type": "url",
          "value": "ocsp.msocsp.com",
          "purpose": "Certificates",
          "required": true,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#session-host-virtual-machines"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "Looks like a certificate validation host and isn\u0027t in the Microsoft 365 list. Microsoft documents that the Entra system profile covers certificate validation but lists no hosts, so this can go either way. Confirm in the Global Secure Access client: Advanced diagnostics, Forwarding profile.",
            "HTTP only: published for port 80."
          ]
        },
        {
          "type": "url",
          "value": "*.events.data.microsoft.com",
          "purpose": "Telemetry Service",
          "required": false,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#other-endpoints-1"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of events.data.microsoft.com but not events.data.microsoft.com itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "Broader than the Microsoft 365 entries it includes (such as set 32): those parts are expected to go to a Microsoft profile and the rest to Internet Access. Confirm in the Global Secure Access client: Advanced diagnostics, Forwarding profile."
          ]
        },
        {
          "type": "url",
          "value": "www.msftconnecttest.com",
          "purpose": "Detects if the session host is connected to the internet",
          "required": false,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#other-endpoints-1"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "HTTP only: published for port 80."
          ]
        },
        {
          "type": "url",
          "value": "*.prod.do.dsp.mp.microsoft.com",
          "purpose": "Windows Update",
          "required": false,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#other-endpoints-1"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of prod.do.dsp.mp.microsoft.com but not prod.do.dsp.mp.microsoft.com itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did."
          ]
        },
        {
          "type": "url",
          "value": "oneclient.sfx.ms",
          "purpose": "Updates for OneDrive client software",
          "required": false,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#other-endpoints-1"
          ],
          "caveats": [
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "In Microsoft 365 SharePoint endpoint set 10 (Default category). Microsoft documents that the Microsoft traffic profile is built from this list, combined by traffic category, but not which categories it includes. Confirm in the Global Secure Access client: Advanced diagnostics, Forwarding profile."
          ]
        },
        {
          "type": "url",
          "value": "*.digicert.com",
          "purpose": "Certificate revocation check",
          "required": false,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#other-endpoints-1"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of digicert.com but not digicert.com itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did.",
            "HTTP only: published for port 80."
          ]
        },
        {
          "type": "url",
          "value": "*.azure-dns.com",
          "purpose": "Azure DNS resolution",
          "required": false,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#other-endpoints-1"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of azure-dns.com but not azure-dns.com itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did."
          ]
        },
        {
          "type": "url",
          "value": "*.azure-dns.net",
          "purpose": "Azure DNS resolution",
          "required": false,
          "sources": [
            "https://learn.microsoft.com/en-us/azure/virtual-desktop/required-fqdn-endpoint?tabs=azure-for-us-government#other-endpoints-1"
          ],
          "caveats": [
            "A *. wildcard matches subdomains of azure-dns.net but not azure-dns.net itself; list the apex separately only if a source publishes it.",
            "V2 matching broadens: this FQDN becomes a URL destination that matches the address and its sub-paths, not only the exact host as a V1 FQDN rule did."
          ]
        }
      ]
    }
  ],
  "notes": [
    "In V2 a security profile contains exactly one web filtering policy. Each rule carries its own Allow or Block action and the policy has a default action (Allow, Block, or the preview Continue Evaluation).",
    "V2 has no standalone FQDN type: FQDNs are expressed as URL destinations, and a URL destination matches the address and its sub-paths.",
    "A former exact-host FQDN evaluated with URL logic can match sub-paths of the address rather than only the exact host; review destinations to confirm they match the intended traffic.",
    "V2 runs before V1. A V2 Block is terminal; a V2 Allow isn\u0027t, so a V1 policy can still block the same traffic.",
    "Without TLS inspection, HTTPS traffic is evaluated by Server Name Indication (SNI); only unencrypted HTTP exposes the full URL."
  ]
}