Supabase: fornecedor OIDC próprio com o Dazr Identity
Início de sessão com o Dazr Identity: OpenID Connect gratuito, alojado na UE, com passkeys, códigos por e-mail e contas Google ou Microsoft atrás de um só botão.
Precisa de três valores da consola para programadores: o ID de cliente, o segredo de cliente (apenas aplicações de servidor web) e o URI de redirecionamento que registou. O resto está no documento de descoberta em https://identity.dazr.eu/.well-known/openid-configuration.
O Supabase Auth suporta fornecedores OAuth e OpenID Connect próprios. Adicione o Dazr Identity como um deles, e os seus utilizadores iniciam sessão no seu projeto Supabase com uma passkey, um código por e-mail ou a conta Google ou Microsoft, a partir de um só botão.
1. Registe uma aplicação no Dazr Identity
Em Dazr Identity → Programadores, registe uma aplicação de servidor web. Como URI de redirecionamento, use o URL de callback que o Supabase mostra ao adicionar o fornecedor. Num projeto alojado pelo Supabase é https://<project-ref>.supabase.co/auth/v1/callback. Guarde o ID de cliente e o segredo de cliente para o passo seguinte.
2. Adicione o fornecedor no Supabase
No painel do Supabase, abra os fornecedores Auth do seu projeto, clique em New Provider e escolha Auto-discovery (OIDC). Preencha estes valores e clique em Create and enable provider.
| Definição | Valor |
|---|---|
| Identifier | custom:dazr |
| ID de cliente | o seu ID de cliente |
| Segredo de cliente | o seu segredo de cliente |
| URL do emissor (Issuer URL) | https://identity.dazr.eu |
| Âmbitos | openid profile email |
O Supabase lê o documento de descoberta em https://identity.dazr.eu/.well-known/openid-configuration e verifica cada token de ID com as chaves públicas que ele indica. O PKCE está ativo por predefinição. Mantenha-o ativo: o Dazr Identity recusa inícios de sessão sem PKCE.
Também pode criar o fornecedor por código, num servidor, com a Admin API do 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. Inicie a sessão das pessoas
Inicie o acesso com o identificador do fornecedor. O Supabase trata do redirecionamento para o Dazr Identity, do PKCE e do callback, e depois cria o utilizador ou inicia a sessão do existente.
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'custom:dazr',
options: { redirectTo: 'https://app.example.eu/auth/callback' },
})
Dê ao botão o estilo descrito em O botão. A row level security funciona como sempre: a pessoa com sessão iniciada tem um ID de utilizador normal do Supabase.
Bom saber
- Por predefinição, o Supabase espera um endereço de e-mail. Mantenha o scope
email: o Dazr Identity só emite endereços de e-mail verificados. - Enquanto a sua aplicação está em teste na Dazr, também funcionam URIs de redirecionamento
http://localhostehttp://127.0.0.1em qualquer porta, por exemplo para uma stack local do Supabase. - O Supabase limita, conforme o plano, quantos fornecedores próprios um projeto pode ter. Consulte Custom OAuth and OIDC providers na documentação do Supabase. Última verificação: outubro de 2026.
sub é pairwise: igual para todas as aplicações da sua organização, diferente para qualquer outra organização. Nunca muda para uma pessoa, ao passo que um endereço de e-mail pode mudar. Guarde sub como chave da conta e trate email como dado de contacto.
Mais para programadores
Documentação para programadoresTodos os guias de integraçãoQualquer biblioteca OpenID ConnectPreços