PAC4J OIDC:AzureAd 身份验证后“无法确定状态”

问题描述 投票:0回答:1

我刚刚遇到了一个类似于 pac4j 在 OIDC 回调和 Keycloak 提供程序之后使用 OIDC 身份验证(Azure)引发“状态无法确定”的问题,升级到我们的 web 应用程序版本后强制由 Tomcat 设置 Samesite 属性CookieProcessor 使用以下 context.xml 文件:

<Context>
    <Manager pathname="" />
    <CookieProcessor sameSiteCookies="strict"/>
</Context>

此设置是作为渗透测试的结果引入的。

网络跟踪显示,在重定向到 IdP 的 302 响应中设置的 JESSIONID cookie 在身份验证后不会被浏览器在对回调 URL 的请求中使用。因此无法确定状态,引发 TechnicalException。

不过,设置 samesite="lax" 似乎有效。所以这可能是一个(最好的?)解决方案。

也可能是在 OidcClient 上使用 setWithState(false) 的选项,但该选项无法通过基于属性的配置使用,因为它适用于 oauth2!?是否计划在未来版本中包含 oidc.withState 配置参数?

我正在使用基于 Java-11 的 pac4j 版本 (5.7.2)。

pac4j
1个回答
0
投票

你的分析是对的。我已经更新了 5.7.x 和 master 分支。您可以使用 5.7.5-SNAPSHOT JAR 再次测试吗?谢谢

© www.soinside.com 2019 - 2024. All rights reserved.