Spec-Zone.ru › AWS CLI v2

[ aws . cognito-idp ]

respond-to-auth-challenge

Описание

Некоторые API-операции в пользовательском пуле генерируют вызов, например, запрос на ввод кода MFA, для аутентификации устройства, минуя MFA, или для пользовательского вызова аутентификации. API-запрос RespondToAuthChallenge предоставляет ответ на этот вызов, например, код или безопасный удаленный пароль (SRP). Параметры ответа на вызов аутентификации зависят от типа вызова.

Дополнительную информацию о пользовательских вызовах аутентификации см. в разделе Триггеры Lambda пользовательского вызова аутентификации.

Примечание

Amazon Cognito не оценивает политики управления идентификацией и доступом (IAM) в запросах для этой API-операции. Для этой операции нельзя использовать учетные данные IAM для авторизации запросов и нельзя предоставлять разрешения IAM в политиках. Дополнительную информацию об моделях авторизации в Amazon Cognito см. в разделе Использование API-интерфейсов и конечных точек пользовательских пулов Amazon Cognito.

Примечание

Данное действие может генерировать SMS-сообщение. Начиная с 1 июня 2021 года, операторы связи США требуют регистрации номера отправки, прежде чем вы сможете отправлять SMS-сообщения на номера телефонов в США. Если вы используете SMS-сообщения в Amazon Cognito, вы должны зарегистрировать номер телефона в Amazon Pinpoint . Amazon Cognito автоматически использует зарегистрированный номер. В противном случае пользователи Amazon Cognito, которым необходимо получать SMS-сообщения, могут не иметь возможности зарегистрироваться, активировать свои учетные записи или войти в систему.

Если вы никогда не использовали SMS-сообщения с Amazon Cognito или любой другой службой Amazon Web Services, Amazon Simple Notification Service может поместить вашу учетную запись в песочницу SMS. В режиме песочницы вы можете отправлять сообщения только на проверенные номера телефонов. После тестирования приложения в среде песочницы вы можете перейти из песочницы в производственную среду. Дополнительную информацию см. в разделе Настройки SMS-сообщений для пользовательских пулов Amazon Cognito в руководстве разработчика Amazon Cognito.

См. также: Документацию API AWS

Синтаксис

  respond-to-auth-challenge
