PayloadKit

Wi-Fi

com.apple.wifi.managed

The payload that configures Wi-Fi settings.

iOSmacOStvOS
macOS 10.7+iOS 4.0+combined

Configuration Keys (29)

KeyTypeTitle
PFC_InterfaceSelectorrequired

Type of network interface on the device.

Range: Wi-Fi (BuiltInWireless), Legacy Hotspot (Hotspot), Passpoint (Hotspot2)

stringNetwork Interface
IsHotspot

If 'true', the device treats the network as a hotspot.

Depends on: PFC_InterfaceSelector

Default: false

booleanIs Hotspot
SSID_STR

The SSID of the Wi-Fi network to use. In iOS 7.0 and later, the SSID is optional if a value exists for 'DomainName' value.

Depends on: PFC_InterfaceSelector; DomainName not set

stringService Set Identifier (SSID)
HIDDEN_NETWORK

If 'true', defines this network as hidden.

Default: false

booleanHidden Network
AutoJoin

If 'true', the device joins the network automatically. If 'false', the user must tap the network name to join it.

Default: true

booleanAuto Join
CaptiveBypass

If 'true', the system bypasses Captive Network detection when the device connects to the network.

Default: false

booleanDisable Captive Network Detection
DisableAssociationMACRandomization

If 'true,' disables MAC address randomization for a Wi-Fi network while associated with that network. This feature also shows a privacy warning in Settings indicating that the network has reduced privacy protections. If 'false', then the system enables MAC address randomization on iOS, watchOS, and visionOS. This value is only locked when MDM installs the profile. If the profile is manually installed, the system sets the value but the user can change it.

Default: false

booleanDisable MAC address randomization during association
EnableIPv6

If 'true', enables IPv6 on this interface.

Default: true

booleanEnable IPv6
ProxyType

The proxy type, if any, to use. If you choose the manual proxy type, you need the proxy server address, including its port and optionally a user name and password into the proxy server. If you choose the auto proxy type, you can enter a proxy autoconfiguration (PAC) URL.

Default: "None"

Range: None, Manual, Auto

stringProxy Type
ProxyServer

The proxy server's network address.

Depends on: ProxyType ∈ [Manual]; ProxyType

stringProxy Server
ProxyServerPort

The proxy server's port number.

Depends on: ProxyType ∈ [Manual]; ProxyType

Range: 0 – 65535

integerProxy Server Port
ProxyUsername

The user name used to authenticate to the proxy server.

stringProxy Username
ProxyPassword

The password used to authenticate to the proxy server.

stringProxy Password
ProxyPACURL

The URL of the PAC file that defines the proxy configuration.

stringProxy PAC URL
ProxyPACFallbackAllowed

If 'true', allows connecting directly to the destination if the PAC file is unreachable.

Default: false

booleanProxy PAC Fallback Allowed
EncryptionType

The encryption type for the network. If set to anything except 'None', the payload may contain the following three keys: 'Password', 'PayloadCertificateUUID', or 'EAPClientConfiguration'. As of iOS 16, tvOS 16, watchOS 9, and macOS 13: - 'WPA' allows joining WPA or WPA2 networks - 'WPA2' allows joining WPA2 or WPA3 networks - 'WPA3' allows joining WPA3 networks only - 'Any' allows joining WPA, WPA2, WPA3, and WEP networks Prior to iOS 16, tvOS 16, and watchOS 9, specifying 'WPA', 'WPA2', and 'WPA3' were equivalent and would allow joining any WPA network. Prior to macOS 13, the encryption type, if specified explicitly, needed to match the encryption type of the network exactly.

Default: "Any"

Range: WEP (WEP), WPA and WPA2 (WPA), WPA2 and WPA3 (WPA2), WPA3 (WPA3), Any (Any), None (None)

stringEncryption Type
Password

The password for the access point.

stringPassword
DisplayedOperatorName

The operator name to display when connected to this network. Used only with Wi-Fi Hotspot 2.0 access points.

Depends on: PFC_InterfaceSelector ∈ [Hotspot2]

stringDisplayed Operator Name
DomainName

The primary domain of the tunnel.

Depends on: PFC_InterfaceSelector ∈ [Hotspot2]

stringDomain Name
ServiceProviderRoamingEnabled

If 'true', allows connection to roaming service providers.

Default: false

booleanRoaming Enable
RoamingConsortiumOIs

