[ aws . cognito-idp ]
initiate-auth
Описание
Объявляет поток аутентификации и инициирует вход пользователя в каталоге пользователей Amazon Cognito. Amazon Cognito может ответить дополнительным запросом или AuthenticationResult, содержащим результат успешной аутентификации. Вы не можете войти в систему с помощью федеративного IdP с InitiateAuth. Для получения дополнительной информации см. Аутентификацию.
Примечание
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
Синопсис
initiate-auth
--auth-flow <value>
[--auth-parameters <value>]
[--client-metadata <value>]
--client-id <value>
[--analytics-metadata <value>]
[--user-context-data <value>]
[--session <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]
Параметры
--auth-flow (строка)
Поток аутентификации, который вы хотите инициировать. Каждый AuthFlow имеет связанные AuthParameters, которые вы должны отправить. Ниже приведены некоторые примеры потоков.
Точка входа для аутентификации на основе выбора с паролями, одноразовыми паролями и аутентификаторами WebAuthn. Запросите предпочтительный тип аутентификации или просмотрите доступные типы аутентификации. Из предложенных типов аутентификации выберите один в запросе на подтверждение, а затем выполните аутентификацию с помощью этого метода в дополнительном запросе на подтверждение. Для активации этого параметра ваш пул пользователей должен быть в уровне Essentials или выше.
Аутентификация с именем пользователя и паролем с использованием протокола Secure Remote Password (SRP). Дополнительную информацию см. в разделе Использование проверки паролей SRP в пользовательском потоке аутентификации.
Получите новые идентификационные и доступные токены, когда вы передадите параметр REFRESH_TOKEN со значением допустимого токена обновления. Дополнительную информацию см. в разделе Использование токена обновления.
Пользовательская аутентификация с триггерами Lambda. Дополнительную информацию см. в разделе Пользовательские триггеры Lambda вызова аутентификации.
Аутентификация с именем пользователя и паролем на стороне клиента с паролем, отправленным непосредственно в запросе. Дополнительную информацию об аутентификации на стороне клиента и сервера см. в разделе Модели авторизации SDK.
ADMIN_USER_PASSWORD_AUTH — это тип потока AdminInitiateAuth и недействителен для InitiateAuth. ADMIN_NO_SRP_AUTH — это устаревший поток аутентификации с именем пользователя и паролем на серверной стороне и недействителен для InitiateAuth.Возможные значения:
USER_SRP_AUTHREFRESH_TOKEN_AUTHREFRESH_TOKENCUSTOM_AUTHADMIN_NO_SRP_AUTHUSER_PASSWORD_AUTHADMIN_USER_PASSWORD_AUTHUSER_AUTH
--auth-parameters (словарь)
Параметры аутентификации. Это входные данные, соответствующие вызываемому AuthFlow.
Требуемые значения специфичны для InitiateAuthRequest$AuthFlow.
Ниже приведены некоторые потоки аутентификации и их параметры. Добавьте параметр SECRET_HASH, если у вашего клиентского приложения есть секретный ключ.
-
USER_AUTH:USERNAME(обязательно),PREFERRED_CHALLENGE. Если вы не предоставите значение дляPREFERRED_CHALLENGE, Amazon Cognito ответит параметромAvailableChallenges, который указывает доступные методы входа. -
USER_SRP_AUTH:USERNAME(обязательно),SRP_A(обязательно),DEVICE_KEY. -
USER_PASSWORD_AUTH:USERNAME(обязательно),PASSWORD(обязательно),DEVICE_KEY. -
REFRESH_TOKEN_AUTH/REFRESH_TOKEN:REFRESH_TOKEN(обязательно),DEVICE_KEY. -
CUSTOM_AUTH:USERNAME(обязательно),SECRET_HASH(если клиентское приложение настроено с секретным ключом),DEVICE_KEY. Чтобы начать поток аутентификации с проверкой пароля, включитеChallengeName: SRP_AиSRP_A: (The SRP_A Value).
Дополнительную информацию о SECRET_HASH см. в разделе Вычисление хешей секретов. Для получения информации об DEVICE_KEY см. работу с устройствами пользователей в вашем пуле пользователей.
ключ -> (строка)
значение -> (строка)
Краткая синтаксическая запись:
KeyName1=string,KeyName2=string
Синтаксис JSON:
{"string": "string"
...}
--client-metadata (словарь)
Словарь пользовательских пар ключ-значение, которые вы можете предоставить в качестве входных данных для определенных пользовательских рабочих процессов, которые запускает данное действие.
Вы создаете пользовательские рабочие процессы, назначая функции Lambda триггерам пула пользователей. При отправке запроса InitiateAuth Amazon Cognito вызывает функции Lambda, указанные для различных триггеров. Значение ClientMetadata передается как входной параметр функциям только для следующих триггеров.
- До регистрации
- До аутентификации
- Миграция пользователей
Когда Amazon Cognito вызывает функции для этих триггеров, он передает JSON-платеж как входные данные функции. Этот платеж содержит атрибут validationData с данными, которые вы назначили параметру ClientMetadata в своем запросе InitiateAuth. В вашей функции validationData может внести вклад в операции, которые требуют данных, отсутствующих в стандартном платеже.
InitiateAuth вызывает следующие триггеры без ClientMetadata в качестве входных данных.- После аутентификации
- Пользовательское сообщение
- Перед генерацией токена
- Создание вызова аутентификации
- Определение вызова аутентификации
- Пользовательский отправитель электронной почты
- Пользовательский отправитель SMS
Дополнительную информацию см. в разделе Использование триггеров Lambda в Руководстве разработчика Amazon Cognito.
Примечание
При использовании параметра ClientMetadata обратите внимание, что Amazon Cognito не выполняет следующие действия:
- Хранение значения
ClientMetadata. Эти данные доступны только триггерам Lambda, назначенным пулу пользователей для поддержки пользовательских рабочих процессов. Если в конфигурации вашего пула пользователей нет триггеров, параметрClientMetadataне выполняет никакой функции. - Проверка значения
ClientMetadata. - Шифрование значения
ClientMetadata. Не отправляйте конфиденциальную информацию в этом параметре.
ключ -> (строка)
значение -> (строка)
Краткая синтаксическая запись:
KeyName1=string,KeyName2=string
Синтаксис JSON:
{"string": "string"
...}
--client-id (строка)
--analytics-metadata (структура)
Информация, которая поддерживает результаты аналитики с Amazon Pinpoint, включая идентификатор конечной точки пользователя. Идентификатор конечной точки — это место назначения push-уведомлений Amazon Pinpoint, например, идентификатор устройства, адрес электронной почты или номер телефона.
AnalyticsEndpointId -> (строка)
Краткая синтаксическая запись:
AnalyticsEndpointId=string
Синтаксис JSON:
{
"AnalyticsEndpointId": "string"
}
--user-context-data (структура)
Контекстуальные данные о вашей сессии пользователя, такие как отпечаток устройства, IP-адрес или местоположение. Защита от угроз Amazon Cognito оценивает риск события аутентификации на основе контекста, который ваше приложение генерирует и передает Amazon Cognito при выполнении запросов API.
Дополнительную информацию см. в разделе Сбор данных для защиты от угроз в приложениях.
IpAddress -> (строка)
EncodedData -> (строка)
Краткая синтаксическая запись:
IpAddress=string,EncodedData=string
Синтаксис JSON:
{
"IpAddress": "string",
"EncodedData": "string"
}
--session (строка)
ConfirmSignUp. Вы можете войти в систему пользователю непосредственно из процесса регистрации с помощью потока аутентификации USER_AUTH. Когда вы передаете идентификатор сеанса в InitiateAuth, Amazon Cognito принимает одноразовый пароль по SMS или электронной почте из ConfirmSignUp в качестве основного фактора аутентификации. Вам не нужно вводить этот код повторно. Этот параметр действителен только для пользователей, которые подтвердили свою регистрацию и выполняют вход в первый раз в течение срока действия сеанса идентификатора сеанса.--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 (boolean)
Включить отладку логгирования.
--endpoint-url (string)
Переопределить URL по умолчанию команды заданным URL.
--no-verify-ssl (boolean)
По умолчанию AWS CLI использует SSL при общении с сервисами AWS. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет поведение проверки SSL-сертификатов по умолчанию.
--no-paginate (boolean)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (string)
Стиль форматирования вывода команды.
- json
- text
- table
- yaml
- yaml-stream
--query (string)
Запрос JMESPath для фильтрации данных ответа.
--profile (string)
Использовать определённый профиль из файла учетных данных.
--region (string)
Регион для использования. Переопределяет настройки конфигурации/среды.
--version (string)
Отобразить версию этого инструмента.
--color (string)
Включить/отключить цветной вывод.
- on
- off
- auto
--no-sign-request (boolean)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.
--ca-bundle (string)
Файл сертификатов CA для проверки SSL-сертификатов. Переопределяет настройки конфигурации/среды.
--cli-read-timeout (int)
Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет блокирующим и не будет ограничено по времени. Значение по умолчанию составляет 60 секунд.
--cli-connect-timeout (int)
Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет блокирующим и не будет ограничено по времени. Значение по умолчанию составляет 60 секунд.
--cli-binary-format (string)
Стиль форматирования, используемый для бинарных блоков. Формат по умолчанию — 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 (boolean)
Отключить пейджер CLI для вывода.
--cli-auto-prompt (boolean)
Автоматически запросить параметры ввода CLI.
--no-cli-auto-prompt (boolean)
Отключить автоматическое запросить параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в руководстве пользователя AWS CLI.
Если не указано иное, все примеры используют правила цитирования Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. использование кавычек со строками в руководстве пользователя AWS CLI.
Для входа пользователя
Следующий initiate-auth пример выполняет вход пользователя с использованием стандартного процесса ввода имени пользователя и пароля без дополнительных проверок.
aws cognito-idp initiate-auth \
--auth-flow USER_PASSWORD_AUTH \
--client-id 1example23456789 \
--analytics-metadata AnalyticsEndpointId=d70b2ba36a8c4dc5a04a0451aEXAMPLE \
--auth-parameters USERNAME=testuser,PASSWORD=[Password] --user-context-data EncodedData=mycontextdata --client-metadata MyTestKey=MyTestValue
Вывод:
{
"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.
Вывод
ChallengeName -> (строка)
Имя дополнительного аутентификационного запроса, на который необходимо ответить.
Возможные запросы включают следующие:
Примечание
Все следующие запросы требуют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. Для настройки временного одноразового пароля (TOTP) MFA используйте сеанс, возвращенный в этом запросе изInitiateAuthилиAdminInitiateAuth, как входные данные дляAssociateSoftwareToken. Затем используйте сеанс, возвращенныйVerifySoftwareToken, как входные данные дляRespondToAuthChallengeилиAdminRespondToAuthChallengeс именем запросаMFA_SETUPдля завершения входа. Для настройки SMS или email MFA соберите атрибутphone_numberилиemailдля пользователя. Затем перезапустите поток аутентификации с запросомInitiateAuthилиAdminInitiateAuth.
Session -> (строка)
ChallengeParameters -> (карта)
Необходимые параметры запроса ChallengeName.
Все запросы требуют USERNAME. Они также требуют SECRET_HASH, если у вашего клиента приложения есть секретный ключ.
key -> (строка)
value -> (строка)
AuthenticationResult -> (структура)
Результат успешного и завершенного запроса аутентификации. Этот результат возвращается только если пользователю не нужно проходить дополнительный запрос. Если пользователю необходимо пройти дополнительный запрос перед получением токенов, Amazon Cognito возвращает запрос в параметрах ответа ChallengeName , ChallengeParameters и Session.
AccessToken -> (строка)
ExpiresIn -> (целое число)
TokenType -> (строка)
Bearer.RefreshToken -> (строка)
IdToken -> (строка)
NewDeviceMetadata -> (структура)
Новые метаданные устройства из результата аутентификации.
DeviceKey -> (строка)
DEVICE_PASSWORD_VERIFIER для аутентификации SRP устройства.DeviceGroupKey -> (строка)
DEVICE_PASSWORD_VERIFIER для аутентификации SRP устройства.AvailableChallenges -> (список)
Этот параметр ответа перечисляет доступные аутентификационные запросы, которые могут выбрать пользователи при аутентификации с выбором. Например, они могут выбрать аутентификацию с помощью ключа доступа, одноразового пароля из SMS-сообщения и традиционного пароля.
(строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.