DEV Community

spupuz
spupuz

Posted on

How I added OIDC / SSO to my open-source self-hosted NVR (VibeNVR v1.31.0)

With VibeNVR v1.31.0, I just shipped native OAuth 2.0 + OpenID Connect support for my open-source self-hosted NVR. Here's a quick overview of how it works and what decisions I made along the way.

Background

VibeNVR is a free, open-source, self-hosted Network Video Recorder — simple to deploy via Docker, no cloud required. In v1.31.0, the headline feature is first-class SSO support via OIDC.

What I implemented

Zero-trust subject mapping

Rather than trusting the IdP blindly, VibeNVR uses a strict subject mapping model: each local VibeNVR account must be explicitly linked to an IdP sub claim. This means even if someone authenticates successfully with your IdP, they can't access VibeNVR unless a corresponding local account exists.

SSO auto-redirect

When OIDC is configured, the local login screen is bypassed entirely. Users land directly on the IdP login page — no separate VibeNVR credentials to manage.

RP-initiated logout

Logging out of VibeNVR sends an end_session request to the IdP, cleanly terminating the session there too. No dangling sessions.

Compatible IdPs

Any OIDC-compliant provider works: Authentik, Keycloak, Authelia, and others.

Links

Happy to answer questions about the implementation!

Top comments (0)