spring - 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 请求 - http://oauth/perform_login?username=USERNAME&password=PASSWORD。
我用 Postman 试了一下,效果很好。但是,在查询参数中发送像上面这样的普通用户名和密码不是一个安全问题吗?我认为在 uri(查询参数)中公开用户凭据可能会被各种网络嗅探工具捕获。
有没有办法用不同的方法做到这一点?
解决方案
- 只要您使用 HTTPS,您的查询参数就会是安全的。
- 我不清楚,为什么您的 SSO 网站应该对该 URL 进行 POST(以及为什么不使用 POST 正文,而是通过 url 附加参数)。它不应该“重定向”到登录页面/授权服务器还是上面的代码来自您的授权服务器?从你的描述看有点不清楚。
推荐阅读
- html - 如何在表格边界内对齐文本输入元素?
- python - 枚举 Pandas 数据框后,字典条目都相同
- python - Django & Celery - 跨多个方法和文件发送信号
- typescript - Firebase 数据库出现意外令牌错误
- c# - Microsoft.EntityFrameworkCore ProjectTo() 找不到我的存储库的方法定义
- python - Python - Beautifulsoup - 从列表中传递单个 url 以被抓取
- javascript - javascript table标签粉碎jquery next函数
- javascript - 相同 div 中的事件委托
- mysql - 在 node.js 上使用合并和续集
- java - 以以下方式迭代地图有什么区别?