Authentication with Passkeys in iOS 16.4 does not work as expected.

Hi, In order to use Passkeys and Security Keys during authentication we create two requests (ASAuthorizationPlatformPublicKeyCredentialAssertionRequest and ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest) and passing them to ASAuthorizationController. Then after performRequests call we got the Passkey UI with option to use Security Key as well as desired for devices before iOS 16.4.

But the same code in iOS 16.4 device does not show Passkey as option at all. Only Security Key and passkey on other device via QR code options are available in the UI.

If we don’t pass Security Key request, then Passkey is asked and authentication works. If we pass Security Key request but don’t include any allowedCredentials then Passkey is asked and authentication works. But if I select Security Key option then it is not working (system UI not reacting on NFC security key at all).

We assume something was broken in 16.4.

is any option to make behavior same as before?

Post not yet marked as solved Up vote post of arsen225 Down vote post of arsen225
977 views

Replies

i have same issue

Thanks for filing this through Feedback Assistant! This issue happens when mixing a request that specifies an allow list item using transports with another allow list item that doesn't set transports. A temporary workaround is to either not set transports in the allow list, or to fully specify transports for all allow list items.

Hi, Actually the ASAuthorizationPlatformPublicKeyCredentialDescriptor has no interface to specify transports. The transports can be specified to Security Key credential only.

So the only workaround is to not pass transports to Security Key allow credential.