首页 文章

AWS API网关自定义授权程序提供异常

提问于
浏览
0

我必须使用AWS API Gateway和Lambda创建自定义授权 .

我按照offical doc的所有步骤提到了 . 但最后网关正在给予 Unauthorized

以下是我遵循的步骤 .

1)创建lambda函数(根据github上的蓝图) . 它将以适当的格式返回policyDocument . 这已通过以下测试数据测试 - { "type": "TOKEN", "methodArn": "arn:aws:execute-api:us-west-2:xxxxxxxxxx:fgdfgdfg/null/GET/", "authorizationToken": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMzQ1Njc4OTAiLCJuYW1lIjoiSm9obiBEb2UiLCJhZG1pbiI6dHJ1ZX0.x8R6LPytDMrPuUBY71skyLBUrkme86DhioN3L7LY_-0" }

2)创建API . 选择“创建方法” - >“获取” - >“切片集成”类型为“Lambda函数” - >选择在上一步中创建的区域和lambda函数名称 .

3)单击授权者(在左侧面板上) - >创建新授权者 - >给定授权者名称 - >选择Lambda作为类型 - >选择Lambda函数 - > Lambda执行角色是具有basix执行角色策略的arn - >有效负载作为令牌 - > Token Source是'method.request.header.Authorization' - >缓存是禁用的 .

Refer this

4)测试授权者并返回适当的策略

5)我已经部署了API

6)尝试使用Postman以“授权:承载”调用URL . 输出是{“message”:“Unauthorized”}

任何帮助将不胜感激!谢谢 .

2 回答

  • 0

    好吧,AWS很棒 . 我从一个月开始一直在玩API Gateway . API Gateway的文档确实需要一些更新 . 我经历过使用API Gateway需要大量的试错法 . 看来文档(特别是API Gateway的自定义授权程序)是通过假设开发人员知道构建API网关授权程序所需的内容编写的 .

    我不知道我是否遗漏了某些东西,或者它太复杂,无法理解自定义授权器的文档 . 在调查(相当长的时间)后,我发现它的确切工作 . 我会尝试在下面解释一下可能会发现这个有用的人 .

    自定义授权器的概念非常简单 . 当我们创建授权器(基于令牌或基于请求)时,来自客户端的请求将首先执行授权者(Lambda函数),然后,如果允许请求,API网关将请求转发到上游(或 endpoints URL) . 而已!这里不再混淆了 .

    这就是我对文档的期望 . 有视频可用,但由于添加了新的功能,它们需要更新 . (如基于请求的授权器)

    我正在通过比较AWS API Gateway和Kong API Gateway来构建POC . 相信我,我只需要一两天的时间来完成Kong的设置和AWS API Gateway的8-10天 . 不管怎样,谢谢!

  • 0

    您的令牌源是您在“AuthorizationToken”中发送的有效负载中的“授权” .

相关问题