Skip to content
Cloudflare Docs

Device profiles

A device profile defines WARP client settings for a specific set of devices in your organization. You can create multiple profiles and apply different settings based on the user's identity, the device's location, and other criteria.

For example, users in one identity provider group (signifying a specific office location) might have different routes that need to be excluded from their WARP tunnel, or some device types (like Linux) might need different DNS settings to accommodate local development services.

Create a new profile

  1. In Zero Trust, go to Settings > WARP Client.
  2. In the Profile settings card, select Create profile. This will make a copy of the Default profile.
  3. Enter any name for the profile.
  4. Create rules to define the devices that will use this profile. Learn more about the available Selectors, Operators, and Values.
  5. Configure WARP settings for these devices.
  1. Select Create profile.

Your profile will appear in the Profile settings list. You can rearrange the profiles in the list according to your desired order of precedence.

Edit profile settings

  1. In Zero Trust, go to Settings > WARP Client.

  2. In the Profile settings card, find the profile you want to update and select Configure.

  3. Modify WARP settings for this profile.

  4. Select Save profile.

It may take up to 10 minutes for newly updated settings to propagate to devices.

Verify device profile

To check which device profile and profile settings are currently on a device, open a terminal and run:

Terminal window
warp-cli settings

The device profile UUID is shown in the Profile ID field.

Alternatively, if you do not have access to the CLI, you can use DEX remote captures to generate a WARP diagnostic log. The warp-settings.txt log file will contain the output of warp-cli settings.

Selectors

You can configure device profiles to match against the following selectors, or criteria. Identity-based selectors are only available if the user enrolled the device by logging in to an identity provider (IdP).

User email

Apply a device profile based on the user's email.

UI nameAPI example value
User emailidentity.email == "user-name@company.com"

User group emails

Apply a device profile based on an IdP group email address of which the user is configured as a member in the IdP.

UI nameAPI example
User group emailsidentity.groups.email == "contractors@company.com"

User group IDs

Apply a device profile based on an IdP group ID of which the user is configured as a member in the IdP.

UI nameAPI example
User group IDsidentity.groups.id == "12jf495bhjd7893ml09o"

User group names

Apply a device profile based on an IdP group name of which the user is configured as a member in the IdP.

UI nameAPI example
User group namesidentity.groups.name == "\"finance\""

Operating system

Apply a device profile based on the operating system of the device.

UI nameAPI example
Operating systemos.name in {\"windows\" \"mac\"}

Operating system version

Apply a device profile based on the OS version of the device.

UI nameAPI example
Operating system versionos.version == \"1.2.0\"

Managed network

Apply a device profile based on the managed network that the device is connected to.

UI nameAPI example
Managed networknetwork == \"Austin office\"

SAML attributes

Apply a device profile based on an attribute name and value from a SAML IdP.

UI nameAPI example
SAML Attributesidentity.saml_attributes == "\"group=finance\""

Service token

Apply a device profile based on the service token used to enroll the device.

UI nameAPI example
Service Tokenidentity.service_token_uuid == \"f174e90a-fafe-4643-bbbc-4a0ed4fc8415\"

Comparison operators

Comparison operators determine how device profiles match a selector.

OperatorMeaning
isequals the defined value
inmatches at least one of the defined values

Logical operators

To evaluate multiple conditions in an expression, select a logical operator:

OperatorMeaning
Andmatch all of the conditions in the expression
Ormatch any of the conditions in the expression

Order of precedence

Profiles are evaluated from top to bottom as shown in the UI and follows the first match principle — once a device matches a profile, evaluation stops and no subsequent profiles can override the decision.

The Default profile is always at the bottom of the list, meaning that it will only apply if the device does not match any of the previous profiles. If you make another custom profile the default, all settings will be copied over into the Default profile.