gpt4 book ai didi

oauth-2.0 - 具有 oauth2 和 spring security 的 AWS api 网关

转载 作者:行者123 更新时间:2023-12-02 23:39:17 27 4
gpt4 key购买 nike

我前面有 aws api 网关。使用 api 网关直接通过 ALB(应用程序负载均衡器)的 http 端点。并将 ECS fargate 作为 ALB 目标组。我在 Spring Boot 中开发了 3 个微服务。

现在我想为我的其余 API 集成 oauth2 和 spring security。如何与aws api gateway集成?我没有使用 lambda,也不想使用 aws cognito。

什么是架构?如何将 aouth2 与多个微服务集成?

最佳答案

不确定您是否询问如何使用 Spring Security 来保护您的微服务,或者(如果您已经配置了 Spring Security)那么如何配置 AWS API Gateway 以在调用微服务之前使用 Spring Security 对请求进行身份验证。但我会尝试在下面的简短回答中涵盖这两个问题。

为了保护您的 AWS API Gateway 端点,您需要使用 AWS Lambda Authorizer 来实现您的目标。这是您需要的文档 ( https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html )。您不必使用 AWS Cognito 来实现 API Gateway 安全性。您创建的 Lambda Authorizer 可以根据您已在微服务中实现的任何库、框架或模型对请求进行身份验证。

在我的回答中,我做出以下假设:

  1. 我假设您已经配置了 Spring Security 来保护您的微服务(如果没有,此链接提供了有关如何执行此操作的很好的教程 https://dzone.com/articles/spring-security-with-oauth2 )。
  2. 我还假设您已从 Spring Security 成功生成 OAuth token ,并且您的 API 客户端将其作为不记名 token 在 Authorization header 中发送。

简而言之,使用 Java 创建 Lambda 授权方(按照第一个链接中的教程进行操作)这个想法是您指定包含 OAuth 持有者 token 的 HTTP header (通常是“授权” header )。然后,您配置 API Gateway 端点以将此 header 传递给您的 Lambda 授权方。一旦 Lambda Authorizer 函数收到 header ,它就可以使用 Spring Security 库来验证不记名 token (请参阅上面的第二个链接了解如何实现这一点)。如果不记名 token 已成功验证,则 Lambda 授权方的输出必须是一个策略文档(请参阅此链接 https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html ),告诉 API Gateway 是否允许该请求或拒绝该请求。

从架构角度来看,将微服务实现为单独的 Lambda 函数(如果可能),然后使用 API Gateway Lambda Authorizer 保护它们(如上所述)会更加简洁。

我希望这能为您提供一些关于如何继续前进的指导。

关于oauth-2.0 - 具有 oauth2 和 spring security 的 AWS api 网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54629454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com