使用AWS_IAM向AWS WebSocket API网关授权请求

问题描述 投票:0回答:1

我已经使用WebSocket协议设置了API网关。在“ $ connect”路由请求设置上,我选择了“ AWS_IAM”作为授权方法。用户通过Cognito登录后,Web应用程序需要与此WebSocket API建立连接。然后如何通过Web应用程序上的JavaScript授权WebSocket API请求?使用HTTP API网关,我可以根据访问密钥和会话令牌生成签名,这些签名已传递到请求标头中。但是我无法在WebSocket请求中传递标头。

amazon-web-services websocket aws-api-gateway amazon-iam api-gateway
1个回答
0
投票

我从AWS支持人员那里得到了答案。我将需要签署wss URL。因此,签名信息将传递给查询字符串参数中的url,而不是在HTTP请求中设置请求标头。一个已签名的wss URL看起来像:wss://API_ID.execute-api.region.amazonaws.com/dev?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ACCESSKEY/20200131/region/execute-api/aws4_request&X-Amz-Date=20200131T100233Z&X-Amz-Security-Token=SECURITY_TOKEN&X-Amz-SignedHeaders=host&X-Amz-Signature=SIGNATURE

要生成签名的URL,我可以使用@ aws-amplify / core库中的Signer.signUrl方法。

© www.soinside.com 2019 - 2024. All rights reserved.