排查 OIDC SSO 问题
已知问题
不支持 state 参数
使用要求必须提供 state CSRF 令牌参数的 OIDC 提供方时,身份验证会失败并报错:
{"code":0,"message":"authorization response from the server is an error"}
n8n 当前的 OIDC 实现不会处理 state 参数;部分 OIDC 提供方会发送该参数,以防止 CSRF 攻击。
目前唯一的临时解决办法是,在 OIDC 提供方允许的情况下,将其配置为禁用 state 参数。
n8n 正在开发对 OIDC state 参数的完整支持,计划在未来版本中提供。
不支持 PKCE
要求 PKCE(Proof Key for Code Exchange,代码交换证明密钥)的 OIDC 提供方可能会导致身份验证失败,或拒绝 n8n 的授权请求。n8n 当前的 OIDC 实现不支持 PKCE。
唯一的临时解决办法是,如果提供方设置中有此选项,将其配置为不要求 n8n 客户端使用 PKCE。
n8n 计划在未来版本 中增加 PKCE 支持。
相关资源
本文为社区中文翻译。查看对应英文原文