Add WebAuthn/Passkey selector support in config flows for integrations #2519
Unanswered
holyhope
asked this question in
Core functionality
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Describe your core improvement
Summary
Add a new WebAuthnSelector to the config flow system that allows integrations to request WebAuthn/Passkey authentication from users during setup or reauthentication.
Proposed Solution
Add a new selector type that works within
async_show_form:Backend (homeassistant/helpers/selector.py):
Alternative Considered
Using
async_external_stepto redirect to a custom HTML page that handlesWebAuthn. This works but:Related Discussions
Community: WebAuthn authentication (passkeys, security keys)
Architecture: Open letter for improving Home Assistant's Authentication system #832
Current limitations
Some third-party services now require or support
FIDO2/WebAuthnsecurity keys for authentication.For example:
pyicloudlibrary already exposes WebAuthn challenge data (security_key_names,fsaChallenge) and can verify assertions.Currently, the
icloudintegration cannot support users with security keys enabled on their Apple accounts because:navigator.credentials.get())WebAuthnSelectorthat can pass challenge data to the frontend and receive signed assertions back.@SELECTORS.register("webauthn")class WebAuthnSelector(Selector[WebAuthnSelectorConfig]):
"""Selector for WebAuthn/Passkey authentication."""
Beta Was this translation helpful? Give feedback.
All reactions