--client-id <value>
--challenge-name <value>
[--session <value>]
[--challenge-responses <value>]
[--analytics-metadata <value>]
[--user-context-data <value>]
[--client-metadata <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Параметры

--client-id (строка)

Идентификатор клиента приложения, где пользователь проходит вход.

--challenge-name (строка)

Название запрошенной проверки.

Примечание

Вы не можете ответить на проверку ADMIN_NO_SRP_AUTH с помощью данной операции.

Возможные проверки включают:

Примечание

Все следующие проверки требуют USERNAME и, если у клиента приложения есть секретный ключ, SECRET_HASH в параметрах.
  • WEB_AUTHN : Ответьте на проверку результатами успешной аутентификации с помощью аутентификатора WebAuthn или ключа доступа. Примерами аутентификаторов WebAuthn являются биометрические устройства и защищённые ключи.
  • PASSWORD : Ответ с параметрами USER_PASSWORD_AUTH: USERNAME (обязательно), PASSWORD (обязательно), SECRET_HASH (обязательно, если у клиента приложения настроен секретный ключ), DEVICE_KEY.
  • PASSWORD_SRP : Ответ с параметрами USER_SRP_AUTH: USERNAME (обязательно), SRP_A (обязательно), SECRET_HASH (обязательно, если у клиента приложения настроен секретный ключ), DEVICE_KEY.
  • SELECT_CHALLENGE : Ответ на проверку с USERNAME и ANSWER, соответствующим одному из типов проверок в параметре ответа AvailableChallenges.
  • SMS_MFA : Ответ с SMS_MFA_CODE, отправленным вашим пулом пользователей в SMS-сообщении.
  • EMAIL_OTP : Ответ с EMAIL_OTP_CODE, отправленным вашим пулом пользователей в электронном письме.
  • PASSWORD_VERIFIER : Ответ с PASSWORD_CLAIM_SIGNATURE , PASSWORD_CLAIM_SECRET_BLOCK и TIMESTAMP после вычислений SRP на стороне клиента.
  • CUSTOM_CHALLENGE : Возвращается, если ваш пользовательский поток аутентификации определяет, что пользователю нужно пройти ещё одну проверку перед выдачей токенов. Параметры проверки определяются вашей функцией Lambda.
  • DEVICE_SRP_AUTH : Ответ с начальными параметрами аутентификации SRP для устройства. Дополнительная информация доступна в разделе Вход с устройством.
  • DEVICE_PASSWORD_VERIFIER : Ответ с PASSWORD_CLAIM_SIGNATURE , PASSWORD_CLAIM_SECRET_BLOCK и TIMESTAMP после вычислений SRP на стороне клиента. Дополнительная информация доступна в разделе Вход с устройством.
  • NEW_PASSWORD_REQUIRED : Для пользователей, которым требуется сменить пароль после успешного первого входа. Ответьте на эту проверку с NEW_PASSWORD и любыми необходимыми атрибутами, возвращёнными Amazon Cognito в параметре requiredAttributes. Вы также можете установить значения для атрибутов, которые не являются обязательными для вашего пула пользователей и которые могут быть записаны вашим клиентом приложения. Amazon Cognito возвращает эту проверку только для пользователей с временными паролями. При создании пользователей без пароля необходимо предоставить значения для всех необходимых атрибутов.

Примечание

При ответе на проверку NEW_PASSWORD_REQUIRED вы не можете изменить обязательный атрибут, который уже имеет значение. В AdminRespondToAuthChallenge или RespondToAuthChallenge установите значение для любых ключей, возвращённых Amazon Cognito в параметре requiredAttributes, а затем используйте операцию API AdminUpdateUserAttributes или UpdateUserAttributes для изменения значения дополнительных атрибутов.
  • MFA_SETUP : Для пользователей, которым требуется настроить фактор MFA перед входом. Типы MFA, активированные для пула пользователей, будут перечислены в значении параметра проверки MFAS_CAN_SETUP. Для настройки MFA с временным паролем (TOTP) используйте сессию, возвращённую в данной проверке из InitiateAuth или AdminInitiateAuth в качестве входных данных для AssociateSoftwareToken . Затем используйте сессию, возвращённую VerifySoftwareToken , в качестве входных данных для RespondToAuthChallenge или AdminRespondToAuthChallenge с именем проверки MFA_SETUP для завершения входа. Для настройки SMS или email MFA, соберите атрибут phone_number или email для пользователя. Затем перезапустите поток аутентификации с запросом InitiateAuth или AdminInitiateAuth.

Возможные значения:

  • SMS_MFA
  • EMAIL_OTP
  • SOFTWARE_TOKEN_MFA
  • SELECT_MFA_TYPE
  • MFA_SETUP
  • PASSWORD_VERIFIER
  • CUSTOM_CHALLENGE
  • SELECT_CHALLENGE
  • DEVICE_SRP_AUTH
  • DEVICE_PASSWORD_VERIFIER
  • ADMIN_NO_SRP_AUTH
  • NEW_PASSWORD_REQUIRED
  • SMS_OTP
  • PASSWORD
  • WEB_AUTHN
  • PASSWORD_SRP

--session (строка)

Идентификатор сессии, сохраняющий состояние запросов на аутентификацию и ответов на проверки. Если запрос API AdminInitiateAuth или AdminRespondToAuthChallenge приводит к тому, что ваше приложение должно пройти ещё одну проверку, Amazon Cognito возвращает сессию с другими параметрами проверки. Отправьте этот идентификатор сессии без изменений в следующий запрос AdminRespondToAuthChallenge.

--challenge-responses (словарь)

Ответы на проверки, полученные в предыдущем запросе. У каждой проверки есть свои необходимые параметры ответа. Ниже приведены примеры фрагментов JSON запросов, которые демонстрируют параметры ответа на проверки.

Предупреждение

Вы должны предоставить параметр SECRET_HASH во всех ответах на проверки для клиентов приложения, у которых есть секретный ключ. Включите DEVICE_KEY для аутентификации устройств.

SELECT_CHALLENGE

"ChallengeName": "SELECT_CHALLENGE", "ChallengeResponses": { "USERNAME": "[username]", "ANSWER": "[Challenge name]"}

Доступные проверки — PASSWORD , PASSWORD_SRP , EMAIL_OTP , SMS_OTP и WEB_AUTHN.

Завершите аутентификацию в ответе SELECT_CHALLENGE для PASSWORD , PASSWORD_SRP и WEB_AUTHN:

  • "ChallengeName": "SELECT_CHALLENGE", "ChallengeResponses": { "ANSWER": "WEB_AUTHN", "USERNAME": "[username]", "CREDENTIAL": "[AuthenticationResponseJSON]"} См. AuthenticationResponseJSON.
  • "ChallengeName": "SELECT_CHALLENGE", "ChallengeResponses": { "ANSWER": "PASSWORD", "USERNAME": "[username]", "PASSWORD": "[password]"}
  • "ChallengeName": "SELECT_CHALLENGE", "ChallengeResponses": { "ANSWER": "PASSWORD_SRP", "USERNAME": "[username]", "SRP_A": "[SRP_A]"}

Для SMS_OTP и EMAIL_OTP ответьте с именем пользователя и ответом. Ваш пул пользователей отправит код пользователю для отправки в следующем ответе на проверку.

  • "ChallengeName": "SELECT_CHALLENGE", "ChallengeResponses": { "ANSWER": "SMS_OTP", "USERNAME": "[username]"}

  • "ChallengeName": "SELECT_CHALLENGE", "ChallengeResponses": { "ANSWER": "EMAIL_OTP", "USERNAME": "[username]"}

    SMS_OTP

"ChallengeName": "SMS_OTP", "ChallengeResponses": {"SMS_OTP_CODE": "[code]", "USERNAME": "[username]"}

EMAIL_OTP

"ChallengeName": "EMAIL_OTP", "ChallengeResponses": {"EMAIL_OTP_CODE": "[code]", "USERNAME": "[username]"}

SMS_MFA

"ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[code]", "USERNAME": "[username]"}

