Published: October 8, 2025
Last updated: August 24, 2026

Integrate with OpenID Connect providers for single sign-on.

Basic Setup

YAML
1
2
3
4
5
6
7
8
9
auth:
  methods:
    oidc:
      enabled: true
      clientId: "filebrowser-client"
      clientSecret: "xxx"  # Use environment variable
      issuerUrl: "https://sso.example.com/application/o/filebrowser/"
      scopes: "openid email profile"
      userIdentifier: "preferred_username"

If you need group claims, add them to scopes (for example groups) per your provider.

Configuration Options

OptionDescription
enabledEnable OIDC authentication
clientIdOIDC client ID
clientSecretOIDC client secret (use env var)
issuerUrlOIDC provider URL
scopesRequested scopes
userIdentifierUser field (preferred_username, email, username, phone)
adminGroupOIDC group name for admin rights
userGroupsList of allowed groups (empty = allow all)
groupsClaimJSON field for groups (default: groups)
disableVerifyTLSDisable TLS verification (testing only!)
logoutRedirectUrlProvider logout URL

Defaults (when omitted): groupsClaim is groups, userIdentifier is preferred_username, and scopes defaults to openid email profile.

Issuer URL Examples

Authentik:

TEXT
1
https://domain.com/application/o/filebrowser/

Pocket ID/Authelia:

TEXT
1
https://domain.com

Callback URL

Append /api/auth/oidc/callback to the end of your base URL to get FileBrowser’s OIDC callback URL.

Configure in your OIDC provider:

TEXT
1
https://your-domain.com/api/auth/oidc/callback

If you use a custom baseURL in your config.yaml:

TEXT
1
https://your-domain.com/custom-base/api/auth/oidc/callback

Reverse proxy

When FileBrowser sits behind HTTPS nginx, Traefik, or Caddy, the incoming request often arrives as http:// with the proxy’s internal host. Configure forwarded headers so the request-derived callback uses the browser-facing scheme and host.

v2.0.0+ — single boolean (replaces the v1.4.x–v1.5.x trustedHeaders list):

YAML
1
2
3
http:
  baseURL: "/files"
  trustProxyHeaders: true

v1.4.x–v1.5.x — list the forwarding headers your proxy sets:

YAML
1
2
3
4
5
6
7
http:
  baseURL: "/files"
  trustedHeaders:
    - X-Forwarded-Proto
    - X-Forwarded-Host
    - X-Forwarded-For
    - X-Real-IP

Your proxy must send at least X-Forwarded-Proto: https and X-Forwarded-Host matching the browser URL. Without header trust enabled, the callback may register as http:// or the wrong host and your OIDC provider will reject login.

On v2.0.0+, FileBrowser logs a warning when OIDC is enabled but trustProxyHeaders is false.

See Running behind a reverse proxy and HTTP reverse-proxy headers.

Auto-Redirect

When OIDC is the only auth method, users are automatically redirected to the OIDC provider.

YAML
1
2
3
4
5
6
auth:
  methods:
    password:
      enabled: false
    oidc:
      enabled: true

Provider Examples

Authentik

Typical settings when Authentik exposes groups and an optional admin group mapping:

YAML
1
2
3
4
5
6
7
8
auth:
  methods:
    oidc:
      enabled: true
      clientId: "xxx"
      clientSecret: "xxx"
      issuerUrl: "https://auth.example.com/application/o/filebrowser/"
      adminGroup: "authentik Admins"

Authelia

Minimal Authelia client configuration:

YAML
1
2
3
4
5
6
7
auth:
  methods:
    oidc:
      enabled: true
      clientId: "xxx"
      clientSecret: "xxx"
      issuerUrl: "https://auth.example.com"

Group-Based Access Control

On successful OIDC login, groups from groupsClaim are synced into FileBrowser’s access-control GroupMap (write-through to the database) so group allow/deny rules apply. For path-level group isolation, use denyByDefault on the source.

Admin Group

Grant admin privileges to users in a specific OIDC group:

YAML
1
2
3
4
5
6
7
8
auth:
  methods:
    oidc:
      enabled: true
      clientId: "xxx"
      clientSecret: "xxx"
      issuerUrl: "https://auth.example.com"
      adminGroup: "FileBrowser Admins"

Restrict login to Specific Groups

Only allow users in specific OIDC groups to access FileBrowser:

YAML
1
2
3
4
5
6
7
8
auth:
  methods:
    oidc:
      enabled: true
      clientId: "xxx"
      clientSecret: "xxx"
      issuerUrl: "https://auth.example.com"
      userGroups: ["FileBrowser Users", "guests"]

Users not in these groups will be denied access even with valid OIDC authentication.

Next Steps