Соединение AWS IOT с федеративным логином (в идентификаторе cognito) было неудачным
- В пуле пользователей Cognito я установил и провайдера идентификации с учетной записью Microsoft в качестве OIDC и войти с учетными данными Microsoft Office.
- Путем обмена кодом, сгенерированным Microsoft, я могу получить токен доступа, токен обновления и Id токен из конечной точки токена Cognito.
- Путем обмена токеном id с aws.config.credentials я успешно получаю идентификатор ключа доступа, секретный ключ и токен сеанса.
- Я пытаюсь подключиться к конечной точке AWS iot, указав идентификатор ключа доступа, секретный ключ и токен сеанса.
- Не удалось подключиться к веб-сокету и выдает следующую ошибку.
2019-04-29 14: 48: 12.006 TRACEID: 420de021-715b-d81d-4a5e-daedde37dfd4 PRINCIPALID: AROAIN6B4B4KMSI2U3UEY: CognitoIdentityCredentials [ОШИБКА] СОБЫТИЕ: MQTT СОЕДИНЕНИЕ СОСТОЯНИЯ АВТОРИЗАЦИИ: СОЗДАНИЕ_ЗАКЛЮЧЕНИЯ АВТОРИЗАЦИИ: АУДИТОР СОСТОЯНИЯ: АВТОРИЗАЦИЯ_ПОЛЬЗОВ.
ПРИМЕЧАНИЕ. С пользователем cognito соединение было успешным
'' '
function connectWSHandler(dispatch){
var AWS = require('aws-sdk');
var AWSIoTData = require('aws-iot-device-sdk');
var AWSConfiguration = {
poolId: 'us-east-1:*****************************',
host:"a************-ats.iot.us-east-1.amazonaws.com",
region: 'us-east-1'
};
var wsOptions = {
handshakeTimeout:15000,
rejectUnauthorized:false
}
var clientId = localStorage.getItem("IdentityId");
var accessKeyId = localStorage.getItem("AccessKeyId");
console.log('accessKeyId',accessKeyId);
var secretKey = localStorage.getItem("SecretKey");
var sessionToken = localStorage.getItem("SessionToken");
if(accessKeyId==null || secretKey==null || sessionToken==null)return;
mqttClient = AWSIoTData.device({
host:AWSConfiguration.host,
clientId: clientId,
protocol: 'wss',
websocketOptions:wsOptions,
maximumReconnectTimeMs: 8000,
debug: true,
accessKeyId: accessKeyId,
secretKey: secretKey,
sessionToken: sessionToken
});
Соединение с AWS IOT должно быть успешным