AWS 测试-调用-授权方:'token'未能满足约束:成员的长度必须小于或等于 1024



尝试调用我的自定义授权器时,我会遇到错误。我称之为这样:

aws --region eu-central-1 iot test-invoke-authorizer --authorizer-name go-dev-iot-authorizer --token "$TOKEN" --token-signature "$SIGNATURE"

(其中$TOKEN$SIGNATURE是包含JWT令牌及其AWS签名的bash变量(

这是我得到的回应:

An error occurred (InvalidRequestException) when calling the TestInvokeAuthorizer operation: 1 validation error detected: Value '[MY TOKEN IS PRINTED HERE]' at 'token' failed to satisfy constraint: Member must have length less than or equal to 1024

我可以看到,这里确实存在1024个字符限制:https://docs.aws.amazon.com/iot/latest/developerguide/api-com.amazonaws.ientity.inderity.testinvokeauthorizer。html

我的访问令牌是1418个字符,因此很明显它超过了这个限制。我的问题是,这仅仅是对测试启动的授权器命令的限制,还是此限制也适用于真实事物?我使用的是标准身份提供商(KeyCloak(的普通JWT令牌,因此我真的没有什么可以缩短它的。我是否以某种方式使用了此错误,还是在AWS授权器中的JWT令牌确实有1024个字符限制?

aws ioT测试效率授权器练习相同的约束,以帮助调试实际自定义授权调用。

不幸的是,AWS IoT DeviceGateway具有标头尺寸限制,该限制将自定义验证令状长度限制为目前的1024个字符。

如果您的JWT令牌包含任何授权信息,那么我建议将其剥离以将其限制在身份验证中,因为授权者返回的IoT策略文件旨在完成授权。


现在

最新更新