Support OAuth allowed domains for self-hosted installs
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- authentication, authorization
Línea de trabajo
Empieza por localizar los puntos de entrada del callback de OAuth y de la configuración, y determina después cómo se gestionan actualmente los dominios de correo electrónico verificados, las Google hosted-domain claims y ALLOW_REGISTRATION. Resuelve las cuestiones sobre la configuración y el comportamiento de registro genéricos frente a los específicos del proveedor antes de implementar; terminado significa que los usuarios que coincidan pueden autenticarse según lo especificado, mientras que los usuarios que no coincidan son rechazados y el comportamiento existente permanece sin cambios cuando no hay una allowlist.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi! Opening this as an issue first before doing another PR/rebase, as suggested in #428.
Use case
For self-hosted OpenPanel deployments, it would be useful to enable OAuth login while restricting access to members of a company domain / Google Workspace domain.
A common setup is:
- OpenPanel is self-hosted and reachable on a public URL
- Google OAuth is enabled for convenience
- public registration is disabled with
ALLOW_REGISTRATION=false - only users from an approved company domain should be able to sign in or create accounts through OAuth
At the moment, enabling OAuth does not provide a built-in domain allowlist, so operators need to rely on provider-side configuration or external controls. For Google OAuth, Workspace/internal setup is not always enough by itself for self-hosted deployments, and app-side enforcement would make the behavior clearer.
Proposed behavior
Add optional OAuth domain allowlisting:
- when no allowlist is configured, keep the current behavior unchanged
- when configured, reject OAuth callback users whose verified email domain is not allowed
- for Google, validate
email_verified, the email domain, and ideally the Google ID token hosted-domain claim (hd) for Workspace accounts - matching-domain OAuth users can sign in
- matching-domain OAuth users can sign up even when
ALLOW_REGISTRATION=false - non-matching users cannot sign in or create accounts through OAuth
Possible configuration
Generic option:
OAUTH_ALLOWED_DOMAINS=example.com,example.org
Optionally, provider-specific configuration could also be supported:
GOOGLE_ALLOWED_DOMAINS=example.com
Questions before implementation
- Would you prefer a single generic
OAUTH_ALLOWED_DOMAINSoption, provider-specific options likeGOOGLE_ALLOWED_DOMAINS, or both? - For Google, should a configured domain allowlist require the
hdclaim to match, or should verified email domain be enough? - Should matching-domain OAuth be allowed to create users when
ALLOW_REGISTRATION=false, or should the allowlist only restrict login for users that already exist?
Happy to open a fresh PR if this direction makes sense.
- Lenguaje dominante
- TypeScript
- Estrellas
- 7.1k
- Forks
- 500
- Merge medio
- 7 d 2 h
- PR fusionados (30 d)
- 7
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Openpanel-dev/openpanel
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Openpanel-dev/openpanel#532 ·
Los mantenedores suelen responder en 1 día
-
Period comparison badge shows wrong percentage for decreases (100 → 50 shows ↓100%)Posiblemente ocupada @sarmah-rup la tomó hace 8 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Openpanel-dev/openpanel#526 ·
Los mantenedores suelen responder en 1 día
-
Self-hosted missing op1-replay.jsPosiblemente ocupada @houstona la tomó hace 9 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Openpanel-dev/openpanel#512 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
login page needs refinementPosiblemente ocupada @anandghegde la tomó hace 23 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Openpanel-dev/openpanel#495 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
Openpanel-dev/openpanel#528 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Openpanel-dev/openpanel
Issues similares
-
ble-needs-fable-review bug mobile priority:P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ColeMurray/background-agents#2305 ·
Los mantenedores suelen responder en 1 día
-
bug from-studio
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
esengine/DeepSeek-Reasonix#12355 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
oblien/openship#1086 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día