Rollt das Passkey-only-Setup aus #115/#118 auf zwei weitere Apps aus: die OAuth2-Provider Audiobookshelf und immich-oauth-provider werden an passkey-passwordless-authentication (authentication_flow, inkl. Passkey-Autofill) und passkey-stepup-authorization (authorization_flow) gebunden. Keine neuen Flows/Stages — nur zwei zusätzliche Provider-Entries im bestehenden Blueprint.
Live-Verifikation (2026-07-07)
Provider-Pflichtfelder (client_type, redirect_uris, invalidation_flow) 1:1 aus dem Live-Stand gespiegelt — ab Merge besitzt Git diese Felder (wie bei HA/NetBird).
Nutzerabdeckung: Audiobookshelf Users = k.renner, s.renner (beide mit Passkeys). Immich Users = g.renner, i.birzer, k.renner, s.renner — g.renner hat keinen Passkey und bekommt beim ersten Zugriff das Inline-Enrollment über die Step-up-Stage (configure), kein Lockout.
Mobile-Apps: beide Clients (ABS mobile-redirect, Immich app.immich:///oauth-callback) machen den OIDC-Login im System-Browser — WebAuthn funktioniert dort.
Validierung nach Merge
DB: beide Provider zeigen auf die Passkey-Flows
Authorize-Probe: unauthentifizierter Redirect landet im Passwordless-Flow
## Was
Rollt das Passkey-only-Setup aus #115/#118 auf zwei weitere Apps aus: die OAuth2-Provider **Audiobookshelf** und **immich-oauth-provider** werden an `passkey-passwordless-authentication` (authentication_flow, inkl. Passkey-Autofill) und `passkey-stepup-authorization` (authorization_flow) gebunden. Keine neuen Flows/Stages — nur zwei zusätzliche Provider-Entries im bestehenden Blueprint.
## Live-Verifikation (2026-07-07)
- Provider-Pflichtfelder (client_type, redirect_uris, invalidation_flow) 1:1 aus dem Live-Stand gespiegelt — ab Merge besitzt Git diese Felder (wie bei HA/NetBird).
- Nutzerabdeckung: *Audiobookshelf Users* = k.renner, s.renner (beide mit Passkeys). *Immich Users* = g.renner, i.birzer, k.renner, s.renner — g.renner hat keinen Passkey und bekommt beim ersten Zugriff das Inline-Enrollment über die Step-up-Stage (`configure`), kein Lockout.
- Mobile-Apps: beide Clients (ABS `mobile-redirect`, Immich `app.immich:///oauth-callback`) machen den OIDC-Login im System-Browser — WebAuthn funktioniert dort.
## Validierung nach Merge
1. DB: beide Provider zeigen auf die Passkey-Flows
2. Authorize-Probe: unauthentifizierter Redirect landet im Passwordless-Flow
3. Ein echter Login pro App (Web reicht)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Bindet die OAuth2-Provider Audiobookshelf und immich-oauth-provider
an den Passwordless-Authentication-Flow (Passkey-Autofill inklusive)
und den Step-up-Authorization-Flow — gleiche Mechanik wie Home
Assistant und NetBird (#115/#118). Pflichtfelder (invalidation_flow,
client_type, redirect_uris) spiegeln den Live-Stand vom 2026-07-07.
Nutzerabdeckung geprüft: Audiobookshelf Users (k.renner, s.renner)
haben Passkeys; Immich Users enthält g.renner ohne Passkey — sie
bekommt beim ersten Zugriff das Inline-Enrollment über die Step-up-
Stage (configure), kein Lockout.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Beide Provider (nur k.renner via Infrastructure Admins, 4 Passkeys
enrolled) an den Passwordless- und Step-up-Flow gebunden; Live-Stand
der Pflichtfelder gespiegelt. PVE, PBS und paperless-gate bleiben
bewusst auf Passwort+MFA.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Was
Rollt das Passkey-only-Setup aus #115/#118 auf zwei weitere Apps aus: die OAuth2-Provider Audiobookshelf und immich-oauth-provider werden an
passkey-passwordless-authentication(authentication_flow, inkl. Passkey-Autofill) undpasskey-stepup-authorization(authorization_flow) gebunden. Keine neuen Flows/Stages — nur zwei zusätzliche Provider-Entries im bestehenden Blueprint.Live-Verifikation (2026-07-07)
configure), kein Lockout.mobile-redirect, Immichapp.immich:///oauth-callback) machen den OIDC-Login im System-Browser — WebAuthn funktioniert dort.Validierung nach Merge
🤖 Generated with Claude Code