Native support for WebAuthn and FIDO is finally here on iPhones and iPads. Yubico now offers two great user experiences on iOS using a simple tap or a physical connection. Authentication via NFC is supported by the YubiKey 5 NFC or Security Key NFC by Yubico by just tapping the YubiKey at the top of an iPhone (7 and above). Authentication via physical connection is supported by the YubiKey 5Ci by plugging the YubiKey into the Lightning or USB-C port of an iPhone or iPad.
|For developers currently supporting FIDO2 security keys using the WebAuthn standard on desktop browsers, checkout this guide Supporting U2F or FIDO2 Security Keys on iOS and iPadOS|
The above article covers two paths that developers can take for supporting YubiKeys on mobile.
1. Using the native iOS/iPadOS libraries and mobile Safari browser as of iOS 13.3 or
2. Use the Yubico iOS SDK integrated into a native app to support other features available on a YubiKey.
For path #2, get started with the Yubico iOS SDK below.
If you run into any issues during the development process, fill out a developer support ticket and our team will be happy to assist you.
The Yubico Mobile iOS SDK is an iOS library provided by Yubico to interact with YubiKeys on iOS devices.
The library supports NFC-enabled YubiKeys and the Lightning connector YubiKey 5Ci. This library provides the APIs to interact with the following features of a YubiKey:
FIDO - Provides FIDO2 operations accessible via the YKFKeyFIDO2Service.
U2F - Provides U2F operations accessible via the YKFKeyU2FService.
OATH - Allows applications, such as an authenticator app to store OATH TOTP and HOTP secrets on a YubiKey and generate one-time passwords.
OTP - Provides implementation classes to obtain YubiKey OTP via accessory (5Ci) or NFC.
RAW - Allows sending raw commands to YubiKeys over two channels: YKFKeyRawCommandService or over a PC/SC like interface.
Challenge-response - Provides a method to use HMAC-SHA1 challenge-response.
In addition, the library provides a demo application which shows a complete example of how to integrate and use all the features of the library in an iOS project.