Skip to content

Offer additional login options beyond GitHub OAuth #54

@rfay

Description

@rfay

Summary

Currently coder.ddev.com only supports GitHub OAuth for login. This issue tracks adding alternative authentication options to reduce friction for users who prefer not to authorize a third-party service with their main GitHub account, and to broaden access for non-GitHub users.

Current GitHub OAuth Behavior

Coder requests three read-only GitHub OAuth scopes:

  • read:user — public profile data
  • user:email — email addresses (including private ones)
  • read:org — organization membership

What this means in practice:

  • coder.ddev.com cannot read private repositories, push code, create issues, or perform any write action
  • The OAuth token is stored in Coder's database and does not expire unless revoked
  • Users can revoke at any time: GitHub Settings → Applications → Authorized OAuth Apps

The risk profile for using a personal GitHub account is low, but some users will reasonably prefer not to grant any third-party access to their GitHub account.

Alternative Auth Options Coder Supports

Coder has built-in support for several alternatives. References:

1. Username/Password (Built-in)

Already available in Coder by default. No configuration needed — just enable it in the UI or leave it enabled. Users create a local account without any external OAuth dependency.

Consideration: Requires password management; no SSO; good for users who want complete separation from external accounts.

2. OIDC with Google / Microsoft / Okta

Coder supports any OIDC-compliant provider. OIDC is more privacy-preserving than OAuth because the identity provider handles authentication and returns only a signed identity assertion (email + username) — Coder never receives a token that can query GitHub's API.

Examples:

  • Google (accounts.google.com) — widely available, no GitHub dependency
  • Microsoft Entra ID — common in enterprise contexts
  • Okta — enterprise SSO

3. GitLab OAuth / OIDC

Relevant for Drupal contributors who already use drupalcode.org (which runs GitLab). Would allow login with an existing Drupal community identity.

4. Self-Hosted OIDC (Keycloak / Authentik)

Maximum control option: run an identity provider that federates against GitHub, GitLab, LDAP, etc., but presents only OIDC claims to Coder. DDEV controls exactly what identity information is shared.

Suggested Actions

  • Enable username/password login (if not already enabled) as an immediate no-config option
  • Evaluate GitLab OIDC for Drupal community users
  • Consider a self-hosted OIDC provider for maximum control long-term
  • Document the GitHub OAuth scopes and revocation instructions for users

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions