Amazon web services 调试AWS HTTP API(beta版)JWT授权程序
我正在试验这个功能 作为实验的一部分,我试图使用“JWT授权者”授权访问api: 文件规定,联合工作组在被授权或拒绝之前,将经历一个由一系列检查/验证组成的工作流程 如果没有授权人,端点是可访问的。通过授权人,我得到一个401响应,其中包含json:Amazon web services 调试AWS HTTP API(beta版)JWT授权程序,amazon-web-services,amazon-api-gateway,Amazon Web Services,Amazon Api Gateway,我正在试验这个功能 作为实验的一部分,我试图使用“JWT授权者”授权访问api: 文件规定,联合工作组在被授权或拒绝之前,将经历一个由一系列检查/验证组成的工作流程 如果没有授权人,端点是可访问的。通过授权人,我得到一个401响应,其中包含json: {"message":"Unauthorized"} 我正在尝试确定授权人在哪一步拒绝JWT。我已经为api端点设置了一个日志,并看到了请求,但它没有提供授权失败的原因 有没有办法调试授权人失败的原因/原
{"message":"Unauthorized"}
我正在尝试确定授权人在哪一步拒绝JWT。我已经为api端点设置了一个日志,并看到了请求,但它没有提供授权失败的原因
有没有办法调试授权人失败的原因/原因
注意:这不是在谈论lamda授权人,我也不是在使用Cognito生成JWT。401意味着无法建立用户的身份验证。基本上,JWT要么有故障,要么没有在API网关所期望的报头中提供请求 此外,API网关不是一个成熟的服务器,所以无法调试API网关是如何利用JWT的。虽然这可能是一个令人沮丧的问题,但请注意,它确实为您的后端提供了一个高度可扩展、可靠且廉价的HTTP端点,并提供了内置的基于JWT的身份验证支持,而且它刚刚在大多数地区可用。所以,我现在还不会把它划掉 回到你的问题上来。虽然我不知道如何帮助调试部分。我可以告诉您我在不编写一行代码的情况下使用JWT authorizer进行实验的步骤
在完成所有这些之后,我能够测试API网关是否能够与我生成的JWT一起工作。现在,我可以更加自信地开始编写代码,幸运的是,JAVA、node等工具已经可用。看看响应。有一个名为www authenticate的头,其中包含一个错误响应onse,如果身份验证失败 i、 e: www-authenticate:Bearer-scope=”“error=“无效的令牌”error\u description=“JWKS通信错误”
如果您使用curl,您可以使用-v来查看完整的响应,包括标题。对于遇到 OIDC发现终结点元数据中的颁发者与配置的颁发者不匹配“ 在S3上托管OpenId配置和JWK文件时出错 确保你使用
https://BUCKETNAME.s3.amazonaws.com/
而不是
https://BUCKETNAME.REGION.s3.amazonaws.com/
对于issuer字段。您可以使用解码JWT令牌并验证有效负载是否正确以及是否符合预期吗?有趣的是,我实际上使用JWT.io生成了令牌。令牌完全可能有一个不正确/缺失的字段,或者令牌内容与授权人设置不匹配。我的主推在t他现在要做的是确定调试是否可行。如果我无法洞察到底出了什么问题,那么我不想继续使用Amazon的网关,因为能够进行调试对我和我的团队来说是非常重要的。(我目前正在评估AWS API网关作为团队内部使用的工具)我刚刚进入了学习的同一阶段。似乎有一种选择是将所有传入的[HTTP请求]路由到一个无防护的[lambda],在那里进行手动调试。(下一步可能会尝试)感谢您写得这么好的回答。我以后会回到http api网关,我相信您的回答届时会对我有所帮助,同时也会立即对其他人有所帮助。谢谢!这给了我“OIDC发现端点元数据中的颁发者与配置的颁发者不匹配”,因此我可以继续:)