WebContentFilter
The payload that configures web content filters.
Declaration
object WebContentFilterProperties
| Name | Type | Description |
|---|---|---|
AllowListBookmarks | [WebContentFilter.AllowListBookmarksItem] | An array of dictionaries that define the pages that the user can bookmark or visit. Use when |
AutoFilterEnabled | boolean | If |
BlacklistedURLs | [string] | Use |
ContentFilterUUID | string | A globally unique identifier for this content filter configuration. The content filter processes network traffic for managed apps with the same |
DenyListURLs | [string] | An array of URLs that are inaccessible. Use when |
FilterBrowsers | boolean | If |
FilterDataProviderBundleIdentifier | string | The bundle identifier string of the filter data provider system extension. This string identifies the filter data provider when the filter starts running. Required if |
FilterDataProviderDesignatedRequirement | string | The designated requirement string that the system embeds in the code signature of the filter data provider system extension. This string identifies the filter data provider when the filter starts running. Required if |
FilterGrade | string | The system uses this value to derive the relative order of content filters. Filters with a grade of |
FilterPacketProviderBundleIdentifier | string | The bundle identifier string of the filter packet provider system extension. This string identifies the filter packet provider when the filter starts running. Required if |
FilterPacketProviderDesignatedRequirement | string | The designated requirement string that the system embeds in the code signature of the filter packet provider system extension. This string identifies the filter packet provider when the filter starts running. Required if |
FilterPackets | boolean | If |
FilterSockets | boolean | If |
FilterType | string | The type of filter, built-in or plug-in. In macOS, the system only supports the plug-in value. |
FilterURLs | boolean | If |
HideDenyListURLs | boolean | If |
Organization | string | The organization string to pass to the third-party plug-in. Use when |
Password | string | The password for the service. Use when |
PayloadCertificateUUID | string | The UUID of the certificate payload within the same profile that the system uses to authenticate the user. Use when |
PermittedURLs | [string] | An array or URLs that are accessible whether or not the automatic filter allows access. Use when |
PluginBundleID | string | The bundle ID of the plug-in that provides filtering service. Required when |
SafariHistoryRetentionEnabled | boolean | If |
ServerAddress | string | The server address, which may be the IP address, hostname, or URL. Use when |
URLFilterParameters | WebContentFilter.URLFilterParameters | A dictionary containing URL filter parameters. Required when |
UserDefinedName | string | The display name for this filtering configuration. Required when |
UserName | string | The user name for the service. Use when |
VendorConfig | WebContentFilter.VendorConfig | The custom dictionary that the filtering service plug-in needs. Use when |
WhitelistedBookmarks | [WebContentFilter.WhitelistedBookmarksItem] | Use |
Discussion
Specify com.apple.webcontent-filter as the payload type.
The system matches URLs using string-based matching. A URL matches an allow list, deny list, or permitted list pattern if the exact characters of the pattern appear as a substring of the URL requested in the web browser. For example, if the system doesn’t allow test.com/a, it blocks test.com/a, test.com/apple, and test.com/a/b.
The system matches list entries that terminate with a / character explicitly; if the system blocks or allows test.com/a/, it blocks or allows test.com/a and test.com/a/b.
Matching discards a www subdomain prefix if present, so if the system doesn’t allow www.test.com, it also blocks m.test.com.
All filtering options are active simultaneously. The system only permits URLs and sites that pass all rules.
Profile availability
Device channel | iOS, macOS, Shared iPad, visionOS |
User channel | NA |
Allow manual install | iOS, macOS, visionOS |
Requires supervision | NA |
Requires user-approved MDM | NA |
Allowed in user enrollment | iOS, visionOS |
Allow multiple payloads | iOS, macOS, Shared iPad, visionOS |
Profile example
<?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>PayloadContent</key>
<array>
<dict>
<key>AutoFilterEnabled</key>
<true/>
<key>DenylistURLs</key>
<array>
<string>https://notallowedname.company.com</string>
</array>
<key>FilterBrowsers</key>
<true/>
<key>FilterSockets</key>
<true/>
<key>FilterType</key>
<string>BuiltIn</string>
<key>PermittedURLs</key>
<array>
<string>https://example.company.com</string>
</array>
<key>PayloadIdentifier</key>
<string>com.example.mywebcontentfilterpayload</string>
<key>PayloadType</key>
<string>com.apple.webcontent-filter</string>
<key>PayloadUUID</key>
<string>fb5d598f-0a96-4b77-9702-9edfc3417601</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Web Content Filter</string>
<key>PayloadIdentifier</key>
<string>com.example.myprofile</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>b510e0c6-dc81-4b62-88d0-6a3ef82925e7</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>