IntuneVPNConfigurationPolicyIOS

Parameters

Parameter Attribute DataType Description Allowed Values
Id Write String Id of the Intune policy.
DisplayName Key String Display name of the Intune policy.
Description Write String Description of the Intune policy.
connectionName Write String Connection name displayed to the user.
connectionType Write String Connection type. Possible values are: ciscoAnyConnect, pulseSecure, f5EdgeClient, dellSonicWallMobileConnect, checkPointCapsuleVpn, customVpn, ciscoIPSec, citrix, ciscoAnyConnectV2, paloAltoGlobalProtect, zscalerPrivateAccess, f5Access2018, citrixSso, paloAltoGlobalProtectV2, ikEv2, alwaysOn, microsoftTunnel, netMotionMobility, microsoftProtect. ciscoAnyConnect, pulseSecure, f5EdgeClient, dellSonicWallMobileConnect, checkPointCapsuleVpn, customVpn, ciscoIPSec, citrix, ciscoAnyConnectV2, paloAltoGlobalProtect, zscalerPrivateAccess, f5Access2018, citrixSso, paloAltoGlobalProtectV2, ikEv2, alwaysOn, microsoftTunnel, netMotionMobility, microsoftProtect
enableSplitTunneling Write Boolean Send all network traffic through VPN.
authenticationMethod Write String Authentication method for this VPN connection. certificate, usernameAndPassword, sharedSecret, derivedCredential, azureAD
safariDomains Write StringArray[] Safari domains when this VPN per App setting is enabled. In addition to the apps associated with this VPN, Safari domains specified here will also be able to trigger this VPN connection.
associatedDomains Write StringArray[] Associated Domains. These domains will be linked with the VPN configuration.
excludedDomains Write StringArray[] Domains that are accessed through the public internet instead of through VPN, even when per-app VPN is activated.
proxyServer Write MSFT_MicrosoftvpnProxyServer[] Represents the assignment to the Intune policy.
optInToDeviceIdSharing Write Boolean Opt-In to sharing the device's Id to third-party vpn clients for use during network access control validation.
excludeList Write StringArray[] Not documented on https://learn.microsoft.com/en-us/graph/api/resources/intune-deviceconfig-applevpnconfiguration?view=graph-rest-beta.
server Write MSFT_MicrosoftGraphvpnServer[] VPN Server on the network. Make sure end users can access this network location.
customData Write MSFT_customData[] Use this field to enable functionality not supported by Intune, but available in your VPN solution. Contact your VPN vendor to learn how to add these key/value pairs. This collection can contain a maximum of 25 elements
customKeyValueData Write MSFT_customKeyValueData[] Use this field to enable functionality not supported by Intune, but available in your VPN solution. Contact your VPN vendor to learn how to add these key/value pairs. This collection can contain a maximum of 25 elements
onDemandRules Write MSFT_DeviceManagementConfigurationPolicyVpnOnDemandRule[] On-Demand Rules. This collection can contain a maximum of 500 elements.
targetedMobileApps Write StringArray[] Not documented on https://learn.microsoft.com/en-us/graph/api/resources/intune-deviceconfig-applevpnconfiguration?view=graph-rest-beta.
Assignments Write MSFT_DeviceManagementConfigurationPolicyAssignments[] Represents the assignment to the Intune policy.
Ensure Write String Present ensures the policy exists, absent ensures it is removed. Present, Absent
Credential Write PSCredential Credentials of the Intune Admin
ApplicationId Write String Id of the Azure Active Directory application to authenticate with.
TenantId Write String Id of the Azure Active Directory tenant used for authentication.
ApplicationSecret Write PSCredential Secret of the Azure Active Directory tenant used for authentication.
CertificateThumbprint Write String Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.
ManagedIdentity Write Boolean Managed ID being used for authentication.
AccessTokens Write StringArray[] Access token used for authentication.
version Write UInt32 Version of the device configuration. Inherited from deviceConfiguration.
loginGroupOrDomain Write String Login group or domain when connection type is set to Dell SonicWALL Mobile Connection. Inherited from appleVpnConfiguration.
role Write String Role when connection type is set to Pulse Secure. Inherited from appleVpnConfiguration.
realm Write String Realm when connection type is set to Pulse Secure. Inherited from appleVpnConfiguration.
identifier Write String Identifier provided by VPN vendor when connection type is set to Custom VPN. For example: Cisco AnyConnect uses an identifier of the form com.cisco.anyconnect.applevpn.plugin Inherited from appleVpnConfiguration.
enablePerApp Write Boolean Setting this to true creates Per-App VPN payload which can later be associated with Apps that can trigger this VPN conneciton on the end user's iOS device. Inherited from appleVpnConfiguration.
providerType Write String Provider type for per-app VPN. Inherited from appleVpnConfiguration. Possible values are: notConfigured, appProxy, packetTunnel. notConfigured, appProxy, packetTunnel
disableOnDemandUserOverride Write Boolean Toggle to prevent user from disabling automatic VPN in the Settings app Inherited from appleVpnConfiguration.
disconnectOnIdle Write Boolean Whether to disconnect after on-demand connection idles Inherited from appleVpnConfiguration
disconnectOnIdleTimerInSeconds Write UInt32 The length of time in seconds to wait before disconnecting an on-demand connection. Valid values 0 to 65535 Inherited from appleVpnConfiguration.
microsoftTunnelSiteId Write String Microsoft Tunnel site ID.
cloudName Write String Zscaler only. Zscaler cloud which the user is assigned to.
strictEnforcement Write Boolean Zscaler only. Blocks network traffic until the user signs into Zscaler app. True means traffic is blocked.
userDomain Write String Zscaler only. Enter a static domain to pre-populate the login field with in the Zscaler app. If this is left empty, the user's Azure Active Directory domain will be used instead.

