Amazon Cognito高级安全功能未正确识别用户客户端设备问题咨询
问题:Amazon Cognito高级安全功能忽略前端传入设备数据,显示后端服务器设备信息
我已启用处于AUDIT模式的Amazon Cognito高级安全功能,未使用托管UI(hosted UI)。前端按照官方文档收集高级安全所需数据,包含正确的客户端设备与操作系统信息(例如Windows + Chrome)。
前端收集的解码后payload如下:
'{\"payload\":\"{\\\"contextData\\\":{\\\"UserAgent\\\":\\\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36\\\",\\\"DeviceId\\\":\\\"XXXX:XXXX\\\",\\\"DeviceLanguage\\\":\\\"de-DE\\\",\\\"DeviceFingerprint\\\":\\\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36PDF Viewer:Chrome PDF Viewer:Chromium PDF Viewer:Microsoft Edge PDF Viewer:WebKit built-in PDF:de-DE\\\",\\\"DevicePlatform\\\":\\\"Win32\\\",\\\"ClientTimezone\\\":\\\"02:00\\\"},\\\"username\\\":\\\"XXX\\\",\\\"userPoolId\\\":\\\"XXX\\\",\\\"timestamp\\\":\\\"1666690380680\\\"}\",\"signature\":\"XXXX\",\"version\":\"JS20171115\"}'
但在Cognito控制台中显示的设备却是后端服务器的设备(Linux系统),这显然不符合预期。
后端登录调用代码如下:
$this->client->initiateAuth([ 'AuthFlow' => 'USER_PASSWORD_AUTH', 'AuthParameters' => [ 'USERNAME' => $username, 'PASSWORD' => $password, 'SECRET_HASH' => $secret, ], 'ClientMetadata' => [ ... ], 'ClientId' => $this->clientId, 'UserContextData' => [ 'EncodedData' => $encodedData, 'IpAddress' => $ip, ], ]);
同时,在调用forgotPassword、confirmForgotPassword和signUp接口时传入相同数据,也出现同样的设备显示错误。
为何Cognito会忽略我传入的编码数据,反而使用请求的服务器信息?这会导致高级安全功能完全失效,恳请解答。
内容的提问来源于stack exchange,提问作者Havrin
相关产品推荐
相关产品推荐

