我正在使用 Spring Security 和 Spring Authorization Server 并尝试创建身份验证服务器。
我有一个基本流程,允许我使用预先构建的登录页面登录(来自baledung 指南- 这是我正在处理的代码)。我假设这个登录页面表单来自formLogin()这样的:
http.authorizeRequests(authorizeRequests ->
authorizeRequests.anyRequest().authenticated()
)
//.formLogin(withDefaults());
return http.build();
Run Code Online (Sandbox Code Playgroud)
我不想使用这个预构建的表单,因为我需要完全单独托管和运行登录表单前端应用程序。即在不同的服务器、域和代码库上。
提出这个问题的另一种方式可能是:
authorization-server以便我可以将其与完全独立的表单一起使用?SecurityFilterChain这些方式定制我的?这是正确的查看位置吗?我发现 baledung 文章(以及类似的文章)作为起点很有帮助,但很少适用于更实际的用例。我相信 Spring Security 和 oauth2 库将允许我做我想做的事情,但并不完全清楚。我正在使用 amplify-cli 将 Next.js 应用程序部署到 Amplify。我已将我的 amplify 应用程序连接到几个现有的(使用 terraform 创建的)DynamoDB 表。我已成功修改附加的放大应用程序的服务角色,添加到AmazonDynamoDBFullAccess权限策略中(稍后我将对其进行限制)。我本以为这会起作用,但它不会传播到创建的API Lambda@Edge for Next CloudFront distribution或Default Lambda@Edge for Next CloudFront distribution
我可以看到日志显示这些 lambda 的权限错误。
arn:aws:sts::999999999:assumed-role/rgsuvm9-psuzoeg/us-east-1.ggvvff-abc123 is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:eu-west-2:6666666666:table/MyTable
Run Code Online (Sandbox Code Playgroud)
我注意到这些角色是使用为AWS Service: lambda可信实体生成的名称自动创建的,这些实体附加了仅允许访问日志和 S3 的策略。
以下是这些生成的角色的附加权限策略之一的示例(这是在我手动编辑它以添加 dynamodb 访问权限之前):
arn:aws:sts::999999999:assumed-role/rgsuvm9-psuzoeg/us-east-1.ggvvff-abc123 is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:eu-west-2:6666666666:table/MyTable
Run Code Online (Sandbox Code Playgroud)
手动选择其中之一并添加 dynamodb 读/写权限可以解决问题,并且 SSR Edge lambda 似乎具有连接到 dynamodb 的正确权限 - 很好,但这不是一个好方法
我的问题是:如何更改SSR Lambda的权限?对我来说手动将这些权限添加到这个明确生成的角色中并不是一个可行或好的解决方案。
对我来说,它不使用放大应用程序的常规设置中分配的服务角色似乎很奇怪。这可能是 amplify 的问题吗?还是我错误配置了服务角色?(我使用的服务角色使用 …
amazon-web-services amazon-dynamodb aws-lambda next.js aws-amplify