Configure Versa SASE with Microsoft Intune for IOS and MacOS
For supported software information, click here.
You can onboard Apple devices (macOS and iOS) to your Versa SASE tenant using Microsoft Intune. This method uses a property list (.plist) configuration file to ensure consistent, automated deployment.
The Versa SASE agent requires specific configuration parameters to connect to your tenant. Instead of manually entering this information on each device, you can use Microsoft Intune to push the configuration parameters in a .plist file. This file acts as a template, pre-populating the necessary fields for the agent and ensuring a zero-touch installation for end users. The process is broken down into four main tasks:
- Obtain the configuration parameters
- Create the configuration file
- Upload the configuration to Microsoft Intune
- Deploy the Versa SASE agent
The following sections describe these tasks in detail.
Obtain the Configuration Parameters
Before you begin in Microsoft Intune, you must retrieve the following connection details from the Versa SASE tenant portal. You can typically find these details in the device onboarding section or agent configuration settings.
The table below shows the configuration parameters that are needed to build the .plist configuration file. The Parameter column lists the keys that represent each parameter in the .plist file, and the Value column shows how the corresponding value should be added to the file. Values should be enclosed in <string> tags, unless otherwise noted.
Some keys use Microsoft Intune tokens for the values, for example, {{deviceid}} for the device_id key. Microsoft Intune automatically replaces these placeholders with device- or user-specific data at deployment time. For other fields, enter the value specific to your environment.
| Parameter | Description | Value |
|---|---|---|
| device_id | Unique hardware identifier | {{deviceid}} (Microsoft Intune token) |
| user_id | User email or identity | {{mail}} (Microsoft Intune token) |
| device_name | Hostname of the device | {{devicename}} (Microsoft Intune token) |
| fqdn | Portal fully qualified domain name (FQDN) | Replace with the portal FQDN |
| enterprise_name | Tenant name | Replace with the enterprise name |
| managed_device | Indicates whether the device is managed | Use <true/> or <false/> tag |
| log-level | Set the log level via MDM. | Enter one of the following: Info, Debug, Error, Warning, or Verbose |
| default_browser | Enables the default browser for authentication | Use <true/> or <false/> tag |
| is_versa_root_ca_required | Honors the Versa root certificate. Set to false to use a customer certificate. | Use <true/> or <false/> tag |
| skip_onboarding_screens | Skips the onboarding screens on first launch | Use <true/> or <false/> tag |
| Parameters introduced in version 7.7.1 (macOS only) | ||
| ekuid | Enables extended key usage (EKU) identifier-based certificate selection | Use <true/> or <false/> tag |
| eku_id_devicecert | EKU object identifier (OID) for device certificate authentication | Example: 1.3.6.1.4.1.12345.21 |
| eku_id_usercert | EKU OID for user certificate authentication | Example: 1.3.6.1.4.1.12345.20 |
| fetch_username_from_certificate | Fetches the username from the client certificate | Use <true/> or <false/> tag |
| username_field | Certificate field to use as the username (CN or SAN) | Enter CN or SAN |
| cert_issuer | Certificate issuer name | Example: CN=ROOT CA2 Intermediate CA1 |
| Parameters introduced in version 7.7.3 (macOS only) | ||
| fail_close_allowed_ips | IP addresses or subnets allowed through the firewall in fail-close state | Example: 192.168.1.0/24, 10.0.0.1 |
| disable_dns_proxy | Set to true to skip DNS proxy activation. Set to false to enable the normal DNS proxy activation flow. | Use <true/> or <false/> tag |
Create the Configuration File
You create the configuration file for the Versa SASE agent as .plist file. The .plist file contains key-value pairs that define the configuration. Each configuration parameter is represented by a key. For each key, you provide a value based on the information obtained in Obtain the Configuration Parameters, above.
For some of the values, you use Microsoft Intune tokens. These are placeholders that Microsoft Intune automatically resolves to the correct device or user data at deployment time. For example, for the device_id key, you use the ${deviceGUID} macro for the value.
Create a PLIST File
Create a file that contains the key-value pairs for your configuration. Use a plain text editor or a dedicated .plist editor to create this file. Save it with a .plist extension (for example, versa_sase_config.plist).
For each configuration parameter, enter a key and corresponding value, as shown in the example below. Replace the variables with values with your actual environment.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>device_id</key>
<string>{{deviceid}}</string>
<key>device_name</key>
<string>{{devicename}}</string>
<key>user_id</key>
<string>{{mail}}</string>
<key>fqdn</key>
<string>vpn.versa-networks.com</string>
<key>enterprise_name</key>
<string>Versa Networks</string>
<key>managed_device</key>
<true/>
<key>default_browser</key>
<false/>
<key>is_versa_root_ca_required</key>
<false/>
<key>skip_onboarding_screens</key>
<true/>
<key>disable_dns_proxy</key>
<false/>
<key>log_level</key>
<string>Verbose</string>
<key>fail_close_allowed_ips</key>
<array>
<string>192.124.249.120/32</string>
</array>
</dict>
</plist>
Upload the Configuration to Microsoft Intune
After you define the configuration in the .plist file, you upload the .plist file to Microsoft Intune for MDM. The upload process differs depending on whether the settings apply to application behavior (app configuration) or system-level preferences (custom configuration). When onboarding the Versa SASE agent, you typically need to do both.
Upload a PLIST File for System Preferences (MacOS Custom Settings)
For macOS, you upload the .plist file in the Preference File template to deploy custom settings to a specific app bundle ID.
- Log in to the Microsoft Intune admin center.
- Navigate to Devices > macOS > Configuration.
- Click Create, and then select New Policy.
- In the Platform field, select macOS, and in the Profile type field, select Templates.
- In Template name, select Preference file.
- Click Create.
- In the Basics Tab, enter a name for the policy (for example, Versa SASE Agent Config).
- In the Preference domain field, enter com.versa.versasase (or the specific bundle ID provided by Versa).
- In the Property list file field, upload the .plist file you created earlier.
- In the Assignments tab, assign the policy to the required macOS device groups.
- In the Review+Create tab, click Create.
iOS (App Configuration Policy)
- Log in to the Microsoft Intune admin center.
- Navigate to Apps > App configuration policies > Add > Managed devices.
- In the Basics tab, enter a name for the policy (for example, “Versa SASE iOS Config”).
- In Platform, select iOS/iPadOS.
- In the Targeted app, select the Versa SASE app from your catalog.
- In the Settings tab, in Configuration settings format, select Enter XML data.
- In the XML Property list, add the required keys (for example, fqdn, user_id) and map them to the corresponding token (for example,{{mail}}).
Note: Ensure your XML uses the Microsoft Intune tokens like {{mail}}. Microsoft Intune validates the XML structure automatically. - In Assignments, assign the policy to the required iOS user or device groups.
VPN Device Configuration Profile (MacOS and IOS)
In Microsoft Intune, a VPN device configuration profile configures the native system VPN or a custom application, such as Versa SASE, to connect automatically or on demand.
Create VPN Profile (IOS/IPadOS)
To create a VPN Profile for iOS/iPadOS:
- In the Microsoft Intune admin center, click Devices > iOS/iPadOS > Configuration.
- Click Create > New Policy.
- In the Profile type field, select VPN, and then click Create.
- In the Basics tab, enter a name for the profile — for example, Versa SASE VPN - iOS.
- In Configuration settings, enter information for the following fields:
Field Description Connection type Select Custom VPN Connection name Enter the following value: Versa SASE VPN server address Enter your Versa gateway FQDN. For example, acme.poc.versanow.net. Authentication method Select Username and password, or Certificates (if using SCEP or PKCS) VPN identifier Enter the following value: com.versa.saseclientcatalyst Custom attributes (Optional) Select any key-value pairs required by Versa for the tunnel. - In Assignments, select the required device or user groups.
- Review the configuration, and then click Create.
Create VPN Profile (MacOS)
To create a VPN Profile for macOS:
- In the Microsoft Intune admin center, click Devices > macOS > Configuration.
- Click Create > New Policy.
- In the Profile type field, select VPN, and then click Create.
- In Configuration settings, enter information for the following fields:

Field Description Deployment channel Select Device channel Connection Name Enter a name for the connection. For example, Versa MAC VPN IPSEC_SSL.
VPN Server address Enter your Versa gateway FQDN. For example, acme.poc.versanow.net. Authentication method Select Username and password. Connection type Select Custom VPN. VPN identifier Enter the following value: com.versa.systemextension Enter key and value pairs for the custom VPN attributes Add the following key-value pairs: - Default browser=True
- SingleSignOn=True
Split tunneling Select Enable. - Click Next.
- Review the configuration, and then click Create.
Notifications Configuration Profile (MacOS)
You must deploy a notifications configuration profile to control how Versa SASE notifications appear on macOS devices. The primary bundle identifier for the Versa SASE client on macOS is com.versa.systemextension.
To prevent notification prompts from interrupting users, you create the following notification profile.
- In the Microsoft Intune admin center, navigate to Devices > macOS > Configuration profiles.
- Click Create > New Policy.
- In the Platform field, select macOS, and in the Profile type field, select Settings catalog.
- Click Create.
- In the Basics tab, enter a name for the profile — for example, macOS – Versa SASE Notifications.
- In Configuration settings, click Add settings.
- In the Settings picker, search for Notifications, and then select User Experience > Notifications.
- Select Notification Settings, close the picker, and then select Edit instance.
- In the Configure instance window, enter information for the following fields:
Field Description Alert Type Select Banner (standard) or Modal. Badges Enabled Select True. Bundle Identifier Enter the following value: com.versa.systemextension Allow Notifications Select True. Critical Alert Enabled Select True. Notifications Enabled Select True. Show on Lock Screen Select True. Show in Notification Center Select True. Sounds Enabled Select True. - In Assignments, select the same macOS device group used for the Versa SASE application.
- Review the configuration, and then click Create.
System Extension Profile (MacOS)
The Versa SASE client uses the system extension com.versa.systemextension.sslse as a network packet tunnel provider. Because this is a system extension-based tunnel, Microsoft Intune must recognize the extension as the engine driving the connection.
To prevent users from getting system extension blocked prompts, you create a profile with the following configurations.
- In the Microsoft Intune admin center, navigate to Devices > macOS > Configuration profiles.
- Click Create > Settings catalog.
- In the Basics tab, enter a name for the profile — for example, macOS – Versa SASE System Extension.
- In Configuration settings, select Add settings.
- In System Configuration > System Extensions, configure the following:
Field Description Allowed System Extensions (Group of fields) Click + Add to activate the fields below. - Allowed Team Identifiers
Enter the following value: 47J4JTFE29. - Allowed System Extensions
Enter the following value: com.versa.systemextension.sslse. Allowed System Extension Types (Group of fields) Click + Add to activate the fields below. - Allowed Team Identifiers
Enter the following value: 47J4JTFE29. - Allowed System Extensions Types
Enter the following value: Network extension. - Review the configuration, and then click Create.
Deploy the Versa SASE Agent
After you upload the configuration parameters, you must deploy the Versa SASE agent application separately.
- MacOS:
- Upload the .pkg file as a macOS Line-of-Business (LOB) app, or
- Deploy it through Microsoft AutoUpdate (MAU) if the package is hosted in a repository.
- IOS: Add the Versa SASE app from the iOS App Store to the Microsoft Intune App Catalog, and assign the app as Required.
The following sections describe these tasks in detail.
MacOS LOB-Based MDM Distribution (MacOS)
You can use Microsoft Intune to distribute the Versa SASE client to macOS devices as an LOB application.
To deploy a SASE client, you do the following:
- Log in to the Microsoft Intune admin center.
- In the Microsoft Intune admin center, select Apps > macOS, and then click + Create
- In App type, select Line-of-business app, and then click Select.

