feature: support both WebID-TLS and Solid-OIDC authentication simultaneously
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript, node.js
- Domínio
- authentication, backend
Direção de pesquisa
Comece em lib/create-app.mjs:335-339 e, em seguida, inspecione os pontos de entrada de inicialização de API.authn.oidc e API.authn.tls. Verifique como cada handler chama next() quando as credenciais estão ausentes e defina a conclusão como a autenticação de clientes WebID-TLS e Solid-OIDC no mesmo servidor.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Summary
Currently NSS only supports one authentication method at a time (--auth tls OR --auth oidc). It would be valuable to support both simultaneously.
Current Behavior
// lib/create-app.mjs:335-339
const auth = argv.forceUser ? 'forceUser' : argv.auth
if (!(auth in API.authn)) {
throw new Error(`Unsupported authentication scheme: ${auth}`)
}
await API.authn[auth].initialize(app, argv) // Only ONE method initialized
Proposed Behavior
Initialize both auth handlers and let them chain naturally:
async function initAuthentication(app, argv) {
// Initialize both handlers
await API.authn.oidc.initialize(app, argv)
await API.authn.tls.initialize(app, argv)
}
The handlers already call next() when they don't find their credentials, so they'd naturally fall through to the next method.
Benefits
- Flexibility - Different clients can use different auth methods against the same server
- Migration path - Users can transition gradually between auth methods
- Spec compliance - Solid doesn't mandate one auth method over another
- Client compatibility - Legacy TLS clients and modern OIDC clients work together
Implementation
The change is minimal:
- Remove the either/or logic in
initAuthentication() - Initialize both handlers (or make it configurable:
--auth oidc,tls) - Auth chain: OIDC → TLS → anonymous
Prior Art
JavaScriptSolidServer (JSS) already supports this - it tries auth methods in sequence:
- Solid-OIDC (DPoP tokens)
- WebID-TLS (client certificates)
- Bearer tokens
Works well and provides maximum flexibility.
- Linguagem predominante
- JavaScript
- Estrelas
- 1.8k
- Forks
- 308
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de nodeSolidServer/node-solid-server
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
nodeSolidServer/node-solid-server#1848 · 2 comentários · 1 reação ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
nodeSolidServer/node-solid-server#1841 · 2 comentários ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
nodeSolidServer/node-solid-server#1147 ·
-
remove bootstrap dependency Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
nodeSolidServer/node-solid-server#1867 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 45/100
nodeSolidServer/node-solid-server#1853 ·