Skip to main content
Passkeys require a verified association between your native app and its relying party domain. Configure the platform association file, app signing, and the OwnID Console before adding an authentication or enrollment flow.
OwnID Android SDK supports API 23+, but Android passkeys require API 28+.
OwnID iOS SDK supports iOS 13+, but passkeys require iOS 16+.

Configure your platform

OwnID uses Android Credential Manager for passkey creation and authentication.
1

Add Credential Manager

Use the current AndroidX Credentials version for both artifacts:Latest stable AndroidX Credentials version
build.gradle.kts
See the AndroidX Credentials release notes for version-specific changes.
2

Publish Digital Asset Links

Host assetlinks.json at this exact URL:
The endpoint must be public over HTTPS, return HTTP 200 with a JSON content type, and must not redirect. Allow automated retrieval of /.well-known/assetlinks.json; if the domain uses robots.txt, make sure it does not block /.well-known/.
assetlinks.json
3

Cover every signed app variant

Add an entry for every application ID and SHA-256 signing certificate that should use passkeys, including relevant debug, release, and product-flavor builds.You can inspect a keystore certificate with:
See Android’s Credential Manager prerequisites and Digital Asset Links guidance for validation requirements.

Configure the OwnID Console

Use the Android application ID and signing certificate fingerprint or iOS bundle ID that corresponds to the values in each association file.
1

Open the native app settings

Sign in to the OwnID Console, open your application, and go to Integration > Native Apps.
OwnID Console Native Apps configuration screen

Native Apps configuration in the OwnID Console

2

Add platform identifiers

Enter the Android application ID and SHA-256 signing certificate fingerprint. They must match an entry in assetlinks.json.
3

Save the configuration

Save your changes before testing passkey creation or authentication.

Verify the association

The association files must be publicly accessible in every environment where passkeys are tested or used. The endpoints must not require a password, Basic Auth, SSO, cookies, VPN access, mTLS, an IP allowlist, or an interactive WAF or bot-protection challenge.
Verify the association files on the exact HTTPS host used as the relying party domain.
Fetch the association file directly without following redirects:
Confirm that the endpoint:
  • Returns HTTP 200 with Content-Type: application/json
  • Does not redirect
  • Returns valid JSON rather than an HTML login or error page
  • Is accessible from a public network without authentication or VPN access
  • Allows automated retrieval and is not blocked by robots.txt
Confirm that the Android application ID and certificate fingerprints match the installed build and the OwnID Console configuration.Validate the hosted file with Google’s Statement List Generator and Tester. Select Credential Sharing as the relation type.

Allow time for updates

Association files may be cached by your hosting provider, CDN, and the platform verification services. Updating the file on the origin server does not guarantee that Android or Apple devices receive the new version immediately. Inspect the response headers for each association file:
Review Cache-Control, Age, Expires, ETag, and Last-Modified. Avoid long cache lifetimes, such as one week, if you expect to update the association files. A long max-age can keep an earlier version valid after the origin file has changed.
  • Google Digital Asset Links determines statement validity from the underlying data TTL, subject to implementation limits. The Digital Asset Links API returns maxAge, which indicates how much longer its result should be considered valid.
  • Apple’s CDN normally requests the apple-app-site-association file within 24 hours. Devices check for updates approximately once per week after installation. Apple does not provide manual cache invalidation. See Supporting associated domains.
After an update, first confirm that the public endpoint returns the new file and review its current cache headers. For complete platform setup and troubleshooting, see the Android SDK passkey guide or iOS SDK passkey guide.