MSFT_DeviceManagementConfigurationPolicyAssignments

Parameters

Parameter Attribute DataType Description Allowed Values
dataType Write String The type of the target assignment. #microsoft.graph.groupAssignmentTarget, #microsoft.graph.allLicensedUsersAssignmentTarget, #microsoft.graph.allDevicesAssignmentTarget, #microsoft.graph.exclusionGroupAssignmentTarget, #microsoft.graph.configurationManagerCollectionAssignmentTarget
deviceAndAppManagementAssignmentFilterType Write String The type of filter of the target assignment i.e. Exclude or Include. Possible values are:none, include, exclude. none, include, exclude
deviceAndAppManagementAssignmentFilterId Write String The Id of the filter for the target assignment.
groupId Write String The group Id that is the target of the assignment.
groupDisplayName Write String The group Display Name that is the target of the assignment.
collectionId Write String The collection Id that is the target of the assignment.(ConfigMgr)

MSFT_DeviceManagementConfigurationPolicyVpnOnDemandRule

Parameters

Parameter Attribute DataType Description Allowed Values
ssids Write StringArray[] Network Service Set Identifiers (SSIDs).
dnsSearchDomains Write StringArray[] DNS Search Domains.
probeUrl Write String A URL to probe. If this URL is successfully fetched, returning a 200 HTTP status code, without redirection, this rule matches.
action Write String Action. Possible values are: connect, evaluateConnection, ignore, disconnect. connect, evaluateConnection, ignore, disconnect
domainAction Write String Domain Action, Only applicable when Action is evaluate connection. Possible values are: connectIfNeeded, neverConnect. connectIfNeeded, neverConnect
domains Write StringArray[] Domains, Only applicable when Action is evaluate connection.
probeRequiredUrl Write String Probe Required URL. Only applicable when Action is evaluate connection and DomainAction is connectIfNeeded.
interfaceTypeMatch Write String Network interface to trigger VPN. Possible values are: notConfigured, ethernet, wiFi, cellular. notConfigured, ethernet, wiFi, cellular
dnsServerAddressMatch Write StringArray[] DNS Search Server Address.

MSFT_MicrosoftGraphVpnServer

Parameters

Parameter Attribute DataType Description Allowed Values
address Write String Address (IP address, FQDN or URL)
description Write String Description.
isDefaultServer Write Boolean Default server.

MSFT_MicrosoftvpnProxyServer

Parameters

Parameter Attribute DataType Description Allowed Values
automaticConfigurationScriptUrl Write String Proxy's automatic configuration script url.
address Write String Address.
port Write UInt32 Port. Valid values 0 to 65535.

MSFT_targetedMobileApps

Parameters

Parameter Attribute DataType Description Allowed Values
name Write String The application name.
publisher Write String The publisher of the application.
appStoreUrl Write String The Store URL of the application.
appId Write String The application or bundle identifier of the application.

MSFT_CustomData

Parameters

Parameter Attribute DataType Description Allowed Values
key Write String Key for the custom data entry.
value Write String Value for the custom data entry.

MSFT_customKeyValueData

Parameters

Parameter Attribute DataType Description Allowed Values
name Write String Name for the custom data entry.
value Write String Value for the custom data entry.

Description

This resource configures an Intune VPN Configuration Policy for iOS Device.

Permissions

Microsoft Graph

To authenticate with the Microsoft Graph API, this resource required the following permissions:

