Я пытаюсь использовать приложение oidc-провайдера для базового узла в качестве провайдера OIDC для моего сервера keycloak.
Keycloak правильно ссылается на страницу входа в мое приложение.
После ввода имени пользователя и пароля меня снова переводят обратно в брелок.
Однако, Keycloak чем говорит "Неожиданная ошибка при аутентификации с поставщиком удостоверений".
РЕДАКТИРОВАТЬ: я отрегулировал уровень журнала keycloak, и теперь я вижу следующую ошибку:
Не удалось сделать провайдер идентификации oauth обратным вызовом: org.keycloak.broker.provider.IdentityBrokerException: Нет access_token с сервера.
Мое приложение выглядит так:
const express = require('express');
const Provider = require('oidc-provider');
const app = express();
const clients = [
{
client_id: 'my_keycloak_client',
client_secret: "<someKey>",
grant_types: ['authorization_code'],
response_types: ['code'],
redirect_uris: ['http://localhost:8080/auth/realms/master/broker/oidc/endpoint'],
token_endpoint_auth_method: 'none'
}
];
const oidc = new Provider('http://localhost:3001', {
async findById(ctx, id) {
return {
accountId: id,
async claims() { return { sub: id }; },
};
}
});
oidc.initialize({
clients: clients,
keystore: {
keys: [
{
kty:"RSA",
kid: "zid-auth key",
use: "sig",
p:"<someKey>",
q:"<someKey>",
d:"<someKey>",
e:"AQAB",
qi:"<someKey>",
dp:"<someKey>",
dq:"<someKey>",
n:"<someKey>"
}
]
}
}).then(function () {
app.use('/', oidc.callback);
app.listen(3001);
});