提问者:小点点

Spring OAuth2安全问题


我目前正在实施Authorization_Code类型的OAuth2流,以便在我的网站上进行单点登录(SSO)。

这是我启用它的代码。

  @Override
  protected void configure(final HttpSecurity http) throws Exception {
    // @formatter:off
    http.authorizeRequests()
        .antMatchers("/login", "/authorize", "/error")
        .permitAll()
        .anyRequest()
        .authenticated()
        .and().formLogin().loginPage("https://sso.mywebsite.com").loginProcessingUrl("/perform_login")
        .defaultSuccessUrl("/success",true)
        .failureUrl("/error").permitAll()
        .and()
        .csrf()
        .disable();
    // @formatter:on
  }

我的关切如下所述。

要发出登录请求(使用用户名和密码),sso.mywebsite.com应该向我的oAuth服务-超文本传输协议发出POST请求://oauth/perform_login? username=USERNAME

我用Postman试过了,它有效。然而,像上面在查询参数中发送普通用户名和密码不是一个安全问题吗?我认为在uri(查询参数)中公开用户凭证可能会被各种网络嗅探工具捕获。

有没有一种方法可以用不同的方法来做到这一点?


共1个答案

匿名用户

  1. 只要您使用HTTPS,您的查询参数就会是安全的。
  2. 我不清楚,为什么你的SSO网站应该对URL进行POST(还有,为什么没有POST正文,而是通过url附加参数)。它不应该“重定向”到登录页面/授权服务器,还是上面的代码来自你的授权服务器?从你的描述中有点不清楚。