- Navigation GuideYou are on a Command (operation) page with structural examples. Use the navigation breadcrumb if you would like to return to the Client landing page.
AdminInitiateAuthCommand
Starts sign-in for applications with a server-side component, for example a traditional web application. This operation specifies the authentication flow that you'd like to begin. The authentication flow that you specify must be supported in your app client configuration. For more information about authentication flows, see Authentication flows .
This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint . Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.
If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.
Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.
Learn more
Example Syntax
Use a bare-bones client and the command you need to make an API call.
import { CognitoIdentityProviderClient, AdminInitiateAuthCommand } from "@aws-sdk/client-cognito-identity-provider"; // ES Modules import
// const { CognitoIdentityProviderClient, AdminInitiateAuthCommand } = require("@aws-sdk/client-cognito-identity-provider"); // CommonJS import
const client = new CognitoIdentityProviderClient(config);
const input = { // AdminInitiateAuthRequest
UserPoolId: "STRING_VALUE", // required
ClientId: "STRING_VALUE", // required
AuthFlow: "USER_SRP_AUTH" || "REFRESH_TOKEN_AUTH" || "REFRESH_TOKEN" || "CUSTOM_AUTH" || "ADMIN_NO_SRP_AUTH" || "USER_PASSWORD_AUTH" || "ADMIN_USER_PASSWORD_AUTH" || "USER_AUTH", // required
AuthParameters: { // AuthParametersType
"<keys>": "STRING_VALUE",
},
ClientMetadata: { // ClientMetadataType
"<keys>": "STRING_VALUE",
},
AnalyticsMetadata: { // AnalyticsMetadataType
AnalyticsEndpointId: "STRING_VALUE",
},
ContextData: { // ContextDataType
IpAddress: "STRING_VALUE", // required
ServerName: "STRING_VALUE", // required
ServerPath: "STRING_VALUE", // required
HttpHeaders: [ // HttpHeaderList // required
{ // HttpHeader
headerName: "STRING_VALUE",
headerValue: "STRING_VALUE",
},
],
EncodedData: "STRING_VALUE",
},
Session: "STRING_VALUE",
};
const command = new AdminInitiateAuthCommand(input);
const response = await client.send(command);
// { // AdminInitiateAuthResponse
// ChallengeName: "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: "STRING_VALUE",
// ChallengeParameters: { // ChallengeParametersType
// "<keys>": "STRING_VALUE",
// },
// AuthenticationResult: { // AuthenticationResultType
// AccessToken: "STRING_VALUE",
// ExpiresIn: Number("int"),
// TokenType: "STRING_VALUE",
// RefreshToken: "STRING_VALUE",
// IdToken: "STRING_VALUE",
// NewDeviceMetadata: { // NewDeviceMetadataType
// DeviceKey: "STRING_VALUE",
// DeviceGroupKey: "STRING_VALUE",
// },
// },
// AvailableChallenges: [ // AvailableChallengeListType
// "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",
// ],
// };
AdminInitiateAuthCommand Input
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
AuthFlow Required | AuthFlowType | undefined | The authentication flow that you want to initiate. Each
|
ClientId Required | string | undefined | The ID of the app client where the user wants to sign in. |
UserPoolId Required | string | undefined | The ID of the user pool where the user wants to sign in. |
AnalyticsMetadata | AnalyticsMetadataType | undefined | Information that supports analytics outcomes with Amazon Pinpoint, including the user's endpoint ID. The endpoint ID is a destination for Amazon Pinpoint push notifications, for example a device identifier, email address, or phone number. |
AuthParameters | Record<string, string> | undefined | The authentication parameters. These are inputs corresponding to the
For more information about |
ClientMetadata | Record<string, string> | undefined | A map of custom key-value pairs that you can provide as input for certain custom workflows that this action triggers. You create custom workflows by assigning Lambda functions to user pool triggers. When you use the AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that are specified for various triggers. The ClientMetadata value is passed as input to the functions for only the following triggers:
When Amazon Cognito invokes the functions for these triggers, it passes a JSON payload, which the function receives as input. This payload contains a When you use the AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the following triggers, but it doesn't provide the ClientMetadata value as input:
For more information, see Using Lambda triggers in the Amazon Cognito Developer Guide. When you use the
|
ContextData | ContextDataType | undefined | Contextual data about your user session like the device fingerprint, IP address, or location. Amazon Cognito threat protection evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests. For more information, see Collecting data for threat protection in applications . |
Session | string | undefined | The optional session ID from a |
AdminInitiateAuthCommand Output
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
$metadata Required | ResponseMetadata | Metadata pertaining to this request. |
AuthenticationResult | AuthenticationResultType | undefined | The outcome of successful authentication. This is only returned if the user pool has no additional challenges to return. If Amazon Cognito returns another challenge, the response includes |
AvailableChallenges | ChallengeNameType[] | undefined | This response parameter lists the available authentication challenges that users can select from in choice-based authentication . For example, they might be able to choose between passkey authentication, a one-time password from an SMS message, and a traditional password. |
ChallengeName | ChallengeNameType | undefined | The name of the challenge that you're responding to with this call. This is returned in the Possible challenges include the following: All of the following challenges require
|
ChallengeParameters | Record<string, string> | undefined | The parameters of an authentication challenge. Amazon Cognito returns challenge parameters as a guide to the responses your user or application must provide for the returned All challenges require In SRP challenges, Amazon Cognito returns the |
Session | string | undefined | The session that must be passed to challenge-response requests. If an |
Throws
Name | Fault | Details |
---|
Name | Fault | Details |
---|---|---|
InternalErrorException | server | This exception is thrown when Amazon Cognito encounters an internal error. |
InvalidEmailRoleAccessPolicyException | client | This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400. |
InvalidLambdaResponseException | client | This exception is thrown when Amazon Cognito encounters an invalid Lambda response. |
InvalidParameterException | client | This exception is thrown when the Amazon Cognito service encounters an invalid parameter. |
InvalidSmsRoleAccessPolicyException | client | This exception is returned when the role provided for SMS configuration doesn't have permission to publish using Amazon SNS. |
InvalidSmsRoleTrustRelationshipException | client | This exception is thrown when the trust relationship is not valid for the role provided for SMS configuration. This can happen if you don't trust |
InvalidUserPoolConfigurationException | client | This exception is thrown when the user pool configuration is not valid. |
MFAMethodNotFoundException | client | This exception is thrown when Amazon Cognito can't find a multi-factor authentication (MFA) method. |
NotAuthorizedException | client | This exception is thrown when a user isn't authorized. |
PasswordResetRequiredException | client | This exception is thrown when a password reset is required. |
ResourceNotFoundException | client | This exception is thrown when the Amazon Cognito service can't find the requested resource. |
TooManyRequestsException | client | This exception is thrown when the user has made too many requests for a given operation. |
UnexpectedLambdaException | client | This exception is thrown when Amazon Cognito encounters an unexpected exception with Lambda. |
UnsupportedOperationException | client | Exception that is thrown when you attempt to perform an operation that isn't enabled for the user pool client. |
UserLambdaValidationException | client | This exception is thrown when the Amazon Cognito service encounters a user validation exception with the Lambda service. |
UserNotConfirmedException | client | This exception is thrown when a user isn't confirmed successfully. |
UserNotFoundException | client | This exception is thrown when a user isn't found. |
CognitoIdentityProviderServiceException | Base exception class for all service exceptions from CognitoIdentityProvider service. |