提问者:小点点

SpringBootAWSCognito配置,我需要一些澄清


我正在尝试使用AWSCognito进行身份验证/授权,使用SpringBoot开始一个新的简单项目

根据网络上的一些指南,我发现了一些不同的配置,例如:

  • https://www.baeldung.com/spring-security-oauth-cognito
  • https://wilkom2009.hashnode.dev/how-to-secure-spring-boot-rest-api-endpoints-with-amazon-cognito

在Baeldung中,仅使用Spring模块spring-security-oaut2-jose,而在第二个指南中,仅使用spring-boot-starter-oaut2-resource-server并配置资源服务器。两种配置都允许用户登录和访问应用程序。

我不知道这个2配置和什么时候应该使用一个而不是另一个之间的区别。在其他指南中,我看到两者一起使用。

感谢所有

我正在尝试创建一个简单的角度单页应用程序。


共2个答案

匿名用户

Baeldung文章看起来只是使用Spring而不是Spring Boot。所以他们不会使用spring-boot-starter模块。

如果您使用的是Spring Boot,您应该能够使用spring-boot-starter-oaut2-resource-server并遵循第二个指南。

spring-security-oaut2-jose实际上是spring-boot-starter-oaut2-resource-server的依赖项,并被它在幕后使用。

关于spring-boot-starter vs Spring模块的相关帖子:spring-boot-starter-oaut2-client、spring-cloud d-starter-oaut2和spring-security-oaut2有什么区别

匿名用户

为了好玩,第三个解决方案:我的第二个教程有一个Cognito配置文件(请参阅属性文件)。它比您引用的更短/更简单,并启用基于角色的访问控制(使用Cognito角色,而不仅仅是默认范围声明)

<dependency>
    <groupId>com.c4-soft.springaddons</groupId>
    <artifactId>spring-addons-webmvc-jwt-resource-server</artifactId>
    <version>6.0.8</version>
</dependency>
@EnableMethodSecurity
public static class SecurityConfig {
}
com.c4-soft.springaddons.security.issuers[0].location=https://cognito-idp.us-west-2.amazonaws.com/us-west-2_change-me
com.c4-soft.springaddons.security.issuers[0].authorities.claims=cognito:groups,scp
com.c4-soft.springaddons.security.cors[0].path=/your-api-path
com.c4-soft.springaddons.security.permit-all=/what,/should/be,/accessible,/to,/anonymous

此外,请务必在客户端使用经过认证的OpenID库。我最喜欢Angular是angular-auth-oidc-client。