Device attributes¶
These are the attributes you can build device assurance policy conditions from. Each attribute is only available on the platforms listed below, and the Console offers only the attributes that make sense for the platform whose rule you are editing.
The Key column shows the name of the attribute as the device reports it, and as it appears in the Policy management API. Your application must report the attributes that your policies use. See Integrate device management in your app.
Unless stated otherwise, an attribute supports only the equals operator.
Note
If a rule uses an attribute that the device didn't report, the device doesn't pass that condition, and the evaluation result reports the attribute as missing rather than as failed.
Available on every platform¶
| Attribute | Key | What it checks | Values |
|---|---|---|---|
| platform | platform |
The operating system the device runs. WSO2 Identity Platform uses this to select which rule applies, so it isn't offered when you build a rule in the Console. | android, ios, macos, windows |
| lock screen | lockScreen |
Whether the device has any screen lock configured at all. This is the broadest check for whether a device is locked when idle. | true, false |
Android¶
| Attribute | Key | What it checks | Values |
|---|---|---|---|
| Android OS Version | androidOsVersion |
The Android major version the device runs. Supports equals and greater than. |
9 through 17 |
| is rooted | isRooted |
Whether the device has been rooted, giving apps and the user unrestricted system access. A rooted device can defeat most other protections, so this is often the first condition to add. | true, false |
| USB debugging | usbDebugging |
Whether developer-mode USB debugging is turned on. When enabled, anyone with physical access and a cable can read application data and drive the device. | true, false |
| hardware keystore | hardwareKeystore |
Whether cryptographic keys are held in dedicated security hardware rather than in software. Hardware-held keys cannot be copied off the device. | true, false |
| biometric | biometric |
Whether the user has enrolled a fingerprint or a face for unlocking. | true, false |
| screen lock complexity | screenLockComplexity |
How strong the screen lock is. high means a long password or a complex PIN. low means something trivially guessable, such as a four-digit PIN or a swipe pattern. |
high, medium, low |
| disk encryption | diskEncryption |
Whether device storage is encrypted at rest, so data cannot be read by pulling the storage out of a lost or stolen device. | true, false |
| network proxies | networkProxies |
Whether a network proxy is configured. A proxy can be legitimate corporate infrastructure, but it can also be an attacker intercepting traffic. Decide which case applies in your environment before enforcing this. | true, false |
| WiFi network security | wifiNetworkSecurity |
Whether the Wi-Fi network the device is currently on is encrypted rather than an open public network. | true, false |
| Android integrity | androidIntegrity |
The verdict from Google on whether this is a genuine, unmodified Android device. Supports equals and not equals. WSO2 Identity Platform sets this attribute from the attestation result and ignores any value the device reports itself. See Device attestation. |
MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY, MEETS_BASIC_INTEGRITY, MEETS_VIRTUAL_INTEGRITY, INTEGRITY_FAILED |
iOS¶
| Attribute | Key | What it checks | Values |
|---|---|---|---|
| iOS Version | iosOsVersion |
The iOS major version the device runs. Supports equals and greater than. |
14 through 26 |
| jailbreak | jailbreak |
Whether the device has been jailbroken. Jailbreaking gives the same unrestricted access that rooting gives on Android, and is equally worth blocking. | true, false |
| passcode | passcode |
Whether the user has set a device passcode. Without one, most of the data protection in iOS does nothing. | true, false |
| Touch ID or Face ID | touchIdOrFaceId |
Whether the user has enrolled a fingerprint or a face for unlocking. | true, false |
| iOS device genuine | iosIntegrity |
The verdict from Apple on whether this is a genuine iOS device running a genuine copy of your application. WSO2 Identity Platform sets this attribute from the attestation result and ignores any value the device reports itself. See Device attestation. | true, false |
macOS¶
| Attribute | Key | What it checks | Values |
|---|---|---|---|
| macOS Version | macosOsVersion |
The macOS major version. Supports equals and greater than. |
12 through 15 |
| disk encryption | diskEncryption |
Whether FileVault is on, encrypting the disk at rest. | true, false |
| secure enclave | secureEnclave |
Whether the Mac has a Secure Enclave, the dedicated security chip that holds keys and biometric data separately from the main processor. | true, false |
Windows¶
| Attribute | Key | What it checks | Values |
|---|---|---|---|
| Windows Version | windowsOsVersion |
The Windows major version. Supports equals and greater than. |
10, 11 |
| disk encryption | diskEncryption |
Whether BitLocker is on, encrypting the drive at rest. | true, false |
| Windows Hello | windowsHello |
Whether Windows Hello, the built-in biometric or PIN sign-in, is configured. | true, false |
| Trusted Platform Module | trustedPlatformModule |
Whether a TPM is present and enabled. The TPM is the hardware that makes BitLocker and Windows Hello meaningfully secure rather than merely convenient. | true, false |
Tip
The greater than operator is exclusive. To require Android 14 or later, use Android OS Version greater than 13.