CAPolicies
Session Control

CA403-GuestUsers-IdentityProtection-AllApps-AnyPlatform-PersistentBrowser

Non-persistent browser session

About this policy

The CA403-GuestUsers-IdentityProtection-AllApps-AnyPlatform-PersistentBrowser policy prevents external users from keeping persistent browser sessions in your tenant. Whatever device a guest signs in from, once the browser closes the session is gone, and the next visit needs a fresh sign-in. You cannot manage a guest device or vouch for who else uses it, so refusing long lived browser sessions is a sensible default. It covers all cloud apps and every external user type, from B2B guests to service providers.

Policy conditions

Users
Specific users
Apps
All cloud apps

JSON template

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/conditionalAccess/policies/$entity",
  "@odata.type": "#microsoft.graph.conditionalAccessPolicy",
  "@odata.id": "identity/conditionalAccess/policies('5a1dd16d-8e4b-4ee0-9e2b-56664d444f08')",
  "@odata.editLink": "identity/conditionalAccess/policies('5a1dd16d-8e4b-4ee0-9e2b-56664d444f08')",
  "templateId": null,
  "displayName": "CA403-GuestUsers-IdentityProtection-AllApps-AnyPlatform-PersistentBrowser",
  "createdDateTime@odata.type": "#DateTimeOffset",
  "modifiedDateTime@odata.type": "#DateTimeOffset",
  "state@odata.type": "#microsoft.graph.conditionalAccessPolicyState",
  "state": "enabled",
  "deletedDateTime": null,
  "grantControls": null,
  "partialEnablementStrategy": 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": [
      "browser"
    ],
    "platforms": null,
    "locations": null,
    "times": null,
    "deviceStates": null,
    "devices": null,
    "clientApplications": null,
    "agents": null,
    "applications": {
      "@odata.type": "#microsoft.graph.conditionalAccessApplications",
      "includeApplications@odata.type": "#Collection(String)",
      "includeApplications": [
        "All"
      ],
      "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": [],
      "excludeUsers@odata.type": "#Collection(String)",
      "excludeUsers": [],
      "includeGroups@odata.type": "#Collection(String)",
      "includeGroups": [],
      "excludeGroups@odata.type": "#Collection(String)",
      "excludeGroups": [
        "2802b872-ccfb-4b29-a9a9-459808dfb11b",
        "ffba4a95-5986-4d87-804a-1f354533a930"
      ],
      "includeRoles@odata.type": "#Collection(String)",
      "includeRoles": [],
      "excludeRoles@odata.type": "#Collection(String)",
      "excludeRoles": [],
      "excludeGuestsOrExternalUsers": null,
      "includeGuestsOrExternalUsers": {
        "@odata.type": "#microsoft.graph.conditionalAccessGuestsOrExternalUsers",
        "guestOrExternalUserTypes@odata.type": "#microsoft.graph.conditionalAccessGuestOrExternalUserTypes",
        "guestOrExternalUserTypes": "internalGuest,b2bCollaborationGuest,b2bCollaborationMember,b2bDirectConnectUser,otherExternalUser,serviceProvider",
        "externalTenants": {
          "@odata.type": "#microsoft.graph.conditionalAccessAllExternalTenants",
          "membershipKind@odata.type": "#microsoft.graph.conditionalAccessExternalTenantsMembershipKind",
          "membershipKind": "all"
        }
      }
    }
  },
  "sessionControls": {
    "@odata.type": "#microsoft.graph.conditionalAccessSessionControls",
    "disableResilienceDefaults": null,
    "applicationEnforcedRestrictions": null,
    "cloudAppSecurity": null,
    "signInFrequency": null,
    "continuousAccessEvaluation": null,
    "secureSignInSession": null,
    "blockSensitiveActions": null,
    "persistentBrowser": {
      "@odata.type": "#microsoft.graph.persistentBrowserSessionControl",
      "mode@odata.type": "#microsoft.graph.persistentBrowserSessionMode",
      "mode": "never",
      "isEnabled": true
    }
  },
  "#microsoft.graph.restore": {
    "title": "microsoft.graph.restore",
    "target": "https://graph.microsoft.com/beta/identity/conditionalAccess/policies('5a1dd16d-8e4b-4ee0-9e2b-56664d444f08')/microsoft.graph.restore"
  },
  "Tag": "jv-CAF-2026.2.1",
  "summary": "The CA403-GuestUsers-IdentityProtection-AllApps-AnyPlatform-PersistentBrowser policy prevents external users from keeping persistent browser sessions in your tenant. Whatever device a guest signs in from, once the browser closes the session is gone, and the next visit needs a fresh sign-in. You cannot manage a guest device or vouch for who else uses it, so refusing long lived browser sessions is a sensible default. It covers all cloud apps and every external user type, from B2B guests to service providers."
}