使用来自 Keycloak 的 URL OIDC 参数重定向给出错误请求
Redirect with URL OIDC parameters from Keycloak gives Bad Request
我当前的设置如下:
- Windows 服务器 运行 一个 Active Directory。
- Keycloak 服务器 运行在 WildFly 上。
- Java 在 WildFly 上部署了具有受限访问权限的测试应用程序。
授权流程是来自 AD 的用户请求访问应用程序,用户被授予 Kerberos 票证,并尝试使用该特定票证访问同一应用程序。
所有Kerberos、Keycloak和AD的配置都完成了,服务器和客户端之间的协议运行顺利,但是最后一个"GET"请求,其中用户已被授予访问权限,这意味着请求 Keycloak 重定向 URL 包含 OpenID-Connect 参数(state= 和 code=),returns a "bad request".
我对使用 Keycloak 作为 SSO 提供商的概念还很陌生,所以这可能是我错过的非常微不足道的事情。
[编辑]
如果我在 Fiddler 中发出对受限页面的请求,它会给我一个 "No State Cookie",但是当我使用任何一种浏览器时,它会显示 "Forbidden",并且我的日志显示 ERROR [org.keycloak.adapters.OAuthRequestAuthenticator](默认任务 9)令牌验证失败:令牌颁发者无效。预计 http://KEYCLOAK:9090/auth/realms/kerberos-realms/" but expected "http://keycloak:8080/auth/realms/kerberos-realm"
我确实找到了解决方案:
- 我试图用浏览器更改 Fiddler 客户端,但我遇到了问题,它告诉我令牌的颁发者与预期的不一样,我发现在我的 standalone.xml , 身份验证端点拼写为大写,它期望一个小写。至于"No state cookie",我猜浏览器处理那种请求,与Fiddler有点不同。
我当前的设置如下:
- Windows 服务器 运行 一个 Active Directory。
- Keycloak 服务器 运行在 WildFly 上。
- Java 在 WildFly 上部署了具有受限访问权限的测试应用程序。
授权流程是来自 AD 的用户请求访问应用程序,用户被授予 Kerberos 票证,并尝试使用该特定票证访问同一应用程序。
所有Kerberos、Keycloak和AD的配置都完成了,服务器和客户端之间的协议运行顺利,但是最后一个"GET"请求,其中用户已被授予访问权限,这意味着请求 Keycloak 重定向 URL 包含 OpenID-Connect 参数(state= 和 code=),returns a "bad request".
我对使用 Keycloak 作为 SSO 提供商的概念还很陌生,所以这可能是我错过的非常微不足道的事情。
[编辑] 如果我在 Fiddler 中发出对受限页面的请求,它会给我一个 "No State Cookie",但是当我使用任何一种浏览器时,它会显示 "Forbidden",并且我的日志显示 ERROR [org.keycloak.adapters.OAuthRequestAuthenticator](默认任务 9)令牌验证失败:令牌颁发者无效。预计 http://KEYCLOAK:9090/auth/realms/kerberos-realms/" but expected "http://keycloak:8080/auth/realms/kerberos-realm"
我确实找到了解决方案:
- 我试图用浏览器更改 Fiddler 客户端,但我遇到了问题,它告诉我令牌的颁发者与预期的不一样,我发现在我的 standalone.xml , 身份验证端点拼写为大写,它期望一个小写。至于"No state cookie",我猜浏览器处理那种请求,与Fiddler有点不同。