使用 cognito 进行身份验证和自定义授权方进行授权

时间:2021-03-08 00:20:45

标签: amazon-web-services aws-lambda aws-api-gateway amazon-cognito

我有一个使用 AWS Cognito、Lambda 和 API Gateway 的无服务器应用程序。 用户使用 AWS Cognito(使用外部身份提供商)进行用户身份验证和授权登录。 API 网关使用 Cognito Authorizer 来保护对 lambda 函数的访问。

初始用例很简单,任何发送到 API Gateway 的请求都需要通过 Cognito 进行身份验证,并且他们有权调用 lambda 函数。只要他们可以登录,他们就可以调用 lambda。

现在我想更改授权。即使用户能够通过 Cognito 进行身份验证,他们也必须包含某些范围才能获得调用 lambda 的授权。这些范围可以在外部 authz 服务中获取或检查。 API 网关上的 Cognito 授权方不允许我实现自定义逻辑来调用外部 authz 服务。

推荐的处理方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以在此用例中使用 lambda authorizer

在您的 lambda 中,您可以首先验证您的传入令牌 (example),一旦验证成功,您就可以使用 authz 服务检查授权范围。