Supabase: vlastný poskytovateľ OIDC s Dazr Identity

Potrebujete tri hodnoty z vývojárskej konzoly: ID klienta, tajný kľúč klienta (len pri webových serverových aplikáciách) a URI presmerovania, ktoré ste zaregistrovali. Všetko ostatné je v dokumente discovery na adrese https://identity.dazr.eu/.well-known/openid-configuration.

Supabase Auth podporuje vlastných poskytovateľov OAuth a OpenID Connect. Pridajte Dazr Identity ako jedného z nich a vaši používatelia sa do projektu Supabase prihlásia passkey, kódom z e-mailu alebo účtom Google či Microsoft, jedným tlačidlom.

1. Zaregistrujte aplikáciu v Dazr Identity

V Dazr Identity → Vývojári zaregistrujte webovú serverovú aplikáciu. Ako URI presmerovania použite adresu callback, ktorú Supabase zobrazí pri pridaní poskytovateľa. Pri projekte hostovanom v Supabase je to https://<project-ref>.supabase.co/auth/v1/callback. ID klienta a tajný kľúč si odložte na ďalší krok.

2. Pridajte poskytovateľa v Supabase

V administrácii Supabase otvorte poskytovateľov Auth svojho projektu, kliknite na New Provider a zvoľte Auto-discovery (OIDC). Vyplňte tieto hodnoty a potom kliknite na Create and enable provider.

NastavenieHodnota
Identifiercustom:dazr
Client IDvaše client ID
Tajomstvo klientavaše tajomstvo klienta
URL vydavateľa (Issuer URL)https://identity.dazr.eu
Scopesopenid profile email

Supabase načíta dokument discovery na adrese https://identity.dazr.eu/.well-known/openid-configuration a každý ID token overí verejnými kľúčmi, ktoré uvádza. PKCE je predvolene zapnuté. Nechajte ho zapnuté: Dazr Identity prihlásenia bez PKCE odmieta.

Poskytovateľa môžete vytvoriť aj v kóde, na serveri, cez Admin API 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. Prihláste používateľov

Spustite prihlásenie s identifikátorom poskytovateľa. Supabase zabezpečí presmerovanie do Dazr Identity, PKCE aj callback a potom vytvorí používateľa alebo prihlási existujúceho.

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

Tlačidlu dajte vzhľad opísaný v časti Tlačidlo. Row level security funguje ako zvyčajne: prihlásená osoba má bežné používateľské ID v Supabase.

Dobré vedieť

Ďalšie informácie pre vývojárov