[ aws . cognito-idp ]
admin-initiate-auth
Описание
Начинает вход в систему для приложений с компонентом на стороне сервера, например, для традиционного веб-приложения. Этот оператор задаёт поток аутентификации, который вы хотите начать. Поток аутентификации, который вы задаёте, должен поддерживаться в конфигурации клиента приложения. Дополнительную информацию о потоках аутентификации см. в разделе Потоки аутентификации .
Примечание
Данное действие может генерировать 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 .
Примечание
Amazon Cognito оценивает политики Identity and Access Management (IAM) в запросах для данной операции API. Для этой операции необходимо использовать учетные данные IAM для авторизации запросов и предоставить себе соответствующее разрешение IAM в политике.
- Подписание запросов к API Amazon Web Services
- Использование API пулов пользователей Amazon Cognito и конечных точек пулов пользователей
См. также: Документация API AWS
Синтаксис
admin-initiate-auth
--user-pool-id <value>
--client-id <value>
--auth-flow <value>
[--auth-parameters <value>]
[--client-metadata <value>]
[--analytics-metadata <value>]
[--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]
Параметры
--user-pool-id (строка)
--client-id (строка)
--auth-flow (строка)
Поток аутентификации, который вы хотите инициировать. Каждый AuthFlow имеет связанные AuthParameters, которые вы должны отправить. Ниже приведены некоторые примеры потоков.
Точка входа для аутентификации на основе выбора с паролями, одноразовыми паролями и аутентификаторами WebAuthn. Запросите предпочитаемый тип аутентификации или просмотрите доступные типы аутентификации. Из предложенных типов аутентификации выберите один в запросе-ответ, а затем выполните аутентификацию с помощью этого метода в дополнительном запросе-ответ. Для активации этого параметра ваш пул пользователей должен быть в уровне Essentials или выше.
Аутентификация по имени пользователя и паролю с использованием протокола Secure Remote Password (SRP). Дополнительную информацию см. в разделе Использование проверки паролей SRP в пользовательском потоке аутентификации .
Получение новых идентификационных и доступных токенов при передаче параметра REFRESH_TOKEN со значением действительного токена обновления. Дополнительную информацию см. в разделе Использование токена обновления .
Пользовательская аутентификация с триггерами Lambda. Дополнительную информацию см. в разделе Триггеры Lambda пользовательской аутентификации .
Аутентификация по имени пользователя и паролю на стороне сервера с паролем, отправленным напрямую в запросе. Дополнительную информацию об аутентификации на стороне клиента и сервера см. в разделе Модели авторизации SDK .
Возможные значения:
USER_SRP_AUTHREFRESH_TOKEN_AUTHREFRESH_TOKENCUSTOM_AUTHADMIN_NO_SRP_AUTHUSER_PASSWORD_AUTHADMIN_USER_PASSWORD_AUTHUSER_AUTH
--auth-parameters (массив)
Параметры аутентификации. Это входные данные, соответствующие вызываемому AuthFlow. Требуемые значения зависят от значения AuthFlow, например:
- Для
USER_AUTH:USERNAME(обязательно),PREFERRED_CHALLENGE. Если вы не предоставите значение дляPREFERRED_CHALLENGE, Amazon Cognito ответит с параметромAvailableChallenges, который указывает доступные методы входа. - Для
USER_SRP_AUTH:USERNAME(обязательно),SRP_A(обязательно),SECRET_HASH(обязательно, если клиент приложения настроен с секретом клиента),DEVICE_KEY. - Для
ADMIN_USER_PASSWORD_AUTH:USERNAME(обязательно),PASSWORD(обязательно),SECRET_HASH(обязательно, если клиент приложения настроен с секретом клиента),DEVICE_KEY. - Для
REFRESH_TOKEN_AUTH/REFRESH_TOKEN:REFRESH_TOKEN(обязательно),SECRET_HASH(обязательно, если клиент приложения настроен с секретом клиента),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 триггерам пула пользователей. При использовании действия AdminInitiateAuth API Amazon Cognito вызывает функции Lambda, указанные для различных триггеров. Значение ClientMetadata передается как входные данные функциям только для следующих триггеров:
- Предо регистрации
- Предо аутентификации
- Миграция пользователей
Когда Amazon Cognito вызывает функции для этих триггеров, он передает JSON-полезную нагрузку, которую функция получает в качестве входных данных. Эта полезная нагрузка содержит атрибут validationData, который предоставляет данные, которые вы назначили параметру ClientMetadata в запросе AdminInitiateAuth. В вашем коде функции в Lambda вы можете обработать значение validationData, чтобы улучшить свой рабочий процесс для ваших конкретных потребностей.
При использовании действия API AdminInitiateAuth Amazon Cognito также вызывает функции для следующих триггеров, но не предоставляет значение ClientMetadata в качестве входных данных:
- После аутентификации
- Пользовательское сообщение
- Предо генерации токена
- Создание запроса на аутентификацию
- Определение запроса на аутентификацию
- Пользовательский отправитель электронных писем
- Пользовательский отправитель SMS-сообщений
Дополнительную информацию см. в разделе Использование триггеров Lambda в Руководстве разработчика Amazon Cognito .
Примечание
При использовании параметра ClientMetadata обратите внимание, что Amazon Cognito не будет выполнять следующие действия:
- Хранить значение
ClientMetadata. Эти данные доступны только для триггеров Lambda, которые назначены пулу пользователей для поддержки пользовательских рабочих процессов. Если в вашей конфигурации пула пользователей нет триггеров, параметрClientMetadataне выполняет никакой функции. - Проверять значение
ClientMetadata. - Шифровать значение
ClientMetadata. Не отправляйте конфиденциальную информацию в этом параметре.
ключ -> (строка)
значение -> (строка)
Сокращенная синтаксическая запись:
KeyName1=string,KeyName2=string
Синтаксис JSON:
{"string": "string"
...}
--analytics-metadata (структура)
Информация, которая поддерживает результаты анализа с Amazon Pinpoint, включая идентификатор конечной точки пользователя. Идентификатор конечной точки — это место назначения push-уведомлений Amazon Pinpoint, например, идентификатор устройства, адрес электронной почты или номер телефона.
AnalyticsEndpointId -> (строка)
Сокращенная синтаксическая запись:
AnalyticsEndpointId=string
Синтаксис JSON:
{
"AnalyticsEndpointId": "string"
}
--context-data (структура)
Контекстные данные о сеансе пользователя, такие как отпечаток устройства, IP-адрес или местоположение. Amazon Cognito защищает от угроз, оценивая риск события аутентификации на основе контекста, который ваше приложение генерирует и передает Amazon Cognito при выполнении запросов к API.
Дополнительную информацию см. в разделе Сбор данных для защиты от угроз в приложениях .
IpAddress -> (строка)
ServerName -> (строка)
ServerPath -> (строка)
HttpHeaders -> (список)
HTTP-заголовки из запроса на аутентификацию пользователя.
(структура)
HTTP-заголовок в параметре ContextData.
headerName -> (строка)
headerValue -> (строка)
EncodedData -> (строка)
Сокращенная синтаксическая запись:
IpAddress=string,ServerName=string,ServerPath=string,HttpHeaders=[{headerName=string,headerValue=string},{headerName=string,headerValue=string}],EncodedData=string
Синтаксис JSON:
{
"IpAddress": "string",
"ServerName": "string",
"ServerPath": "string",
"HttpHeaders": [
{
"headerName": "string",
"headerValue": "string"
}
...
],
"EncodedData": "string"
}
--session (строка)
ConfirmSignUp. Вы можете войти в систему пользователю напрямую из процесса регистрации с AuthFlow USER_AUTH и AuthParameters EMAIL_OTP или SMS_OTP, в зависимости от того, как ваш пул пользователей отправил сообщение с кодом подтверждения.--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 (строка)
Переопределить URL команды по умолчанию указанным URL.
--no-verify-ssl (boolean)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет поведение проверки SSL-сертификатов по умолчанию.
--no-paginate (boolean)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования вывода команды.
- json
- text
- table
- yaml
- yaml-stream
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать определенный профиль из файла учетных данных.
--region (строка)
Регион для использования. Переопределяет настройки из конфигурации/среды.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/отключить вывод цвета.
- on
- off
- auto
--no-sign-request (boolean)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.
--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 V1, и двоичные значения должны передаваться буквально. При предоставлении содержимого из файла, которое соответствует двоичному блоку, 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.
Для входа пользователя в качестве администратора
Следующий admin-initiate-auth пример входа пользователя diego@example.com. Этот пример также включает метаданные для защиты от угроз и ClientMetadata для триггеров Lambda. Пользователь настроен для MFA TOTP и получает запрос на ввод кода из приложения-аутентификатора, прежде чем сможет завершить аутентификацию.
aws cognito-idp admin-initiate-auth \
--user-pool-id us-west-2_EXAMPLE \
--client-id 1example23456789 \
--auth-flow ADMIN_USER_PASSWORD_AUTH \
--auth-parameters USERNAME=diego@example.com,PASSWORD="My@Example$Password3!",SECRET_HASH=ExampleEncodedClientIdSecretAndUsername= \
--context-data="{\"EncodedData\":\"abc123example\",\"HttpHeaders\":[{\"headerName\":\"UserAgent\",\"headerValue\":\"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0\"}],\"IpAddress\":\"192.0.2.1\",\"ServerName\":\"example.com\",\"ServerPath\":\"/login\"}" \
--client-metadata="{\"MyExampleKey\": \"MyExampleValue\"}"
Вывод:
{
"ChallengeName": "SOFTWARE_TOKEN_MFA",
"Session": "AYABeExample...",
"ChallengeParameters": {
"FRIENDLY_DEVICE_NAME": "MyAuthenticatorApp",
"USER_ID_FOR_SRP": "diego@example.com"
}
}
Дополнительную информацию см. в разделе Поток аутентификации администратора в Руководстве разработчика Amazon Cognito.
Вывод
ChallengeName -> (строка)
Имя запроса, на которое вы отвечаете в этом вызове. Возвращается в ответе AdminInitiateAuth, если необходимо передать другой запрос.
Возможные запросы включают:
Примечание
Все перечисленные запросы требуют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для завершения входа. Для настройки MFA по SMS или электронной почте, соберите атрибутphone_numberилиemailдля пользователя. Затем перезапустите поток аутентификации с запросомInitiateAuthилиAdminInitiateAuth.
Session -> (строка)
AdminInitiateAuth или AdminRespondToAuthChallenge приводит к новому запросу на аутентификацию, Amazon Cognito возвращает идентификатор сеанса и параметры следующего запроса. Передайте этот идентификатор сеанса в параметре Session запроса AdminRespondToAuthChallenge.ChallengeParameters -> (карта)
Параметры запроса на аутентификацию. Amazon Cognito возвращает параметры запроса как руководство для ответов, которые должен предоставить пользователь или приложение для возвращенного ChallengeName. Вычислите ответы на параметры запроса и передайте их в ChallengeParameters запроса AdminRespondToAuthChallenge.
Все запросы требуют USERNAME и, если у клиента приложения есть секретный ключ, SECRET_HASH.
В запросах SRP Amazon Cognito возвращает атрибут username в USER_ID_FOR_SRP вместо любого адреса электронной почты, предпочтительного имени пользователя или псевдонима номера телефона, которые вы могли указать в запросе AdminInitiateAuth. Необходимо использовать имя пользователя, а не псевдоним в ChallengeResponses вашего ответа на запрос.
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.