PASSWORD_VERIFIER

Этот ответ на проверку является частью потока SRP. Amazon Cognito требует, чтобы ваше приложение ответило на эту проверку в течение нескольких секунд. Если время ответа превышает этот период, ваш пул пользователей вернёт ошибку NotAuthorizedException.

"ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"}

Добавьте "DEVICE_KEY" при входе с запомненного устройства.

CUSTOM_CHALLENGE

"ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"}

Добавьте "DEVICE_KEY" при входе с запомненного устройства.

NEW_PASSWORD_REQUIRED

"ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"}

Для установки любых необходимых атрибутов, возвращённых InitiateAuth в параметре requiredAttributes, добавьте "userAttributes.[attribute_name]": "[attribute_value]". Этот параметр также может устанавливать значения для атрибутов, которые не являются обязательными для вашего пула пользователей.

Примечание

При ответе на проверку NEW_PASSWORD_REQUIRED вы не можете изменить обязательный атрибут, который уже имеет значение. В AdminRespondToAuthChallenge или RespondToAuthChallenge установите значение для любых ключей, возвращённых Amazon Cognito в параметре requiredAttributes, а затем используйте операцию API AdminUpdateUserAttributes или UpdateUserAttributes для изменения значения дополнительных атрибутов.

SOFTWARE_TOKEN_MFA

"ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]}

DEVICE_SRP_AUTH

"ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"}

DEVICE_PASSWORD_VERIFIER

"ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"}

MFA_SETUP

"ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]"

SELECT_MFA_TYPE

"ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"}

Дополнительная информация о SECRET_HASH доступна в разделе Вычисление хэшей секретов. Информация о DEVICE_KEY — в разделе Работа с пользовательскими устройствами в вашем пуле пользователей.

ключ -> (строка)

значение -> (строка)

Сокращённый синтаксис:

KeyName1=string,KeyName2=string

Синтаксис JSON:

{"string": "string"
  ...}

--analytics-metadata (структура)

Информация, поддерживающая аналитические результаты с Amazon Pinpoint, включая идентификатор конечной точки пользователя. Идентификатор конечной точки — это место назначения push-уведомлений Amazon Pinpoint, например, идентификатор устройства, адрес электронной почты или номер телефона.

AnalyticsEndpointId -> (строка)

Идентификатор конечной точки. Информация, которую вы хотите передать Amazon Pinpoint о том, куда отправлять уведомления.

Сокращённый синтаксис:

AnalyticsEndpointId=string

Синтаксис JSON:

{
  "AnalyticsEndpointId": "string"
}

--user-context-data (структура)

Контекстные данные о вашей сессии пользователя, такие как отпечаток устройства, IP-адрес или местоположение. Amazon Cognito система защиты от угроз оценивает риск события аутентификации на основе контекста, который ваше приложение генерирует и передаёт Amazon Cognito при выполнении запросов API.

Дополнительная информация доступна в разделе Сбор данных для защиты от угроз в приложениях.

IpAddress -> (строка)

IP-адрес устройства пользователя.

EncodedData -> (строка)

Кодированные данные отпечатка устройства, собранные вашим приложением с помощью библиотеки сбора данных контекста Amazon Cognito. Дополнительная информация доступна в разделе Добавление данных о пользовательском устройстве и сессии в запросы API.

Сокращённый синтаксис:

IpAddress=string,EncodedData=string

Синтаксис JSON:

{
  "IpAddress": "string",
  "EncodedData": "string"
}

--client-metadata (словарь)

Карта пользовательских пар «ключ-значение», которую можно указать в качестве входных данных для любых пользовательских рабочих процессов, которые запускает данное действие.

Пользовательские рабочие процессы создаются путем назначения функций Lambda для триггеров пула пользователей. При использовании действия API RespondToAuthChallenge Amazon Cognito вызывает все функции, которые назначены следующим триггерам: после аутентификации, перед генерацией токена, определение запроса на аутентификацию, создание запроса на аутентификацию и проверка запроса на аутентификацию. Когда Amazon Cognito вызывает любую из этих функций, он передает JSON-полезную нагрузку, которую функция получает в качестве входных данных. Эта полезная нагрузка содержит атрибут clientMetadata, который предоставляет данные, которые вы назначили параметру ClientMetadata в вашем запросе RespondToAuthChallenge. В коде вашей функции в Lambda вы можете обработать значение clientMetadata, чтобы улучшить свой рабочий процесс для ваших конкретных потребностей.

Дополнительную информацию см. в руководстве разработчика Amazon Cognito Использование триггеров Lambda.

Примечание

При использовании параметра ClientMetadata обратите внимание, что Amazon Cognito не выполнит следующие действия:

  • Хранить значение ClientMetadata. Эти данные доступны только для триггеров Lambda, которые назначены пулу пользователей для поддержки пользовательских рабочих процессов. Если в вашей конфигурации пула пользователей нет триггеров, параметр ClientMetadata не имеет значения.
  • Проверять значение ClientMetadata.
  • Шифровать значение ClientMetadata. Не отправляйте конфиденциальную информацию в этом параметре.

ключ -> (строка)

значение -> (строка)

Сокращенная синтаксическая запись:

KeyName1=string,KeyName2=string

Синтаксис JSON:

{"string": "string"
  ...}

--cli-input-json | --cli-input-yaml (строка) Читает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному в --generate-cli-skeleton. Если другие аргументы предоставлены в командной строке, эти значения переопределят значения, предоставленные в JSON. Невозможно передавать произвольные двоичные значения с помощью значения, предоставленного в JSON, так как строка будет воспринята буквально. Это может не быть указано вместе с --cli-input-yaml.

--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса API. Если не указано значение или указано значение input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если указано значение yaml-input, будет напечатан пример входного YAML, который можно использовать с --cli-input-yaml. Если указано значение output, проверяет входные данные команд и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.

Глобальные параметры

--debug (логическое значение)

Включает отладочную запись в журнал.

--endpoint-url (строка)

Переопределяет URL по умолчанию команды указанным URL.

--no-verify-ssl (логическое значение)

По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого соединения SSL AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет стандартное поведение проверки сертификатов SSL.

--no-paginate (логическое значение)

Отключает автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.

--output (строка)

Стиль форматирования для вывода команды.

  • json
  • text
  • таблица
  • yaml
  • yaml-поток

--query (строка)

Запрос JMESPath для фильтрации данных ответа.

--profile (строка)

Использование определенного профиля из файла учетных данных.

--region (строка)

Область для использования. Переопределяет настройки конфигурации/среды.

--version (строка)

Отображение версии этого инструмента.

--color (строка)

Включение/выключение цветного вывода.

  • включено
  • выключено
  • автоматически

--no-sign-request (логическое значение)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.

--ca-bundle (строка)

Файл сертификата CA для проверки сертификатов SSL. Переопределяет настройки конфигурации/среды.

--cli-read-timeout (целое число)

Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию составляет 60 секунд.

--cli-connect-timeout (целое число)

Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию составляет 60 секунд.

--cli-binary-format (строка)

Стиль форматирования для использования для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как закодированная в base64 строка. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI версии 1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, которое соответствует двоичному блоку, fileb:// всегда будет обрабатываться как двоичное и будет использовать содержимое файла непосредственно независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (логическое значение)

Отключение пейджера CLI для вывода.

--cli-auto-prompt (логическое значение)

Автоматически запрашивать входные параметры CLI.

--no-cli-auto-prompt (логическое значение)

Отключение автоматического запроса входных параметров CLI.

Примеры

Примечание

Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в Руководстве пользователя AWS CLI.

