如何在 API 网关中通过混合 Cognito 身份和用户池来授权 API

Posted

技术标签:

【中文标题】如何在 API 网关中通过混合 Cognito 身份和用户池来授权 API【英文标题】:How to authorize APIs with mixing Cognito Identity & User Pool in API Gateway 【发布时间】:2019-08-22 05:15:21 【问题描述】:

我有一个AWS API Gateway 中的资源,目前包括:

01 组 API 需要通过 Cognito 用户池 进行身份验证和授权 另一组 API 需要使用 Cognito 身份池的开发人员身份验证身份增强流程进行授权,并通过 AWS_IAM 验证授权

问题是 AWS API Gateway 仅支持使用 01 授权者配置 01 资源(Cognito 用户池或 AWS_IAM)。那么,支持两种方法验证授权的解决方案是什么(Cognito 用户池和 AWS_IAM)?

我有一个想法,为授权方使用 Lambda 函数,但我不确定它是否支持使用 AWS_IAM 验证授权。如果可能的话,有人可以帮我提供一个用于 Lambda 函数的示例代码 Nodejs 吗?

谢谢。

【问题讨论】:

【参考方案1】:

这个假设是不正确的。

可以在 API 网关级别添加授权者,但可以为每个 API 选择授权类型,可以是 IAM 也可以是 Cognito。

因此,根据要求,一组 API 可以将 IAM 作为授权方,而另一组 API 可以将 Cognito 作为授权方。

【讨论】:

以上是关于如何在 API 网关中通过混合 Cognito 身份和用户池来授权 API的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android上通过retrofit2调用带有Cognito Credentials的API网关?

如何缓存来自 cognito 的 ID 令牌,以便后续访问 API 网关?

AWS Lambda、API 网关和 Cognito:如何在 lambda 函数中获取身份对象?

如何从 Amplify 获取与 API 网关和 cognito 一起使用的访问令牌?

如何从 Cognito 获取 Apple 刷新令牌?

使用带或不带 cognito 的 aws api 网关的联合身份的轻量级 rbac