当前位置: 首页 > 知识库问答 >
问题:

密钥斗篷、PKCE和外部IDP

马庆
2023-03-14

我有一个需要联合到IDP的需求。我过去从未遇到过问题,在这种情况下,我遇到了问题,因为第三方/外部IDP启用并实施了PKCE。

有没有办法联合到启用了PKCE的IDP。基本上换句话说,我应该能够转发/发送code_challenge和code_challenge_method给外部 IDP。我可以在我的 IDP 上启用 PKCE,而不会出现任何问题,并在需要时将相同的标头转发给外部 IDP,但我看不到这样做的方法。我也尝试在身份证明程序配置上配置“转发查询参数”字段,但无济于事。

但是我遇到了这张票 https://issues.redhat.com/browse/KEYCLOAK-9809 哪里说不支持,因为它只支持公共客户端 - 所以情况仍然如此吗?

除此之外,如果不支持此功能,建议采用什么方法来解决此问题?我的意思是,我可以要求外部IDP人员更改他们的配置,但我想在提出解决方案之前了解推荐的方法。谢谢。

共有1个答案

禹正阳
2023-03-14

该问题显然已通过以下方式解决:https://github.com/keycloak/keycloak/pull/7381

根据这张票-问题在13.0.0版本中得到解决。不幸的是,我已经离开了这个项目——所以如果有人能确认这适用于13.0.0——我可以将其标记为答案并关闭帖子。

 类似资料:
  • 我正在使用SAML和外部IdP实现SSO选项。如果我在单击浏览器中的SSO按钮后检查收到的SAML响应,我可以看到所需的身份验证数据(如用户名和电子邮件),因此与IdP的通信工作正常。 然而,Keycloak并不执行登录,并显示给我一个页面,上面写着:“我们很抱歉...登录超时,请重新登录。”,并且没有新用户注册。我的领域中令牌的登录超时设置为30分钟。 查看日志时,我发现了以下错误: 我发现这可

  • 我正在我的应用程序(app1)中使用KeyClope(版本8.0.1)作为身份代理。在我的应用程序中,用户可以使用外部idp(谷歌、fb)或从我们的登录页面进行签名。现在,我设置了另一个keyclope实例,并使用OIDC将其配置为IDP。它工作得很好。 如果用户已准备就绪,请登录外部idp(谷歌、fb),并从app2的网页上单击我的应用程序(app1)。有没有办法,我可以自动让用户进入,而不是将

  • 我试图使用Keycloak的openId-connectendpoint来获取关于用户角色的信息。我使用/auth/realms/moje/protocol/OpenID-connect/userinfoendpoint来获取关于已验证用户的信息。我可以获得姓名、用户名、电子邮件等信息。但是我不能强迫Keyclak给我关于用户角色的信息。 我已经阅读了openID文档,我没有找到任何关于必须获取角

  • 我的问题在这一点上更理论化。 我有一个用例,我必须将我的应用程序(App 1)与Keycloak集成,并将Keycloak与外部身份提供者集成。在这种情况下,奇克洛只是一个经纪人。该外部IDP上还注册了其他应用程序。 场景1:用户既没有登录App 1,也没有登录IDP 当用户尝试访问App 1时,它最终被重定向到外部IDP登录表单并发布身份验证,它将被重定向回应用程序。这是一个简单的流程。 场景2

  • 我有一个spring boot应用程序,它隐藏在反向代理后面。当用户未经授权向资源发送请求时,会将其重定向到Keyclope登录页面,并将redirect\u uriparam设置为,例如http://some_url/sso/login(URL始终相对于上下文路径)。我需要将此URL更改为类似于,以便反向代理知道将此类请求重定向到哪里。你知道如何做到这一点吗?是否有任何keydeport适配器配

  • 我用这个例子:https://github.com/foo4u/keycloak-spring-demo 我有钥匙斗篷。json文件在我的WEB-INF文件夹中,但当我运行应用程序时,会出现以下异常: 此异常的完整堆栈: 这段代码只是Spring Boot和KeyCloak集成的一个例子。 你能告诉我我做错了什么吗? 谢谢你的回答和时间。