我们有一个Cognito用户池,其中包含我们希望允许访问我们的API的用户。我们的API使用Lambda函数为端点提供服务。Cognito池配置了一个自定义字段roles
,该字段本质上是用户拥有的角色的逗号分隔列表。
现在,首先,我们希望发生Cognito身份验证(以确定用户是否属于我们的池,以及凭据是否有效)。然后,我们以某种方式想要运行我们的自定义逻辑来运行,它将查看将通过声明接收的roles
字段,然后根据内部业务逻辑允许或拒绝请求。
我们尝试使用自定义授权器来实现此逻辑,并将其设置为端点的授权器。然后,我们为这个授权器函数启用了Cognito授权。问题在于,由于Cognito保护的是API端点,而不是lambda函数本身,因此当命中API端点并调用自定义授权程序时,Cognito授权根本不会运行。
我们如何实现在Cognito授权中使用自定义逻辑的目标?在这方面的任何帮助都将受到高度的感谢。
发布于 2017-12-14 23:42:07
用户令牌中的所有声明都在上下文中可用,如果您正在使用$context.authorizer.claims.property
下的认知授权器,则可以将这些声明传递给您的lambda函数。您是否会将该声明映射到您的lambda函数中,并检查在您的lambda工作开始时角色是否存在?
https://stackoverflow.com/questions/47653095
复制相似问题