我的 API Gateway 配置为在授权请求时调用我的自定义授权方 Lambda 函数。
对于带有身份验证令牌的请求,Lambda 函数会解密和解码 JWT 令牌,并在将请求传递到上游之前进行一些验证。如果令牌验证失败,授权方会使用 401 Unauthorized 将请求短路。
对于不带有身份验证令牌的请求,该函数仅允许请求通过(生成允许策略)。网关的上游负责决定给定请求是否需要身份验证(仍然,令牌解密/解码/验证是合理地封装在网关中,而不是在每个上游中实现。)
我的问题是:对于我的网关/授权方“允许”的未经身份验证的请求,允许策略的主体 ID 的适当值是多少?我似乎没有选择离开它undefined
。
此外,如果我在多个不相关的请求之间重复使用主体 ID,是否有任何风险?假设 X% 的请求共享'unauthenticated'
主体 ID,作为最坏的例子,这些原本不相关的请求之间是否存在某种行为“冲突”的风险?也许一个规避风险/面向未来的解决方案是简单地附加一个 UUID 后缀:'unauthenticated|{uuid}'
.
https://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html
除了返回 IAM 策略外,自定义授权函数还必须返回调用者的委托人标识符。