我正在尝试使用AWSCognito进行身份验证/授权,使用SpringBoot开始一个新的简单项目
根据网络上的一些指南,我发现了一些不同的配置,例如:
在Baeldung中,仅使用Spring模块spring-security-oaut2-jose,而在第二个指南中,仅使用spring-boot-starter-oaut2-resource-server并配置资源服务器。两种配置都允许用户登录和访问应用程序。
我不知道这个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。