繁体   English   中英

Spring Boot 2 + Oauth2-保护微服务中的其余调用

[英]Spring boot 2 + Oauth2 - Securing the Rest Calls in Microservices

我正在从事spring boot 2微服务。 现在我打算使用OAUTH2确保我的休息电话安全。

我发现有很多关于Spring 2 + OAUTH2集成的文章,但与我的要求不符,所有文章都使用表和使用角色的安全调用,

我的应用程序登录使用SAML(SSO)进行单点登录,我的要求是仅授权每个请求。 最好的方法是什么?

  1. 因为使用SSO已经发生登录,我是否真的需要表为用户存储令牌?
  2. 这里唯一的事情就是不管用户的角色如何都授权请求。

任何建议或github链接,以符合简单的要求,将不胜感激。

@premKumarR

对于您在内存v / s JDBC中哪个更好的评论。 对于Spring Docs,

这是对它们的讨论的描述

默认的InMemoryTokenStore非常适合单个服务器(例如,低流量,并且在发生故障的情况下不与备份服务器进行热交换)。 大多数项目都可以从此处开始,并且可以在开发模式下以这种方式运行,从而可以轻松启动没有依赖性的服务器。

JdbcTokenStore是同一事物的JDBC版本,它将令牌数据存储在关系数据库中。 如果可以在服务器之间共享数据库,请使用JDBC版本;如果只有一个,则可以扩展同一服务器的实例;如果有多个组件,则可以使用授权和资源服务器。 要使用JdbcTokenStore,您需要在类路径上使用“ spring-jdbc”。

文件连结: https : //projects.spring.io/spring-security-oauth/docs/oauth2.html

OAuth2具有创建用于身份验证的令牌的不同实现。 默认情况下,它通过随机值创建令牌并处理所有TokenStore除了将其委托给TokenStore的令牌的持久性TokenStore 默认存储是内存中的实现,但是还有其他一些可用的实现。

JdbcTokenStore是同一事物的JDBC版本,它将令牌数据存储在关系数据库中。

存储的JSON Web Token (JWT)版本,但不保留数据。

所以回答你的问题

  • 因为使用SSO已经发生登录,我是否真的需要表为用户存储令牌?

    不必要。 据我了解,您仅打算进行身份验证而不生成令牌。

  • 这里唯一的事情就是不管用户的角色如何都授权请求。

    您可以使用WebSecurityConfigurerAdapter使传入的请求失效。 例如如下

    公共类配置扩展了WebSecurityConfigurerAdapter {

     @Override public void configure(HttpSecurity http) throws Exception { http.csrf().disable() .authorizeRequests() .antMatchers("/authorization-server-1/**", "/login").permitAll() .anyRequest().authenticated(); } } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM