【问题标题】:AWS API Gateway and Spring boot custom authorizationAWS API Gateway 和 Spring Boot 自定义授权
【发布时间】:2022-01-11 19:27:53
【问题描述】:

我目前正在处理一个需要自定义身份验证过程的项目。 此应用程序将部署在 AWS 平台上,我正在考虑在其中使用以下 AWS 服务,例如

  1. API 网关
  2. 自定义授权
  3. EKS

计划将所有后端服务部署在 docker 容器中,并使用 EKS 服务进行容器编排过程。 所有输入请求都将通过 API 网关进行验证并路由到相应的后端服务。
我们将使用自定义授权流程,可能的步骤如下:

  1. 我们的应用程序(例如 CHILD-APP)将与现有应用程序(例如 PARENT-APP)集成,其中 PARENT-APP 将负责用户身份验证。
  2. 用户认证成功后,PARENT-APP 将向 CHILD-APP 请求访问令牌(JWT 令牌)。
  3. CHILD-APP 用户界面将使用此访问令牌进行后端请求调用。
  4. 我们正在使用自定义访问令牌验证流程来检查令牌完整性、用户名验证和其他额外验证(由于合规性而无法公开)。
  5. 目前我正在使用 Spring Boot API Gateway 进行 URL 路由和访问令牌验证。
  6. 还使用自定义 Spring Cloud Eureka 服务器来注册服务。

问题:

  1. 如何使用 AWS API Gateway 进行此类自定义身份验证和授权流程?
  2. 我可以将 Spring Cloud Eureka 服务器和自定义授权与 AWS API 网关一起使用吗?

感谢任何与此相关的帮助。

谢谢,

阿维纳什

【问题讨论】:

    标签: amazon-web-services spring-boot jwt api-gateway


    【解决方案1】:

    您似乎正在寻找 AWS Lambda Authorizers:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html 这些是 lambda 函数,可用于授权在网关级别访问您的 API。

    在 Curity,我们最近创建了这样一个授权器,它向授权服务器执行自省请求,以用不透明的令牌交换 JWT:https://github.com/curityio/aws-phantom-token-lambda-authorizer 看起来您需要类似的东西。您的授权方可以调用父应用程序,该应用程序将对令牌执行所有自定义验证并返回正确的结果,然后 AWS Lambda 授权方将使用该结果来做出授权决定。

    【讨论】:

    • 您好,Michal,感谢您的回复。我会经历这个并尝试理解它。再次感谢!!
    • 嗨 Michel,我在使用 Lambda 授权方时是否需要使用 AWS Cognito?
    • 我不这么认为。我认为应该可以在没有 Cognito 的情况下使用 lambda 授权器。
    猜你喜欢
    • 1970-01-01
    • 2016-11-30
    • 2019-03-04
    • 2018-04-17
    • 2018-10-01
    • 2018-03-21
    • 2020-06-17
    • 2017-05-18
    • 2018-03-09
    相关资源
    最近更新 更多