CAPolicies
Block

CA502-Agents-AttackSurfaceReduction-AllAgentIdentities-AllAgentResources-BLOCK

Block access

About this policy

The CA502-Agents-AttackSurfaceReduction-AllAgentIdentities-AllAgentResources-BLOCK policy is a default deny for agent identities, blocking them from all agent identity resources. The idea is simple, nothing agent shaped gets access unless you have made a deliberate decision to allow it elsewhere. As organisations begin experimenting with AI agents, this stops shadow agents from quietly acquiring access before your governance catches up. Treat it as your safety net, then build specific allowances on top for the agents you actually trust.

Policy conditions

Users
Agent identities only
Apps
AllAgentIdResources

JSON template

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/conditionalAccess/policies/$entity",
  "@odata.type": "#microsoft.graph.conditionalAccessPolicy",
  "@odata.id": "identity/conditionalAccess/policies('b35f5bf5-4d34-4e2d-815b-168b9cf57dd5')",
  "@odata.editLink": "identity/conditionalAccess/policies('b35f5bf5-4d34-4e2d-815b-168b9cf57dd5')",
  "templateId": null,
  "displayName": "CA502-Agents-AttackSurfaceReduction-AllAgentIdentities-AllAgentResources-BLOCK",
  "createdDateTime@odata.type": "#DateTimeOffset",
  "modifiedDateTime@odata.type": "#DateTimeOffset",
  "state@odata.type": "#microsoft.graph.conditionalAccessPolicyState",
  "state": "enabledForReportingButNotEnforced",
  "deletedDateTime": null,
  "partialEnablementStrategy": null,
  "sessionControls": null,
  "conditions": {
    "@odata.type": "#microsoft.graph.conditionalAccessConditionSet",
    "userRiskLevels@odata.type": "#Collection(microsoft.graph.riskLevel)",
    "userRiskLevels": [],
    "signInRiskLevels@odata.type": "#Collection(microsoft.graph.riskLevel)",
    "signInRiskLevels": [],
    "clientAppTypes@odata.type": "#Collection(microsoft.graph.conditionalAccessClientApp)",
    "clientAppTypes": [
      "all"
    ],
    "platforms": null,
    "locations": null,
    "times": null,
    "deviceStates": null,
    "devices": null,
    "agents": null,
    "applications": {
      "@odata.type": "#microsoft.graph.conditionalAccessApplications",
      "includeApplications@odata.type": "#Collection(String)",
      "includeApplications": [
        "AllAgentIdResources"
      ],
      "excludeApplications@odata.type": "#Collection(String)",
      "excludeApplications": [],
      "includeUserActions@odata.type": "#Collection(String)",
      "includeUserActions": [],
      "includeAuthenticationContextClassReferences@odata.type": "#Collection(String)",
      "includeAuthenticationContextClassReferences": [],
      "applicationFilter": null
    },
    "users": {
      "@odata.type": "#microsoft.graph.conditionalAccessUsers",
      "includeUsers@odata.type": "#Collection(String)",
      "includeUsers": [
        "None"
      ],
      "excludeUsers@odata.type": "#Collection(String)",
      "excludeUsers": [],
      "includeGroups@odata.type": "#Collection(String)",
      "includeGroups": [],
      "excludeGroups@odata.type": "#Collection(String)",
      "excludeGroups": [],
      "includeRoles@odata.type": "#Collection(String)",
      "includeRoles": [],
      "excludeRoles@odata.type": "#Collection(String)",
      "excludeRoles": [],
      "includeGuestsOrExternalUsers": null,
      "excludeGuestsOrExternalUsers": null
    },
    "clientApplications": {
      "@odata.type": "#microsoft.graph.conditionalAccessClientApplications",
      "includeServicePrincipals@odata.type": "#Collection(String)",
      "includeServicePrincipals": [],
      "includeAgentIdServicePrincipals@odata.type": "#Collection(String)",
      "includeAgentIdServicePrincipals": [
        "All"
      ],
      "excludeServicePrincipals@odata.type": "#Collection(String)",
      "excludeServicePrincipals": []
    }
  },
  "grantControls": {
    "@odata.type": "#microsoft.graph.conditionalAccessGrantControls",
    "operator": "OR",
    "builtInControls@odata.type": "#Collection(microsoft.graph.conditionalAccessGrantControl)",
    "builtInControls": [
      "block"
    ],
    "customAuthenticationFactors@odata.type": "#Collection(String)",
    "customAuthenticationFactors": [],
    "termsOfUse@odata.type": "#Collection(String)",
    "termsOfUse": [],
    "authenticationStrength@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/conditionalAccess/policies('b35f5bf5-4d34-4e2d-815b-168b9cf57dd5')/grantControls/authenticationStrength/$entity",
    "authenticationStrength@odata.associationLink": "https://graph.microsoft.com/beta/identity/conditionalAccess/policies('b35f5bf5-4d34-4e2d-815b-168b9cf57dd5')/grantControls/authenticationStrength/$ref",
    "authenticationStrength@odata.navigationLink": "https://graph.microsoft.com/beta/identity/conditionalAccess/policies('b35f5bf5-4d34-4e2d-815b-168b9cf57dd5')/grantControls/authenticationStrength",
    "authenticationStrength": null
  },
  "#microsoft.graph.restore": {
    "title": "microsoft.graph.restore",
    "target": "https://graph.microsoft.com/beta/identity/conditionalAccess/policies('b35f5bf5-4d34-4e2d-815b-168b9cf57dd5')/microsoft.graph.restore"
  },
  "Tag": "jv-CAF-2026.2.1",
  "summary": "The CA502-Agents-AttackSurfaceReduction-AllAgentIdentities-AllAgentResources-BLOCK policy is a default deny for agent identities, blocking them from all agent identity resources. The idea is simple, nothing agent shaped gets access unless you have made a deliberate decision to allow it elsewhere. As organisations begin experimenting with AI agents, this stops shadow agents from quietly acquiring access before your governance catches up. Treat it as your safety net, then build specific allowances on top for the agents you actually trust."
}