An array of Roaming Consortium Organization Identifiers used for Wi-Fi Hotspot 2.0 negotiation.

arrayRoaming OIs
NAIRealmNames

An array of Network Access Identifier Realm names used for Wi-Fi Hotspot 2.0 negotiation.

arrayRealm Names
MCCAndMNCs

An array of Mobile Country Code/Mobile Network Code (MCC/MNC) pairs used for Wi-Fi Hotspot 2.0 negotiation. Each string must contain exactly six digits.

arrayMCC/MNCs
HESSID

The HESSID used for Wi-Fi Hotspot 2.0 negotiation.

stringHomogenous Extended Service Set Identifier (HESSID)
SetupModes

An array of strings that contain the type of connection mode to attach.

arrayEAP Setup Modes
EAPClientConfiguration

The enterprise network configuration.

dictEAP Client Configuration
QoSMarkingPolicy

A dictionary that contains the list of apps that the system allows to benefit from L2 and L3 marking. When this dictionary isn't present, the system allows all apps to use L2 and L3 marking when the Wi-Fi network supports Cisco QoS fast lane.

dictQoS Marking Policy
PayloadCertificateUUID

The UUID of the certificate payload within the same profile to use for the client credential.

Depends on: EAPClientConfiguration.AcceptEAPTypes

stringCertificate UUID
TLSCertificateRequired

If 'true', allows for two-factor authentication for EAP-TTLS, PEAP, or EAP-FAST. If 'false', allows for zero-factor authentication for EAP-TLS.

Default: false

booleanCertificate Required
RoamingConsortiumOI
string
NAIRealmName
string
MCCAndMNC
string
SetupModesItemrequired

A type of connection mode.

Range: System (System), Login Window (Loginwindow)

stringSetup Mode
AcceptEAPTypesrequired

The EAP types that the system accepts. Allowed values: - '13': EAP-TLS - '17': LEAP - '18': EAP-SIM - '21': EAP-TTLS - '23': EAP-AKA - '25': PEAPv0/v1 - '43': EAP-FAST For EAP-TLS authentication without a network payload, install the necessary identity certificates and have your users select EAP-TLS mode in the 802.1X credentials dialog that appears when they connect to the network. For other EAP types, a network payload is necessary and must specify the correct settings for the network.

arrayAccept EAP Types
UserName

The user name for the account. If you don't specify a value, the system prompts the user during login.

stringUsername
UserPassword

The user's password. If you don't specify a value, the system prompts the user during login.

Depends on: EAPClientConfiguration.AcceptEAPTypes; EAPClientConfiguration.OneTimeUserPassword

stringPassword
OneTimeUserPassword

If 'true', the user receives a prompt for a password each time they connect to the network.

Default: false

booleanPer-Connection Password
PayloadCertificateAnchorUUID

An array of the UUID of each certificate payload in the same profile to trust for authentication. Use this key to prevent the device from asking the user whether to trust the listed certificates. Dynamic trust (the certificate dialogue) is in a disabled state if you specify this property without also enabling 'TLSAllowTrustExceptions'.

arrayCertificate Anchor UUID
TLSTrustedServerNames

The list of accepted server certificate common names. If a server presents a certificate that isn't in this list, the system doesn't trust it. If you specify this property, the system disables dynamic trust (the certificate dialog) unless you also specify 'TLSAllowTrustExceptions' with the value 'true'. If necessary, use wildcards to specify the name, such as 'wpa.*.example.com'.

arrayTLS Trusted Server Names
TLSAllowTrustExceptions

If 'true', allows a dynamic trust decision by the user. The dynamic trust is the certificate dialogue that appears when the system doesn't trust a certificate. If 'false', the authentication fails if the system doesn't already trust the certificate. As of iOS 8, Apple no longer supports this key.

Default: true

booleanAllow Trust Exceptions
TTLSInnerAuthentication

The inner authentication that the TTLS module uses.

Depends on: EAPClientConfiguration.AcceptEAPTypes

Default: "MSCHAPv2"

Range: PAP, EAP, CHAP, MSCHAP, MSCHAPv2

stringTTLS Inner Authentication
OuterIdentity

A name that hides the user's true name. The user's actual name appears only inside the encrypted tunnel. For example, you might set this to anonymous or anon, or anon@mycompany.net. It can increase security because an attacker can't see the authenticating user's name in the clear. This key is only relevant to TTLS, PEAP, and EAP-FAST. This field is required if 'TLSMinimumVersion' is '1.3'.

