Passkey WebAuthN Login Support #422

Open
opened 2026-04-05 16:31:44 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @marcusyuri on 2/3/2026

NetBox version

v4.5.2

Feature type

New functionality

Proposed functionality

Implement passkey support - WebAuthN, to allow users authenticate with netbox using passwordless methods, like fingerprints, face id.

Django framework already has libraries that support this. The suggested library is Django OTP WebAuthN.

Use case

Passkeys are a secure and user-friendly authentication method that can serve as an alternative to or be used alongside traditional authentication methods, such as usernames and passwords. Passkeys provide a simpler and more secure login experience by leveraging the device's locking mechanism, whether based on biometrics (e.g., Face ID, Touch ID, or fingerprint), PIN code, or another method.

With passkeys, users can sign in without remembering passwords, making the login experience faster and safer, using what the user has (biometrics), instead of what the user knows and needs to memorize (passwords).

Major companies like Google, Microsoft, Apple, Adobe have implemented passkey support and allow their users to authenticate to their services using passkeys.

Database changes

New database tables, or change existing user tables, to store attestation and credential information. The suggested database model can be found in Link

External dependencies

Djanto OTP WebAuthn Libraries Link

*Originally created by @marcusyuri on 2/3/2026* ### NetBox version v4.5.2 ### Feature type New functionality ### Proposed functionality Implement passkey support - WebAuthN, to allow users authenticate with netbox using passwordless methods, like fingerprints, face id. Django framework already has libraries that support this. The suggested library is Django OTP WebAuthN. ### Use case Passkeys are a secure and user-friendly authentication method that can serve as an alternative to or be used alongside traditional authentication methods, such as usernames and passwords. Passkeys provide a simpler and more secure login experience by leveraging the device's locking mechanism, whether based on biometrics (e.g., Face ID, Touch ID, or fingerprint), PIN code, or another method. With passkeys, users can sign in without remembering passwords, making the login experience faster and safer, using what the user has (biometrics), instead of what the user knows and needs to memorize (passwords). Major companies like Google, Microsoft, Apple, Adobe have implemented passkey support and allow their users to authenticate to their services using passkeys. ### Database changes New database tables, or change existing user tables, to store attestation and credential information. The suggested database model can be found in [Link](https://django-otp-webauthn.readthedocs.io/en/latest/reference/models.html#models) ### External dependencies Djanto OTP WebAuthn Libraries [Link](https://django-otp-webauthn.readthedocs.io/en/latest/getting_started/quickstart.html#quickstart)
MrUnknownDE added the complexity: highstatus: backlogcomplexity: hightype: featurenetboxcomplexity: highcomplexity: highstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlogstatus: backlognetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxtype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: feature labels 2026-04-05 16:31:51 +02:00
Sign in to join this conversation.
No Label complexity: high complexity: high complexity: high complexity: high netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog status: backlog type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/netbox#422