# Cognito Password Authentication

div
div
Client SDK
div
Backend API
div
Mobile approve
div
SSO
div
Sub-journey
> Authenticates the user with AWS Cognito using username and password


## Description

This step authenticates the user by validating their credentials against AWS Cognito–an external identity provider. It is used for Just-In-Time (JIT) migration scenarios where users are gradually migrated from Cognito to Mosaic as they log in.

Before using this step, configure a [Cognito connection](/guides/orchestration/external-connections/external_idp) in Integration Hub.

The user's credentials must be obtained before initiating this step, such as using a [Collect information](/guides/orchestration/journeys/get_info_from_client) form. If the authentication succeeds, the journey continues to the next step. The authentication result, including user information from Cognito, is stored in the output variable and can be used in subsequent steps (e.g., to create a user in Mosaic).

If the authentication fails (e.g., incorrect password), the journey proceeds to the failure branch (if specified); otherwise, the journey is aborted and an error is sent to the client.

## Configuration

div
| Field | Description |
|  --- | --- |
| **Cognito integration** | The Cognito connector to use for authentication, as configured in Integration Hub. |
| **Username** | Expression that yields the user's username. |
| **Password** | Expression that yields the user's password. |
| **Scope** | OAuth scopes to request from Cognito. Default: `openid profile email`. |
| **Output variable** | Name of the variable that stores the authentication result returned by Cognito. |
| **Error output variable** | Name of the variable that stores any errors returned by the step. |
| **Failure behavior** | Determines the behavior in case of failure, which either aborts the journey or proceeds to a failure branch of the control flow (default). |


Journey event data
This step can be configured to record step input and output data, or a custom payload, which is then surfaced in journey events in Journey Analytics for diagnostic purposes. For details, see [Additional data reporting](/guides/orchestration/getting-started/event_reporting).

## Example

Consider a migration journey that collects username and password using a [Collect information](/guides/orchestration/journeys/get_info_from_client) step. In this example, the form collects `username` and `password`, and the input is stored in `loginData`.

The Cognito Password Authentication step validates these credentials against Cognito. If successful, the output variable (`cognito_output`) contains user information, including ID token and `user_info`, that can be used to create or update a user in Mosaic using the [Create user](/guides/orchestration/journeys/create_user) step.