Supabase: egen OIDC-udbyder med Dazr Identity

Du skal bruge tre værdier fra udviklerkonsollen: klient-id’et, klienthemmeligheden (kun webserverapps) og den omdirigerings-URI, du har registreret. Resten står i discovery-dokumentet på https://identity.dazr.eu/.well-known/openid-configuration.

Supabase Auth understøtter egne OAuth- og OpenID Connect-udbydere. Tilføj Dazr Identity som en af dem, så logger dine brugere ind i dit Supabase-projekt med en passkey, en e-mailkode eller deres Google- eller Microsoft-konto, via én knap.

1. Registrér en app i Dazr Identity

Registrér en webserverapp i Dazr Identity → Udviklere. Brug den callback-URL, som Supabase viser, når du tilføjer udbyderen, som omdirigerings-URI. For et projekt hostet af Supabase er det https://<project-ref>.supabase.co/auth/v1/callback. Gem klient-id’et og klienthemmeligheden til næste trin.

2. Tilføj udbyderen i Supabase

Åbn Auth-udbyderne for dit projekt i Supabase-dashboardet, klik på New Provider, og vælg Auto-discovery (OIDC). Udfyld disse værdier, og klik derefter på Create and enable provider.

IndstillingVærdi
Identifiercustom:dazr
Klient-iddit klient-id
Klienthemmeligheddin klienthemmelighed
Issuer-URLhttps://identity.dazr.eu
Scopesopenid profile email

Supabase læser discovery-dokumentet på https://identity.dazr.eu/.well-known/openid-configuration og kontrollerer hvert ID-token med de offentlige nøgler, det angiver. PKCE er slået til som standard. Lad det være slået til: Dazr Identity afviser login uden PKCE.

Du kan også oprette udbyderen i kode, på en server, med Supabase Admin API:

// 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. Log folk ind

Start login med udbyderens identifier. Supabase klarer omdirigeringen til Dazr Identity, PKCE og callbacket og opretter derefter brugeren eller logger den eksisterende ind.

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

Giv knappen det udseende, der er beskrevet under Knappen. Row level security virker som altid: den indloggede person har et almindeligt Supabase-bruger-id.

Godt at vide

Mere til udviklere