Если не указано иное, во всех примерах используются правила цитирования Unix. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки терминала. См. Руководство пользователя AWS CLI раздел Использование кавычек со строками.

Пример 1: Ответ на запрос NEW_PASSWORD_REQUIRED

Следующий пример respond-to-auth-challenge отвечает на запрос NEW_PASSWORD_REQUIRED, который вернул `initiate-auth`_. Он устанавливает пароль для пользователя jane@example.com.

aws cognito-idp respond-to-auth-challenge \
    --client-id 1example23456789 \
    --challenge-name NEW_PASSWORD_REQUIRED \
    --challenge-responses USERNAME=jane@example.com,NEW_PASSWORD=[Password] \
    --session AYABeEv5HklEXAMPLE

Вывод:

{
    "ChallengeParameters": {},
    "AuthenticationResult": {
        "AccessToken": "ACCESS_TOKEN",
        "ExpiresIn": 3600,
        "TokenType": "Bearer",
        "RefreshToken": "REFRESH_TOKEN",
        "IdToken": "ID_TOKEN",
        "NewDeviceMetadata": {
            "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "DeviceGroupKey": "-wt2ha1Zd"
        }
    }
}

Дополнительную информацию см. в руководстве разработчика Amazon Cognito Аутентификация.

Пример 2: Ответ на запрос SELECT_MFA_TYPE

Следующий пример respond-to-auth-challenge выбирает TOTP MFA в качестве опции MFA для текущего пользователя. Пользователю было предложено выбрать тип MFA, и впоследствии ему будет предложено ввести код MFA.

aws cognito-idp respond-to-auth-challenge \
    --client-id 1example23456789
    --session AYABeEv5HklEXAMPLE
    --challenge-name SELECT_MFA_TYPE
    --challenge-responses USERNAME=testuser,ANSWER=SOFTWARE_TOKEN_MFA

Вывод:

{
    "ChallengeName": "SOFTWARE_TOKEN_MFA",
    "Session": "AYABeEv5HklEXAMPLE",
    "ChallengeParameters": {
        "FRIENDLY_DEVICE_NAME": "transparent"
    }
}

Дополнительную информацию см. в руководстве разработчика Amazon Cognito Добавление MFA.

Пример 3: Ответ на запрос SOFTWARE_TOKEN_MFA

Следующий пример respond-to-auth-challenge предоставляет код TOTP MFA и завершает вход в систему.

aws cognito-idp respond-to-auth-challenge \
    --client-id 1example23456789 \
    --session AYABeEv5HklEXAMPLE \
    --challenge-name SOFTWARE_TOKEN_MFA \
    --challenge-responses USERNAME=testuser,SOFTWARE_TOKEN_MFA_CODE=123456

Вывод:

{
    "AuthenticationResult": {
        "AccessToken": "eyJra456defEXAMPLE",
        "ExpiresIn": 3600,
        "TokenType": "Bearer",
        "RefreshToken": "eyJra123abcEXAMPLE",
        "IdToken": "eyJra789ghiEXAMPLE",
        "NewDeviceMetadata": {
            "DeviceKey": "us-west-2_a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "DeviceGroupKey": "-v7w9UcY6"
        }
    }
}

Дополнительную информацию см. в руководстве разработчика Amazon Cognito Добавление MFA.

Вывод

ChallengeName -> (строка)

Название следующего запроса, на который необходимо ответить.

Возможные запросы включают:

Примечание

