<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "DeviceManagement",
  "identifier" : "/documentation/DeviceManagement/NetworkVPNVPNPlugin",
  "metadataVersion" : "0.1.0",
  "role" : "Object",
  "symbol" : {
    "kind" : "Object",
    "modules" : [
      "Device Management"
    ],
    "preciseIdentifier" : "rmdm-declarations:NetworkVPNVPNPlugin"
  },
  "title" : "NetworkVPNVPNPlugin"
}
-->

# NetworkVPNVPNPlugin

The declaration to configure a VPN using the VPN plugin sub-type.

```
object NetworkVPNVPNPlugin
```

## Discussion

Specify `com.apple.configuration.network.vpn.vpn-plugin` as the declaration type.

### Configuration availability

|||
|--------------------------------|----------------------------------------------|
|Allowed in supervised enrollment|iOS, macOS, Shared iPad, tvOS, visionOS       |
|Allowed in device enrollment    |iOS, Shared iPad, tvOS, visionOS              |
|Allowed in user enrollment      |N/A                                           |
|Allowed in local enrollment     |iOS, macOS, Shared iPad, tvOS, visionOS       |
|Allowed in system scope         |iOS, macOS, Shared iPad, tvOS, visionOS       |
|Allowed in user scope           |N/A                                           |
|Apply                           |Multiple configurations are applied separately|

### Configuration examples

**Password:**

This configuration sets up a VPN plugin using username and password credentials from an asset.

```json
{
    "Type": "com.apple.configuration.network.vpn.vpn-plugin",
    "Identifier": "EB13EE2B-5D63-4EBA-810F-5B81D07F5017",
    "ServerToken": "E180CA9A-F089-4FA3-BBDF-94CC159C4AE8",
    "Payload": {
        "VisibleName": "Corporate VPN",
        "HostName": "vpn.example.com",
        "SubType": "com.example.vpn.plugin",
        "Authentication": {
            "Method": "Password",
            "CredentialsAssetReference": "64BF8F5C-8CFD-40AA-9082-A0B594D4E100"
        }
    }
}
```

**Certificate:**

This configuration sets up a VPN plugin using a certificate identity asset for authentication.

```json
{
    "Type": "com.apple.configuration.network.vpn.vpn-plugin",
    "Identifier": "2A3B4C5D-6E7F-8A9B-0C1D-2E3F4A5B6C7D",
    "ServerToken": "F1E2D3C4-B5A6-7890-ABCD-EF1234567890",
    "Payload": {
        "VisibleName": "Corporate VPN (Certificate)",
        "HostName": "vpn.example.com",
        "SubType": "com.example.vpn.plugin",
        "Authentication": {
            "Method": "Certificate",
            "IdentityAssetReference": "CB3E6C7F-2318-437B-8A9E-D50C69376DE4"
        }
    }
}
```

## Topics

### Objects

[`NetworkVPNVPNPluginAuthenticationObject`](/documentation/DeviceManagement/NetworkVPNVPNPluginAuthenticationObject)

Settings that control authentication.

[`NetworkVPNVPNPluginDNSObject`](/documentation/DeviceManagement/NetworkVPNVPNPluginDNSObject)

A dictionary to use for all VPN types.

[`NetworkVPNVPNPluginIdleObject`](/documentation/DeviceManagement/NetworkVPNVPNPluginIdleObject)

Specifies details about how the system handles idle VPN connections.

[`NetworkVPNVPNPluginNetworkRoutingObject`](/documentation/DeviceManagement/NetworkVPNVPNPluginNetworkRoutingObject)

Specifies details about how the VPN routes different types of network traffic.

[`NetworkVPNVPNPluginOnDemandObject`](/documentation/DeviceManagement/NetworkVPNVPNPluginOnDemandObject)

Specifies details about how the system controls on-demand VPN.

[`NetworkVPNVPNPluginProviderObject`](/documentation/DeviceManagement/NetworkVPNVPNPluginProviderObject)

Specifies details about the provider.

[`NetworkVPNVPNPluginProxiesObject`](/documentation/DeviceManagement/NetworkVPNVPNPluginProxiesObject)

The dictionary to use to configure `Proxies` for use with `VPN`.

[`NetworkVPNVPNPluginVendorConfigObject`](/documentation/DeviceManagement/NetworkVPNVPNPluginVendorConfigObject)

The vendor-specific configuration dictionary, which the system reads only when `SubType` has a value.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)