我正在尝试在API网关中使用AWS自定义授权程序。如果我理解正确,那么我应该在自定义授权器中验证用户。我不知道是谁发送了请求。我应该使用自己的服务通过令牌检测用户。正确?
答案 0 :(得分:1)
有多个授权选项
如果您使用STS颁发的令牌授予对AWS资源的访问权限,则可以使用IAM。
同样,Cognito授权程序将验证Cognito Userpools id令牌。
如果您有自己的身份验证方案或需要自定义身份验证机制,则可以使用自定义授权程序。
答案 1 :(得分:1)
我想在这里加上我的2美分,这是流程:
一旦持票人令牌(你也可以使用JWT),就会发给 客户端(即移动应用/网络应用),客户端调用通过API网关创建,配置和部署的REST API。
自定义授权程序,它是用Java编写的lambda函数 (您可以使用NodeJS,C#,Python实现它),需要验证持有者令牌是否有效。在我的例子中,使用SHA-512算法对Bearer令牌进行哈希处理。所以我们基本匹配如果令牌 存储在DB和客户端matche提供的令牌中。
如果令牌匹配,则自定义授权程序返回IAM策略允许但是 它令牌不正确然后返回IAM策略拒绝,
API网关根据自定义授权者的响应做出反应,如果策略允许它直接调用后端,则返回HTTP代码403。
希望它会有所帮助。