我在弄清楚如何使用Identity Broker(密钥斗篷)和Identity Provider(使用Spring Boot / Security OAuth编写)进行正确注销时遇到了麻烦。
这是流,使用反向通道注销:
这一切似乎正常。但是,如果直接进入受安全保护的页面,则无需重新登录就可以访问它。这是因为从浏览器到IdP的会话从未失效。当我的IdP看到它具有来自浏览器的会话时,它使用最初输入的登录凭据(UsernamePasswordAuthToken),并在其oauth / authorize端点重新发出身份验证代码,并重定向到Keycloak。然后,Keycloak像往常一样使用此身份验证代码,并将其交换为令牌,然后颁发自己的令牌。
问题: 1.我想如果我能够使从浏览器到IdP的会话无效,那么我可以使所有这些工作正常。可能是通过覆盖Spring Security OAuth中的AuthorizationEndpoint。但这听起来有点像骇客。 1.我应该使用前通道注销而不是后通道注销吗?我对此还有其他问题(即Keycloak如何知道我的IdP发行的令牌无效)