Supabase: furnizor OIDC propriu cu Dazr Identity

Aveți nevoie de trei valori din consola pentru dezvoltatori: ID-ul de client, secretul de client (doar pentru aplicațiile cu server web) și URI-ul de redirecționare înregistrat. Restul se află în documentul de discovery de la https://identity.dazr.eu/.well-known/openid-configuration.

Supabase Auth acceptă furnizori OAuth și OpenID Connect proprii. Adăugați Dazr Identity ca unul dintre ei, iar utilizatorii se autentifică în proiectul dumneavoastră Supabase cu un passkey, un cod prin e-mail sau contul Google ori Microsoft, dintr-un singur buton.

1. Înregistrați o aplicație în Dazr Identity

În Dazr Identity → Dezvoltatori, înregistrați o aplicație cu server web. Ca URI de redirecționare, folosiți URL-ul de callback pe care Supabase îl afișează când adăugați furnizorul. Pentru un proiect găzduit de Supabase este https://<project-ref>.supabase.co/auth/v1/callback. Păstrați ID-ul și secretul de client pentru pasul următor.

2. Adăugați furnizorul în Supabase

În panoul Supabase, deschideți furnizorii Auth ai proiectului, faceți clic pe New Provider și alegeți Auto-discovery (OIDC). Completați aceste valori, apoi faceți clic pe Create and enable provider.

SetareValoare
Identifiercustom:dazr
ID-ul clientuluiID-ul dumneavoastră de client
Secretul clientuluisecretul dumneavoastră de client
URL-ul emitentului (Issuer URL)https://identity.dazr.eu
Domenii (scopes)openid profile email

Supabase citește documentul de discovery de la https://identity.dazr.eu/.well-known/openid-configuration și verifică fiecare token de ID cu cheile publice indicate acolo. PKCE este activat implicit. Lăsați-l activat: Dazr Identity refuză autentificările fără PKCE.

Puteți crea furnizorul și din cod, pe un server, cu Admin API-ul 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. Autentificați oamenii

Porniți autentificarea cu identificatorul furnizorului. Supabase se ocupă de redirecționarea către Dazr Identity, de PKCE și de callback, apoi creează utilizatorul sau îl autentifică pe cel existent.

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

Dați butonului stilul descris la Butonul. Row level security funcționează ca de obicei: persoana autentificată are un ID de utilizator Supabase obișnuit.

Bine de știut

Mai mult pentru dezvoltatori