Supabase : fournisseur OIDC personnalisé Dazr Identity

Il vous faut trois valeurs de la console développeurs : l’ID client, le secret client (applications serveur web uniquement) et l’URI de redirection que vous avez enregistrée. Le reste se trouve dans le document de découverte à l’adresse https://identity.dazr.eu/.well-known/openid-configuration.

Supabase Auth prend en charge les fournisseurs OAuth et OpenID Connect personnalisés. Ajoutez Dazr Identity comme l’un d’eux, et vos utilisateurs se connectent à votre projet Supabase avec une passkey, un code par e-mail ou leur compte Google ou Microsoft, depuis un seul bouton.

1. Enregistrez une application dans Dazr Identity

Dans Dazr Identity → Développeurs, enregistrez une application serveur web. Comme URI de redirection, utilisez l’URL de callback que Supabase affiche quand vous ajoutez le fournisseur. Pour un projet hébergé par Supabase, c’est https://<project-ref>.supabase.co/auth/v1/callback. Gardez l’ID client et le secret client pour l’étape suivante.

2. Ajoutez le fournisseur dans Supabase

Dans le tableau de bord Supabase, ouvrez les fournisseurs Auth de votre projet, cliquez sur New Provider et choisissez Auto-discovery (OIDC). Saisissez ces valeurs, puis cliquez sur Create and enable provider.

RéglageValeur
Identifiercustom:dazr
Identifiant clientvotre identifiant client
Secret clientvotre secret client
URL de l’émetteur (Issuer URL)https://identity.dazr.eu
Scopesopenid profile email

Supabase lit le document de découverte à l’adresse https://identity.dazr.eu/.well-known/openid-configuration et vérifie chaque jeton d’identité avec les clés publiques qu’il indique. PKCE est activé par défaut. Laissez-le activé : Dazr Identity refuse les connexions sans PKCE.

Vous pouvez aussi créer le fournisseur par code, sur un serveur, avec l’API Admin 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. Connectez les personnes

Lancez la connexion avec l’identifiant du fournisseur. Supabase gère la redirection vers Dazr Identity, PKCE et le callback, puis crée l’utilisateur ou connecte celui qui existe déjà.

const { data, error } = await supabase.auth.signInWithOAuth({
  provider: 'custom:dazr',
  options: { redirectTo: 'https://app.example.eu/auth/callback' },
})

Donnez au bouton le style décrit dans Le bouton. La row level security fonctionne comme d’habitude : la personne connectée a un ID utilisateur Supabase normal.

Bon à savoir

Plus pour les développeurs