如何配置 keycloak-(nodejs-)connect 以使用 PKCE?
Posted
技术标签:
【中文标题】如何配置 keycloak-(nodejs-)connect 以使用 PKCE?【英文标题】:How to configure keycloak-(nodejs-)connect to use PKCE? 【发布时间】:2021-08-01 16:31:25 【问题描述】:我有一个快速应用程序,我想用keycloak-connect
保护它。我还没有找到任何关于如何在这个中间件中使用 PKCE 设置授权代码流的文档或示例。
我认为我已正确配置 Keycloak (IDP),因为来自应用程序的身份验证失败,因为中间件既未传输 code_challenge
也未传输 code_challenge_method
参数,身份验证服务器拒绝:
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
甚至能够利用这个流程吗?
【问题讨论】:
【参考方案1】:keycloak-connect 目前不支持 PKCE。
查看我在https://keycloak.discourse.group/t/keycloak-connect-node-js-pkce/8285找到的讨论,有人建议切换到另一个支持PKCE的库(即node-openid-client)
关于服务器配置,我猜你关注了https://www.keycloak.org/docs/latest/server_admin/#advanced-settings 和关于 PKCE 的部分,所以应该可以按预期工作。
【讨论】:
我设法通过使用express-openid-connect
库让它工作 :) 感谢您提供有关 keycloak-connect 和 PKCE 的信息以上是关于如何配置 keycloak-(nodejs-)connect 以使用 PKCE?的主要内容,如果未能解决你的问题,请参考以下文章
使用 nginx 反向代理后面的 keycloak 保护 nodejs 中的路由
如何验证从反应 SPA 中的 keycloak 检索的 nodejs express api 的访问令牌?
如何使用 keyCloak 保护 Angular(accessType-Public)和 Nodejs 应用程序(accesType-bearer-only)