- Click Select app package file.
- Select the package ( .pkg) file provided by Versa Networks, and then click OK.

- In App information, enter information for the following fields.
Field Description Select file Displays the name of the uploaded .pkg file. Name Enter a name for the application. Description Enter a short description of the application. Publisher Enter the publisher name, for example, Versa Networks. Minimum operating system Select the minimum macOS version required to install the application. Ignore app version Select one of the following:
- Yes—To ignore the application version during detection
- No—To enforce version checking.
Install as managed Select one of the following:
- Yes—To install the application as a managed application
- No—To install it as unmanaged.
Included apps Displays the list of applications included in the uploaded .pkg file. Review the list and ensure that only the required bundle identifier is listed. Remove any additional bundle identifiers if present. - Click Next twice to skip Scope tags and go to Assignments.
- In Assignments, select the required device or user groups.
- In Assignment type, select one of the following:
- Required—Automatically installs the application.
- Available—Makes the application available in Company Portal.
- Uninstall—Removes the application from assigned devices.
- Click Next.
- Review the configuration, and then click Create.
Microsoft AutoUpdate MDM Distribution (MacOS)
You follow a structured approach based on the installer type to distribute the SASE client to macOS devices using Microsoft Intune (MDM). The SASE vendor can provide a .pkg installer or required configuration profiles.
To deploy a SASE client, you do the following:
- Log in to the Microsoft Intune admin center.
- In the Microsoft Intune admin center, select Apps > macOS, and then click + Create.
- In App type, select macOS app (PKG), and then click Select.
- Click Select app package file.
- Select the package (.pkg) file provided by Versa Networks, and then click OK.
- In App Information, enter information for the following fields.
Field Description Select file Displays the name of the uploaded .pkg file. Name Enter a name for the application. Description Enter a short description of the application. Publisher Enter the publisher name, for example, Versa Networks. Category Select a category for the application, for example, Other Apps. Information URL Enter a valid URL for a page that contains information about the application. Privacy URL Enter a valid URL for a page that contains privacy information for the application. Developer Enter the name of the developer. Owner Enter the name of the owner. Notes Enter any additional notes about the application. Logo Click Select image to upload a logo for the application. - Click Next.
- In Program, enter the pre-install and post-install scripts.
- Pre-install script—Copy and paste the following script into the Pre-install script field. This script removes any existing Versa SASE installation before the new package is installed.
#!/bin/sh echo "Cleanup Log: Removing Sase Main App" VersaApp='/Applications/Versa SASE Client.app' if [ -d "$VersaApp" ]; then rm -rf '/Applications/Versa SASE Client.app' fi echo "Cleanup Log: Removing versa.conf file" rm -rf /private/var/conf/versa/* echo "Cleanup Log: Removing from /etc/versa.conf file" rm -rf /private/var/conf/ echo "Cleanup Log: Removing versa Log files" rm -rf /private/var/log/versa/ echo "Cleanup Log: Removing versa Software files" rm -rf /private/var/versa/ echo "Cleanup Log: Removing NewSyslog Software files" grep -v "private/var/log/versa/" /etc/newsyslog.conf > /tmp/tnewsyslog mv /tmp/tnewsyslog /etc/newsyslog.conf echo "Cleanup Log: Removing Files from /Users/Shared Folder" rm -rf /Users/Shared/EIP/ rm -rf /Users/Shared/TrustedConnection.png rm -rf /Users/Shared/versa.png rm -rf /Users/Shared/sentinelOne.sh rm -rf waDiagnose* echo "Cleanup Log: Unloading LaunchDaemeons Files" launchctl unload /Library/LaunchDaemons/com.versa.* rm -rf /Library/LaunchDaemons/com.versa.* echo "Cleanup Log: Unloading LaunchAgents Files" launchctl unload /Library/LaunchAgents/com.versa.* rm -rf /Library/LaunchAgents/com.versa.* echo "Cleanup Log: Unloading preferences Files" rm -rf ~/Library/Preferences/com.versa.* echo "Cleanup Log: Killing Versa Sase Client related process." kill -9 $(pgrep SaseClientWebsockets) kill -9 $(pgrep VSATrayApp) kill -9 $(pgrep Versa Sase Client)
- Post-install script—Copy and paste the following script into the Post-install script field. This script sets the required permissions after installation.
#!/bin/sh a=1 while [ $a -le 5 ] do VersaApp='/Applications/Versa SASE Client.app' if [ -d "$VersaApp" ]; then kill -9 $(pgrep VSATrayApp) $(pgrep 'Versa SASE Client') $(pgrep 'SaseClientWebsockets') 2>/dev/null sleep 2 open '/Applications/Versa SASE Client.app/Contents/VSATrayApp.app' echo "Restarted Versa SASE Client successfully." break # Exit the loop on success fi sleep $((a * 10)) a=$((a + 1)) done
- Pre-install script—Copy and paste the following script into the Pre-install script field. This script removes any existing Versa SASE installation before the new package is installed.
- In Requirements, select the minimum macOS version required in the Minimum operating system field.

- In Detection rules, enter information for the following fields:
Field Description Ignore app version Select No. App Bundle ID (CFBundleIdentifier) Enter the following value: com.versa.systemextension App Version (CFBundleShortVersionString) Select 7.67. - Click Next.
- In Assignments, add the required groups.
- In Review + create, review the settings.
- Click Create to finalize.
- Upload the profile to enable auto-download, or configure it manually using the following sample profile (save the file with a .mobileconfig extension, for example, settings.mobileconfig).
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadType</key> <string>Configuration</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.versa.vpn.config.profile</string> <key>PayloadUUID</key> <string>11111111-2222-3333-4444-555555555555</string> <key>PayloadDisplayName</key> <string>Versa VPN Config Profile</string> <key>PayloadDescription</key> <string>Custom configuration for Versa VPN client</string> <key>PayloadOrganization</key> <string>Versa Networks</string> <key>PayloadRemovalDisallowed</key> <false/> <key>PayloadContent</key> <array> <dict> <key>PayloadType</key> <string>com.versa.vpn.profile</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.versa.vpn.profile.config</string> <key>PayloadUUID</key> <string>66666666-7777-8888-9999-000000000000</string> <key>PayloadDisplayName</key> <string>Versa SaSe Config</string> <!-- Managed App Config Keys --> <key>device_id</key> <string>{{UDID}}</string> <key>device_name</key> <string>{{DeviceName}}</string> <key>fqdn</key> <string>vpn.versa-networks.com</string> <key>enterprise_name</key> <string>Versa Networks</string> <key>user_id</key> <string>{{UserPrincipalName}}</string> </dict> <dict> <key>PayloadType</key> <string>com.apple.security.generic</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadIdentifier</key> <string>com.versa.vpn.keychain.password</string> <key>PayloadUUID</key> <string>99999999-aaaa-bbbb-cccc-dddddddddddd</string> <key>PayloadDisplayName</key> <string>VPN Keychain Entry</string> <key>Account</key> <string>KEYCHAIN_PASSWORD_KEY</string> <key>Service</key> <string>com.versa.systemextension</string> <key>AccessControl</key> <array> <string>AllowAny</string> <!-- or AllowSigned, or UseDevicePasscode --> </array> </dict> </array> </dict> </plist>
Verification
After the deployment policies have run, you can verify a successful onboarding:
- In Microsoft Intune:
- MacOS:
- Go to Devices > macOS > Configuration profiles > [policy name] > Device and user check-in status.
- Confirm that the status displays Succeeded.
- IOS:
- Go to Apps > App configuration policies > [policy name] > Monitor > Device install status.
- Confirm that the status displays Succeeded.
- MacOS:
Note: Policy status may take 15–30 minutes to update after assignment. Refresh the page if the status is still pending.
- On the device:
- MacOS:
- Check /Library/Managed Preferences/com.versa.versasase.plist to verify that the tokens are replaced with actual values.
- IOS:
- Launch the app.
- Confirm that the app bypasses the initial setup screen and that the Enterprise Name and User ID fields are pre-populated.
- If the fields are not pre-populated, go to Settings > VPN & Device Management and confirm that the configuration profile is listed and installed.
- MacOS:
Supported Software Information
SASE Client releases 7.6.7 and later support all parameters described in this article, except:
- Release 7.7.1 introduces the macOS parameters listed under Parameters introduced in version 7.7.1 (macOS Only).
- Release 7.7.3 introduces the macOS parameters listed under Parameters introduced in version 7.7.3 (macOS Only).
