Supabase: vlastní poskytovatel OIDC s Dazr Identity

Potřebujete tři hodnoty z vývojářské konzole: ID klienta, tajný klíč klienta (jen u webových serverových aplikací) a URI přesměrování, které jste zaregistrovali. Vše ostatní je v dokumentu discovery na adrese https://identity.dazr.eu/.well-known/openid-configuration.

Supabase Auth podporuje vlastní poskytovatele OAuth a OpenID Connect. Přidejte Dazr Identity jako jednoho z nich a vaši uživatelé se do projektu Supabase přihlásí passkey, kódem z e-mailu nebo účtem Google či Microsoft, jedním tlačítkem.

1. Zaregistrujte aplikaci v Dazr Identity

V Dazr Identity → Vývojáři zaregistrujte webovou serverovou aplikaci. Jako URI přesměrování použijte adresu callback, kterou Supabase zobrazí při přidání poskytovatele. U projektu hostovaného v Supabase je to https://<project-ref>.supabase.co/auth/v1/callback. ID klienta a tajný klíč si uschovejte pro další krok.

2. Přidejte poskytovatele v Supabase

V administraci Supabase otevřete poskytovatele Auth svého projektu, klikněte na New Provider a zvolte Auto-discovery (OIDC). Vyplňte tyto hodnoty a pak klikněte na Create and enable provider.

NastaveníHodnota
Identifiercustom:dazr
Client IDvaše client ID
Tajemství klientavaše tajemství klienta
URL vydavatele (Issuer URL)https://identity.dazr.eu
Scopesopenid profile email

Supabase načte dokument discovery na adrese https://identity.dazr.eu/.well-known/openid-configuration a každý ID token ověří veřejnými klíči, které uvádí. PKCE je ve výchozím stavu zapnuté. Nechte ho zapnuté: Dazr Identity přihlášení bez PKCE odmítá.

Poskytovatele můžete vytvořit i v kódu, na serveru, přes 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. Přihlaste uživatele

Spusťte přihlášení s identifikátorem poskytovatele. Supabase zajistí přesměrování do Dazr Identity, PKCE i callback a pak vytvoří uživatele nebo přihlásí stávajícího.

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

Tlačítku dejte vzhled popsaný v části Tlačítko. Row level security funguje jako obvykle: přihlášená osoba má běžné uživatelské ID v Supabase.

Dobré vědět

Další informace pro vývojáře