keycloak - 节点 oidc-provider(用于 keycloak)

标签 keycloak openid-connect oidc-provider

我正在尝试使用一个基本的节点 oidc-provider 应用程序作为我的 keycloak 服务器的 OIDC 提供程序。

Keycloak 正确链接到我的应用程序的登录页面。 输入用户名和密码后,我会正确转移回 keycloak。

但是,keycloak 却显示“与身份提供商进行身份验证时出现意外错误”。


编辑:我调整了 keycloak 日志级别,现在我看到以下错误:

Failed to make identity provider oauth callback: org.keycloak.broker.provider.IdentityBrokerException: No access_token from server.


我的应用程序如下所示:

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);
});

最佳答案

您必须将token_endpoint_auth_method配置为keycloak实际使用的正确方法值。如果为客户端提供的 key 的方法设置为none,oidc-provider 将使客户端身份验证失败。

关于keycloak - 节点 oidc-provider(用于 keycloak),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56055415/

相关文章:

jwt - Keycloak - 如何请求具有自定义生命周期的 token ?

Azure AD 不会在 ID 或访问 token 中发送声明信息

mysql - 如何获取Keycloak访问 token 并将其存储在数据库中以供Spring Boot使用?

.net - UseJwtBearerAuthentication 与 UseOpenIdConnectAuthentication 对比?

c# - 如何根据单个 ASP.NET Core 应用程序中的某些内容动态更改 OpenID 配置?

authentication - 在运行时向 OWIN 管道注册新的中间件,无需重新启动应用程序

node.js - 交互后访问被拒绝使用node-oidc-provider完成

keycloak - 如何在自定义电子邮件模板主题中添加领域名称