Delegated permissions

  • Read

    • Group.Read.All, DeviceManagementConfiguration.Read.All
  • Update

    • Group.Read.All, DeviceManagementConfiguration.ReadWrite.All

Application permissions

  • Read

    • Group.Read.All, DeviceManagementConfiguration.Read.All
  • Update

    • Group.Read.All, DeviceManagementConfiguration.ReadWrite.All

Examples

Example 1

This example is used to test new resources and showcase the usage of new resources being worked on. It is not meant to use as a production baseline.

Configuration Example
{
    param(
        [Parameter()]
        [System.String]
        $ApplicationId,

        [Parameter()]
        [System.String]
        $TenantId,

        [Parameter()]
        [System.String]
        $CertificateThumbprint
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneVPNConfigurationPolicyIOS "IntuneVPNConfigurationPolicyIOS-Example"
        {
            ApplicationId         = $ApplicationId;
            TenantId              = $TenantId;
            CertificateThumbprint = $CertificateThumbprint;
            Assignments            = @();
            associatedDomains      = @();
            authenticationMethod   = "usernameAndPassword";
            connectionName         = "IntuneVPNConfigurationPolicyIOS-ConnectionName";
            connectionType         = "ciscoAnyConnectV2";
            Description            = "IntuneVPNConfigurationPolicyIOS-Example Description";
            DisplayName            = "IntuneVPNConfigurationPolicyIOS-Example";
            enableSplitTunneling   = $False;
            Ensure                 = "Present";
            excludedDomains        = @();
            excludeList            = @();
            Id                     = "ec5432ff-d536-40cb-ba0a-e16260b01382";
            optInToDeviceIdSharing = $True;
            proxyServer            = @(
                MSFT_MicrosoftvpnProxyServer{
                    port = 80
                    automaticConfigurationScriptUrl = 'https://www.test.com'
                    address = 'proxy.test.com'
                }
            );
            safariDomains          = @();
            server                 = @(
                MSFT_MicrosoftGraphvpnServer{
                    isDefaultServer = $True
                    description = 'server'
                    address = 'vpn.test.com'
                }
            );
            targetedMobileApps     = @();
        }
    }
}

Example 2

This example is used to test new resources and showcase the usage of new resources being worked on. It is not meant to use as a production baseline.

Configuration Example
{
    param(
        [Parameter()]
        [System.String]
        $ApplicationId,

        [Parameter()]
        [System.String]
        $TenantId,

        [Parameter()]
        [System.String]
        $CertificateThumbprint
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneVPNConfigurationPolicyIOS "IntuneVPNConfigurationPolicyIOS-Example"
        {
            ApplicationId         = $ApplicationId;
            TenantId              = $TenantId;
            CertificateThumbprint = $CertificateThumbprint;
            Assignments            = @();
            associatedDomains      = @();
            authenticationMethod   = "usernameAndPassword";
            connectionName         = "IntuneVPNConfigurationPolicyIOS-ConnectionName";
            connectionType         = "ciscoAnyConnectV2";
            Description            = "IntuneVPNConfigurationPolicyIOS-Example Description";
            DisplayName            = "IntuneVPNConfigurationPolicyIOS-Example";
            enableSplitTunneling   = $False;
            Ensure                 = "Present";
            excludedDomains        = @();
            excludeList            = @();
            Id                     = "ec5432ff-d536-40cb-ba0a-e16260b01382";
            optInToDeviceIdSharing = $True;
            proxyServer            = @(
                MSFT_MicrosoftvpnProxyServer{
                    port = 80
                    automaticConfigurationScriptUrl = 'https://www.test.com'
                    address = 'proxy.test.com'
                }
            );
            safariDomains          = @();
            server                 = @(
                MSFT_MicrosoftGraphvpnServer{
                    isDefaultServer = $True
                    description = 'server'
                    address = 'vpn.newAddress.com' #updated VPN address
                }
            );
            targetedMobileApps     = @();
        }
    }
}

Example 3

This example is used to test new resources and showcase the usage of new resources being worked on. It is not meant to use as a production baseline.

Configuration Example
{
    param(
        [Parameter()]
        [System.String]
        $ApplicationId,

        [Parameter()]
        [System.String]
        $TenantId,

        [Parameter()]
        [System.String]
        $CertificateThumbprint
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        IntuneVPNConfigurationPolicyIOS "IntuneVPNConfigurationPolicyIOS-Example"
        {
            ApplicationId         = $ApplicationId;
            TenantId              = $TenantId;
            CertificateThumbprint = $CertificateThumbprint;
            DisplayName            = "IntuneVPNConfigurationPolicyIOS-Example";
            Ensure                 = "Absent";
        }
    }
}