如何配置 keycloak-(nodejs-)connect 以使用 PKCE?

How to configure keycloak-(nodejs-)connect to use PKCE?

我有一个 Express 应用程序,我想用 keycloak-connect 保护它。我没有找到关于如何在此中间件中使用 PKCE 设置授权代码流的任何文档或示例。

我认为我已经正确配置了 Keycloak (IDP),因为由于中间件既没有传输 code_challenge 也没有传输 code_challenge_method 参数,应用程序的身份验证失败,auth 服务器拒绝了这些参数:

auth_callback
    1
error
    invalid_request
error_description
    Missing parameter: code_challenge_method
state
    b720bdf4-daf8-4aa7-8525-be02404396a6

中间件配置:

{
    realm: 'SomeRealm',
    'auth-server-url': 'https://auth-server.url/auth/',
    'ssl-required': 'all',
    resource: 'Some-client-ID',
    'public-client': true,
    'confidential-port': 0,
} 

keycloak-connect能不能利用这个流程?

keycloak-connect 目前不支持 PKCE。

查看我在 https://keycloak.discourse.group/t/keycloak-connect-node-js-pkce/8285 There someone suggests to switch to another library, which supports PKCE (i.e. node-openid-client)

找到的讨论

关于服务器配置,我想您遵循了 https://www.keycloak.org/docs/latest/server_admin/#advanced-settings 和有关 PKCE 的部分,因此应该可以按预期工作。