Depends on: EAPClientConfiguration.TLSMinimumVersion ∈ [1.3]

stringOuter Identity
TLSMinimumVersion

The minimum TLS version for EAP authentication.

Default: "1.0"

Range: 1.0, 1.1, 1.2, 1.3

stringTLS Minimum Version
TLSMaximumVersion

The maximum TLS version for EAP authentication.

Default: "1.2"

Range: 1.0, 1.1, 1.2, 1.3

stringTLS Maximum Version
EAPFASTUsePAC

If 'true', the device uses an existing PAC if it's present. Otherwise, the server must present its identity using a certificate.

Default: false

booleanUse PAC
EAPFASTProvisionPAC

If 'true', allows PAC provisioning. This value is only applicable if 'EAPFASTUsePAC' is 'true'. This value must be 'true' for EAP-FAST PAC usage to succeed because there's no other way to provision a PAC.

Depends on: EAPClientConfiguration.AcceptEAPTypes; EAPClientConfiguration.EAPFASTUsePAC ∈ [true]

Default: false

booleanProvision PAC
EAPFASTProvisionPACAnonymously

If 'true', provisions the device anonymously. Note that there are known machine-in-the-middle attacks for anonymous provisioning.

Default: false

booleanProvision PAC Anonymously
EAPSIMNumberOfRANDs

The minimum number of RAND values to accept from the server. For use with EAP-SIM only.

Default: 3

Range: 2, 3

integerAllow Two RANDs
SystemModeCredentialsSource

Set this string to 'ActiveDirectory' to use the AD computer name and password credentials. If using this property, you can't use 'SystemModeUseOpenDirectoryCredentials'.

Range: Active Directory (ActiveDirectory)

stringSystem Profile Credentials Source
SystemModeUseOpenDirectoryCredentials

If 'true', the system mode connection tries to use the Open Directory credentials. If using this property, you can't use 'SystemModeCredentialsSource'.

Default: false

booleanUse OpenDirectory System Profile Credentials
TLSTrustedCertificates

An array of trusted certificates. Each entry in the array must contain certificate data that represents an anchor certificate used for verifying the server certificate.

arrayTLS Trusted Certificates
TLSCertificateIsRequired

If 'true', allows for two-factor authentication for EAP-TTLS, PEAP, or EAP-FAST. If 'false', allows for zero-factor authentication for EAP-TLS. If you don't specify a value, the default is 'true' for EAP-TLS, and 'false' for other EAP types.

Default: false

boolean
EAPType

An integer representing an EAP type, inside of the Accept EAP Types array.

Range: TLS (13), LEAP (17), EAP-SIM (18), TTLS (21), EAP-AKA (23), PEAP (25), EAP-FAST (43)

integerEAP Type
CertificateAnchorUUID

A UUID for a trusted certificate

stringIndividual Certificate Anchor UUID
TLSTrustedServerName

An item in the TLS Trusted Server Names array representing a Common Name of a server certificate.

stringIndividual Trusted TLS Server Name
TLSTrustedCertificatesItemrequired

A certificate identifier.

string
QoSMarkingEnabled

If 'true', disables L3 marking and only uses L2 marking for traffic that goes to the Wi-Fi network. If 'false', the system behaves as if Wi-Fi doesn't have an association with a Cisco QoS fast lane network.

Default: true

booleanAllow QoS marking
QoSMarkingAppleAudioVideoCalls

If 'true', adds audio and video traffic of built-in audio or video services, such as FaceTime and Wi-Fi Calling, to the allow list for L2 and L3 marking for traffic that goes to the Wi-Fi network.

Default: true

booleanQoS marking for audio or video calls
QoSMarkingAllowListAppIdentifiers

An array of app bundle identifiers that defines the allow list for L2 and L3 marking for traffic that goes to the Wi-Fi network. If the array isn't present, but the 'QoSMarkingPolicy' key is present — even empty — no apps can use L2 and L3 marking.

arrayAllowlisted App Identifiers
QoSMarkingWhitelistedAppIdentifiers

Use 'QoSMarkingAllowListAppIdentifiers' instead.

arrayWhitelisted App Identifiers
appBundleID
stringAllowlisted App
appBundleID
stringAllowlisted App