Passcode Policies
Configure password and passcode requirements for managed devices. These settings enforce device unlock security and control lockout behavior.
General Settings
| Field | Type | Description |
|---|---|---|
forcePIN | boolean | Require a passcode on the device. |
allowSimple | boolean | Allow simple repeating or ascending values (e.g., 1111, 1234, 0000). When disabled, the user must create a non-sequential, non-repeating passcode. |
requireAlphanumeric | boolean | Passcode must include both letters and numbers. |
minLength | integer | Minimum passcode length (4–16). |
minComplexChars | integer | Minimum non-alphanumeric characters required (0–4). |
Example
json
{
"forcePIN": true,
"allowSimple": false,
"requireAlphanumeric": true,
"minLength": 8,
"minComplexChars": 2
}Rotation and History
| Field | Type | Description |
|---|---|---|
maxPINAgeInDays | integer | Maximum number of days a passcode can be used before the user is forced to change it. Set to 0 for no expiration. |
pinHistory | integer | Number of previous passcodes remembered (0–50). The user cannot reuse any passcode in the history. Set to 0 to disable history enforcement. |
Lockout and Auto-Lock
| Field | Type | Description |
|---|---|---|
maxFailedAttempts | integer | Number of failed passcode attempts before the device wipes (2–11). |
maxInactivity | integer | Time in seconds of inactivity before the device locks (1–86400). |
maxGracePeriod | integer | Grace period in seconds before the passcode is required again after the first correct entry. Set to 0 for immediate. |
Platform Support
| Setting | iOS | iPadOS | macOS |
|---|---|---|---|
| forcePIN | Yes | Yes | Yes |
| allowSimple | Yes | Yes | Yes |
| requireAlphanumeric | Yes | Yes | Yes |
| minLength | Yes | Yes | Yes |
| minComplexChars | Yes | Yes | Yes |
| maxPINAgeInDays | Yes | Yes | Yes |
| pinHistory | Yes | Yes | Yes |
| maxFailedAttempts | Yes | Yes | Yes |
| maxInactivity | Yes | Yes | Yes |
| maxGracePeriod | Yes | Yes | Yes |
All passcode policy settings apply uniformly across iOS, iPadOS, and macOS.
