我正在从事Spring Boot 2微服务。现在我打算使用OAUTH2确保我的休息电话安全。
我发现很多文章涉及Spring 2 + OAUTH2集成,但与我的要求不符,所有文章都使用表和使用角色进行安全调用
我的应用程序登录使用SAML(SSO)进行单点登录,我的要求是仅授权每个请求。最好的方法是什么?
任何符合简单要求的建议或github链接将不胜感激。
答案 0 :(得分:0)
@premKumarR
对于您在内存v / s JDBC中哪个更好的评论。 对于Spring Docs,
下面是对它们的一些讨论的描述
默认的InMemoryTokenStore非常适合单台服务器(即,低流量,并且在发生故障时不与备份服务器进行热交换)。大多数项目都可以从此处开始,并且可以在开发模式下以这种方式进行操作,以轻松启动没有依赖关系的服务器。
JdbcTokenStore是同一事物的JDBC版本,它将令牌数据存储在关系数据库中。如果可以在服务器之间共享数据库,请使用JDBC版本;如果只有一个,则可以扩展同一服务器的实例;如果有多个组件,则可以使用授权和资源服务器。要使用JdbcTokenStore,您需要在类路径上使用“ spring-jdbc”。
文档链接:https://projects.spring.io/spring-security-oauth/docs/oauth2.html
答案 1 :(得分:0)
OAuth2具有创建用于身份验证的令牌的不同实现。默认情况下,它通过随机值创建令牌,并处理所有事务,除了将其委托给TokenStore
的令牌的持久性之外。默认存储是内存中的实现,但是还有其他一些实现。
JdbcTokenStore
是同一事物的JDBC版本,它将令牌数据存储在关系数据库中。
商店的JSON Web Token
(JWT)版本,但不保留数据。
所以回答您的问题
不是必需的。据我了解,您仅打算进行身份验证而不生成令牌。
您可以使用WebSecurityConfigurerAdapter
确认传入的请求。例如如下
公共类配置扩展了WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.authorizeRequests()
.antMatchers("/authorization-server-1/**",
"/login").permitAll()
.anyRequest().authenticated();
}
}