如何在 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 函数中获取身份对象?