我正在考虑为我的应用程序使用OAuth2。我尝试实现的体系结构如下:
到目前为止,我已经成功实现了3个基本应用程序(1个身份验证服务器,1个资源服务器和1个客户端)之间的交互。我无法正常工作的是注销功能。我已经阅读了Dave Syer在其教程中描述的“非常棘手的问题”,但是在这种情况下,我确实需要用户注销后重新登录。我尝试给访问令牌和刷新令牌提供几秒钟的时间,但是没有在到期时提示再次登录,而是在客户端应用程序上获得了NPE。我也尝试了这篇文章中提出的解决方案从令牌存储中删除令牌,但这不起作用。对我而言,单点注销是此实现的理想行为。如何使用Spring Boot Oauth2实现此目的。如果由于某种原因无法实现,我可以使用哪些替代方案来使用Spring Boot来实现集中式安全性?
提前致谢。
经过大量测试,我意识到只需重定向到AuthServer并以编程方式进行注销即可解决此问题:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.logout()
.logoutSuccessUrl("http://your-auth-server/exit");
}
@Controller
public class LogoutController {
@RequestMapping("/exit")
public void exit(HttpServletRequest request, HttpServletResponse response) {
// token can be revoked here if needed
new SecurityContextLogoutHandler().logout(request, null, null);
try {
//sending back to client app
response.sendRedirect(request.getHeader("referer"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
null 提前道谢。
我已经使用spring-saml建立了一个联合。SSO过程工作正常,但是我有一个单一注销的问题。 问题#1是,在我从SP调用saml/注销后,它从Idp注销,也从我的SP注销,但它不会重定向到Idp登录页面。 问题#2是,当我让其他SP参与处理我的SP时,我的SP不知何故断开了链,它将其他SP引导到我的SP注销页面,而不是Idp注销页面。 这是我的配置: 这是我的日志: 有人能帮我设置配置吗 谢啦
我正在开发jsp springboot应用程序,我已经使用azure实现了sso,它正在按预期工作。我已配置 此外,我还在应用程序中添加了重定向url。属性,我没有添加任何配置类,除了这些更改,我能够成功登录。对于注销,我使用 但是如果我打开一个新标签并尝试访问该应用程序,我将能够在不要求登录的情况下访问该应用程序。我不确定我必须做哪些更改来防止这种情况
我成功地将OneLogin java saml库用于saml SSO。但Active Directory联合身份验证服务(ADFS)的SLO(单次注销)存在问题。ADFS拒绝库创建的LogoutRequest,而SimpleSAMLphp IdP接受它。我在LogoutRequest创建时传递从ADFS接收的nameId和sessionIndex。 以下是生成的请求和收到的响应: 授权请求: 答复
我正试图在我的java webapp中实现WSO2单点注销功能<我无法理解这件事: 然后我为第一个服务提供商(SP)调用注销,IdP使用SAML响应将其重定向到某个注销url,SP收到此请求并使超文本传输协议会话无效。 第二个SP也使用SAML响应从IdP获取请求,但此请求中的http会话是IdP和SP之间的会话,我需要使web浏览器和SP之间的会话无效。我如何获取此会话?
我是okta的新手saml。单点登录集成成功,现在我想做单点注销。我在Okta做了以下工作- 1)单注销网址:http://localhost:8080/spring-security-saml2-sample/saml/logout 2) SP发行人:http://localhost:8080/spring-security-saml2-sample/saml/metadata 3) 创建证书并