Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

856
Visualizações
keycloak-connect: type=PERMISSION_TOKEN_ERROR, userId=null, ipAddress=, error=invalid_client_credentials

Contexto

Hola a todos, estoy trabajando en una aplicación de 3 partes:

  • Servidor Keycloak para autenticación
  • Aplicación angular para la interfaz (con cliente dedicado, público)
  • enrutador express para el backend (con cliente dedicado, solo portador)

Las dos primeras partes funcionan a la perfección, puedo autenticarme en mi servidor KC con mi aplicación Angular, obtener los roles, etc.

Esta semana, comencé a trabajar con el backend, instalé keycloak-connect siguiendo la documentación oficial y otros, para solucionar mi problema actual.

Este es el código condensado que estoy intentando:

 var express = require('express'); var session = require('express-session'); var Keycloak = require('keycloak-connect'); var memoryStore = new session.MemoryStore(); var keycloak = new Keycloak({ store: memoryStore }); var app = express(); //session app.use(session({ secret:'thisShouldBeLongAndSecret', resave: false, saveUninitialized: true, store: memoryStore })); app.use( keycloak.middleware() ); app.get('/check', keycloak.checksso('user'), function(req, res){ console.log(req.headers); res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify({ 'this': 'works!' }, null, 3)); }); app.get('/check', keycloak.enforce('user'), function(req, res){ console.log(req.headers); res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify({ 'this': 'does not work' }, null, 3)); }); app.listen(8000, function () { console.log('Listening at http://localhost:8000'); });

Además, tengo un archivo .json proporcionado por mi servidor KC después de configurar el cliente de solo portador, por lo que este debería estar bien.

La cuestión

Tenga en cuenta que el uso de .checkSSO() funciona como se esperaba, mientras que el uso de protect('my-role') o enforce('my-role') no lo hace.

Mi backend expreso obtuvo el token Angular correctamente, y verifiqué el rol my-role usando el servicio https://www.jstoolset.com/jwt , y todo está bien.

Habilité LOGLEVEL en mi servidor KC, no obtuve nada usando protect(), pero recibí un mensaje usando enforce():

 keycloak-connect : type=PERMISSION_TOKEN_ERROR, userId=null, ipAddress=, error=invalid_client_credentials

Esto es extraño para mí, ya que el cliente dedicado que estoy usando para mi back-end, está configurado solo como portador, y no hay lugar para tal secreto dentro del archivo de configuración que me proporciona mi servidor KC...

Creo que no avanzaré más sin su ayuda, estuve navegando toda la semana, probé muchas pistas, sin suerte hasta ahora...

Gracias por su ayuda si la hay, amables extraños...

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda