Supabase: proveedor OIDC propio con Dazr Identity
Inicio de sesión con Dazr Identity: OpenID Connect gratis, alojado en la UE, con passkeys, códigos por correo y cuentas de Google o Microsoft tras un solo botón.
Necesitas tres valores de la consola para desarrolladores: el ID de cliente, el secreto de cliente (solo apps de servidor web) y la URI de redirección que registraste. Todo lo demás está en el documento de descubrimiento en https://identity.dazr.eu/.well-known/openid-configuration.
Supabase Auth admite proveedores OAuth y OpenID Connect propios. Añade Dazr Identity como uno de ellos, y tus usuarios inician sesión en tu proyecto de Supabase con una passkey, un código por correo o su cuenta de Google o Microsoft, desde un solo botón.
1. Registra una app en Dazr Identity
En Dazr Identity → Desarrolladores, registra una app de servidor web. Como URI de redirección, usa la URL de callback que muestra Supabase al añadir el proveedor. En un proyecto alojado por Supabase es https://<project-ref>.supabase.co/auth/v1/callback. Guarda el ID de cliente y el secreto de cliente para el paso siguiente.
2. Añade el proveedor en Supabase
En el panel de Supabase, abre los proveedores Auth de tu proyecto, haz clic en New Provider y elige Auto-discovery (OIDC). Rellena estos valores y haz clic en Create and enable provider.
| Ajuste | Valor |
|---|---|
| Identifier | custom:dazr |
| Client ID | tu client ID |
| Client secret | tu client secret |
| URL del emisor (Issuer URL) | https://identity.dazr.eu |
| Scopes | openid profile email |
Supabase lee el documento de descubrimiento en https://identity.dazr.eu/.well-known/openid-configuration y comprueba cada token de ID con las claves públicas que indica. PKCE está activado por defecto. Déjalo activado: Dazr Identity rechaza los inicios de sesión sin PKCE.
También puedes crear el proveedor por código, en un servidor, con la Admin API de Supabase:
// Server only: this client uses the service role key.
const { data, error } = await supabase.auth.admin.customProviders.createProvider({
provider_type: 'oidc',
identifier: 'custom:dazr',
name: 'Dazr Identity',
client_id: process.env.DAZR_CLIENT_ID,
client_secret: process.env.DAZR_CLIENT_SECRET,
issuer: 'https://identity.dazr.eu',
scopes: ['openid', 'profile', 'email'],
})
3. Inicia la sesión de las personas
Inicia el acceso con el identificador del proveedor. Supabase se encarga de la redirección a Dazr Identity, de PKCE y del callback, y luego crea el usuario o inicia la sesión del existente.
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'custom:dazr',
options: { redirectTo: 'https://app.example.eu/auth/callback' },
})
Da al botón el estilo que se describe en El botón. La row level security funciona como siempre: la persona que inicia sesión tiene un ID de usuario normal de Supabase.
A tener en cuenta
- Supabase espera una dirección de correo por defecto. Mantén el scope
email: Dazr Identity solo emite direcciones de correo verificadas. - Mientras tu app está en pruebas en Dazr, también funcionan las URI de redirección
http://localhostyhttp://127.0.0.1en cualquier puerto, por ejemplo para un stack local de Supabase. - Supabase limita, según el plan, cuántos proveedores propios puede tener un proyecto. Consulta Custom OAuth and OIDC providers en la documentación de Supabase. Última comprobación: octubre de 2026.
sub es pairwise: el mismo para todas las apps de tu organización y distinto para cualquier otra organización. Nunca cambia para una persona, mientras que un correo sí puede cambiar. Guarda sub como clave de la cuenta y trata email como dato de contacto.
Más para desarrolladores
Documentación para desarrolladoresTodas las guías de integraciónCualquier biblioteca OpenID ConnectPrecios