Skip to content

Securing dashboards with authentication

Restrict dashboard access to authorized users.

Built on Panel authentication

Lumen dashboards use Panel's authentication. This page covers the common setups; the Panel authentication guide lists every OAuth provider and option.

Quick start

Add basic authentication to your dashboard:

config:
  auth:
    type: basic
    users:
      - alice
      - bob

Authentication types

Type Description Use case
basic Username list Simple user restrictions
oauth OAuth providers GitHub, Google, Azure AD
password Username/password Custom authentication

GitHub OAuth example

Restrict to specific GitHub users:

config:
  auth:
    type: oauth
    oauth_provider: github
    oauth_key: {{ env("GITHUB_CLIENT_ID") }}
    oauth_secret: {{ env("GITHUB_CLIENT_SECRET") }}
    authorized_users:
      - github_username1
      - github_username2

Resources

For complete authentication documentation, see:

Common patterns

Development vs production

config:
  auth:
    type: {{ env("AUTH_TYPE", "basic") }}
    users: {{ env("AUTH_USERS", "['dev_user']") }}

Set different auth for each environment:

# Development
export AUTH_TYPE=basic
export AUTH_USERS="['alice', 'bob']"

# Production
export AUTH_TYPE=oauth
export OAUTH_PROVIDER=github

Per-layout restrictions

layouts:
  - title: Public Dashboard
    # No auth required
    views:
      - type: table

  - title: Admin Dashboard
    auth:
      users: [admin]
    views:
      - type: table

Next steps