Amazon web services 为API网关的用户使用API密钥对
我有一个web应用程序,它的API都在AWS API网关的后面运行。它当前使用Cognito令牌进行身份验证 现在,我希望用户能够设置API密钥对(id和secret),这样他们就可以用另一种方式以编程方式验证和访问他们的帐户,类似于此() 我知道一些解决方案(非最佳IMO,如果我错了,请纠正我):Amazon web services 为API网关的用户使用API密钥对,amazon-web-services,api,authorization,aws-api-gateway,api-key,Amazon Web Services,Api,Authorization,Aws Api Gateway,Api Key,我有一个web应用程序,它的API都在AWS API网关的后面运行。它当前使用Cognito令牌进行身份验证 现在,我希望用户能够设置API密钥对(id和secret),这样他们就可以用另一种方式以编程方式验证和访问他们的帐户,类似于此() 我知道一些解决方案(非最佳IMO,如果我错了,请纠正我): 可以使用来自API网关的API密钥,但根据文档,它并不用于身份验证 我们可以使用IAM凭据,但我不确定将IAM凭据分配给用户(而不是内部开发人员)是否是一种好的做法 使用API网关实现类似()的功能
使用API网关实现类似()的功能的最佳方法是什么 我建议实现一个基于请求的Lambda授权器[1]。 看看您的示例,您似乎也希望实施一些定制的安全策略(即,基于IP地址的检查,启用特定的API)
- 您的Cognito用户池仍将用于对您的web应用程序进行基于用户名/密码的身份验证李>
- 我的想法是将用户的API密钥和自定义安全策略存储在一个单独的数据存储器(例如DynamoDB)中
- 然后用户可以在调用API时使用这些API键李>
- API网关将触发Lambda授权人,Lambda授权人负责验证传入请求中的API密钥,并根据您的自定义安全策略生成IAM策略李>