Все следующие запросы требуют USERNAME и, если у клиента приложения есть секретный ключ, SECRET_HASH в параметрах.
  • WEB_AUTHN : Ответьте на запрос результатами успешной аутентификации с помощью аутентификатора WebAuthn или ключа passkey. Примерами аутентификаторов WebAuthn являются биометрические устройства и защищённые ключи.
  • PASSWORD : Ответьте с параметрами USER_PASSWORD_AUTH: USERNAME (обязательно), PASSWORD (обязательно), SECRET_HASH (обязательно, если у клиента приложения настроен секретный ключ), DEVICE_KEY .
  • PASSWORD_SRP : Ответьте с параметрами USER_SRP_AUTH: USERNAME (обязательно), SRP_A (обязательно), SECRET_HASH (обязательно, если у клиента приложения настроен секретный ключ), DEVICE_KEY .
  • SELECT_CHALLENGE : Ответьте на запрос с USERNAME и ANSWER, соответствующим одному из типов запросов в параметре ответа AvailableChallenges.
  • SMS_MFA : Ответьте с SMS_MFA_CODE, отправленным вашим пулом пользователей по SMS.
  • EMAIL_OTP : Ответьте с EMAIL_OTP_CODE, отправленным вашим пулом пользователей по электронной почте.
  • PASSWORD_VERIFIER : Ответьте с PASSWORD_CLAIM_SIGNATURE , PASSWORD_CLAIM_SECRET_BLOCK и TIMESTAMP после вычислений на стороне клиента.
  • CUSTOM_CHALLENGE : Возвращается, если ваш пользовательский поток аутентификации определяет, что пользователю нужно пройти другой запрос перед выдачей токенов. Параметры запроса определяются вашей функцией Lambda.
  • DEVICE_SRP_AUTH : Ответьте с начальными параметрами аутентификации SRP устройства. Дополнительную информацию см. в разделе Вход с помощью устройства.
  • DEVICE_PASSWORD_VERIFIER : Ответьте с PASSWORD_CLAIM_SIGNATURE , PASSWORD_CLAIM_SECRET_BLOCK и TIMESTAMP после вычислений на стороне клиента. Дополнительную информацию см. в разделе Вход с помощью устройства.
  • NEW_PASSWORD_REQUIRED : Для пользователей, которым требуется сменить пароль после успешного первого входа. Ответьте на запрос с NEW_PASSWORD и необходимыми атрибутами, которые Amazon Cognito вернул в параметре requiredAttributes. Вы также можете задавать значения для атрибутов, не требуемых вашим пулом пользователей и которые ваше клиентское приложение может записать. Amazon Cognito возвращает этот запрос только для пользователей с временными паролями. При создании пользователей без пароля необходимо предоставить значения для всех обязательных атрибутов.

Примечание

При ответе на запрос NEW_PASSWORD_REQUIRED нельзя изменять обязательный атрибут, который уже имеет значение. В AdminRespondToAuthChallenge или RespondToAuthChallenge задайте значение для любых ключей, которые Amazon Cognito вернул в параметре requiredAttributes, затем используйте операцию API AdminUpdateUserAttributes или UpdateUserAttributes для изменения значения дополнительных атрибутов.
  • MFA_SETUP : Для пользователей, которые должны настроить фактор MFA перед входом. Типы MFA, активированные для пула пользователей, будут перечислены в значении параметра запроса MFAS_CAN_SETUP. Для настройки временного одноразового пароля (TOTP) MFA используйте сеанс, возвращённый в этом запросе из InitiateAuth или AdminInitiateAuth, как входной параметр для AssociateSoftwareToken. Затем используйте сеанс, возвращённый VerifySoftwareToken, как входной параметр для RespondToAuthChallenge или AdminRespondToAuthChallenge с именем запроса MFA_SETUP для завершения входа. Для настройки MFA по SMS или электронной почте соберите атрибут phone_number или email для пользователя. Затем перезапустите поток аутентификации с запросом InitiateAuth или AdminInitiateAuth.

Session -> (строка)

Идентификатор сеанса, который поддерживает состояние запросов на аутентификацию и ответов на запросы. Если запрос API InitiateAuth или RespondToAuthChallenge приводит к тому, что ваше приложение должно пройти другой запрос, Amazon Cognito возвращает сеанс с другими параметрами запроса. Передайте этот идентификатор сеанса без изменений в следующий запрос RespondToAuthChallenge.

ChallengeParameters -> (карта)

Параметры, определяющие ваш ответ на следующий запрос.

ключ -> (строка)

значение -> (строка)

AuthenticationResult -> (структура)

Результат успешного процесса аутентификации. После того, как ваше приложение прошло все запросы, Amazon Cognito возвращает AuthenticationResult с JSON-веб-токенами (JWT), которые указывают на успешный вход.

AccessToken -> (строка)

Токен доступа пользователя.

ExpiresIn -> (целое число)

Срок действия результата аутентификации в секундах.

TokenType -> (строка)

Предполагаемое использование токена, например, Bearer.

RefreshToken -> (строка)

Токен обновления пользователя.

IdToken -> (строка)

Токен идентификатора пользователя.

NewDeviceMetadata -> (структура)

Новые метаданные устройства из результата аутентификации.

DeviceKey -> (строка)

Ключ устройства, идентификатор, используемый для генерации DEVICE_PASSWORD_VERIFIER для аутентификации SRP устройства.

DeviceGroupKey -> (строка)

Ключ группы устройств, идентификатор, используемый для генерации DEVICE_PASSWORD_VERIFIER для аутентификации SRP устройства.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API