2023-03-31 05:36:53 -07:00
# Amazon Cognito Identity Provider code examples for the SDK for Python
2022-07-01 17:07:43 -07:00
## Overview
2023-03-31 05:36:53 -07:00
Shows how to use the AWS SDK for Python (Boto3) to work with Amazon Cognito Identity Provider.
2022-07-01 17:07:43 -07:00
2023-03-31 05:36:53 -07:00
<!--custom.overview.start-->
<!--custom.overview.end-->
2022-07-01 17:07:43 -07:00
2024-01-05 10:05:03 -05:00
_ Amazon Cognito Identity Provider handles user authentication and authorization for your web and mobile apps. _
2023-03-31 05:36:53 -07:00
## ⚠ Important
2024-01-05 10:05:03 -05:00
* Running this code might result in charges to your AWS account. For more details, see [AWS Pricing ](https://aws.amazon.com/pricing/ ) and [Free Tier ](https://aws.amazon.com/free/ ).
2022-07-01 17:07:43 -07:00
* Running the tests might result in charges to your AWS account.
2023-03-31 05:36:53 -07:00
* We recommend that you grant your code least privilege. At most, grant only the minimum permissions required to perform the task. For more information, see [Grant least privilege ](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege ).
2022-07-01 17:07:43 -07:00
* This code is not tested in every AWS Region. For more information, see [AWS Regional Services ](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services ).
2023-03-31 05:36:53 -07:00
<!--custom.important.start-->
<!--custom.important.end-->
2022-07-01 17:07:43 -07:00
2023-03-31 05:36:53 -07:00
## Code examples
2023-04-13 11:38:14 -07:00
### Prerequisites
For prerequisites, see the [README ](../../README.md#Prerequisites ) in the `python` folder.
Install the packages required by these examples by running the following in a virtual environment:
```
python -m pip install -r requirements.txt
```
<!--custom.prerequisites.start-->
<!--custom.prerequisites.end-->
2024-07-09 11:47:20 -04:00
### Get started
2024-12-12 15:32:39 -08:00
- [Hello Amazon Cognito Identity Provider ](hello/hello_cognito.py#L4 ) (`ListUserPools` )
2024-07-09 11:47:20 -04:00
2022-07-01 17:07:43 -07:00
### Single actions
Code excerpts that show you how to call individual service functions.
2024-09-16 07:20:14 -04:00
- [AdminGetUser ](cognito_idp_actions.py#L56 )
2024-04-30 12:22:08 -07:00
- [AdminInitiateAuth ](cognito_idp_actions.py#L187 )
- [AdminRespondToAuthChallenge ](cognito_idp_actions.py#L292 )
- [AssociateSoftwareToken ](cognito_idp_actions.py#L241 )
- [ConfirmDevice ](cognito_idp_actions.py#L342 )
- [ConfirmSignUp ](cognito_idp_actions.py#L131 )
- [InitiateAuth ](cognito_idp_actions.py#L407 )
- [ListUsers ](cognito_idp_actions.py#L164 )
- [ResendConfirmationCode ](cognito_idp_actions.py#L104 )
- [RespondToAuthChallenge ](cognito_idp_actions.py#L408 )
- [SignUp ](cognito_idp_actions.py#L56 )
- [VerifySoftwareToken ](cognito_idp_actions.py#L265 )
2022-07-01 17:07:43 -07:00
### Scenarios
2023-03-31 05:36:53 -07:00
Code examples that show you how to accomplish a specific task by calling multiple
2022-07-01 17:07:43 -07:00
functions within the same service.
2024-02-08 15:35:59 -05:00
- [Sign up a user with a user pool that requires MFA ](cognito_idp_actions.py )
2024-01-05 10:05:03 -05:00
<!--custom.examples.start-->
<!--custom.examples.end-->
2022-07-01 17:07:43 -07:00
2023-03-31 05:36:53 -07:00
## Run the examples
2022-07-01 17:07:43 -07:00
2023-04-13 11:38:14 -07:00
### Instructions
2022-07-01 17:07:43 -07:00
2023-04-13 11:38:14 -07:00
<!--custom.instructions.start-->
<!--custom.instructions.end-->
2022-07-01 17:07:43 -07:00
2024-12-12 15:32:39 -08:00
#### Hello Amazon Cognito Identity Provider
2024-07-09 11:47:20 -04:00
2024-12-12 15:32:39 -08:00
This example shows you how to get started using Amazon Cognito Identity Provider.
2024-07-09 11:47:20 -04:00
```
python hello/hello_cognito.py
```
2022-07-01 17:07:43 -07:00
2023-04-13 11:38:14 -07:00
#### Sign up a user with a user pool that requires MFA
2022-07-01 17:07:43 -07:00
2023-04-13 11:38:14 -07:00
This example shows you how to do the following:
2022-07-01 17:07:43 -07:00
2024-01-05 10:05:03 -05:00
- Sign up and confirm a user with a username, password, and email address.
- Set up multi-factor authentication by associating an MFA application with the user.
- Sign in by using a password and an MFA code.
2023-04-13 11:38:14 -07:00
<!--custom.scenario_prereqs.cognito-identity-provider_Scenario_SignUpUserWithMfa.start-->
2022-07-06 15:23:49 -07:00
This scenario requires the following resources:
2022-07-01 17:07:43 -07:00
2022-07-06 15:23:49 -07:00
* An existing Amazon Cognito user pool that is configured to allow self sign-up.
* A client ID to use for authenticating with Amazon Cognito.
To create these resources, run the AWS CloudFormation script in the
2022-07-01 17:07:43 -07:00
[resources/cdk/cognito_scenario_user_pool_with_mfa ](../../../resources/cdk/cognito_scenario_user_pool_with_mfa )
folder. This script outputs a user pool ID and a client ID that you can use to run
the scenario.
2023-04-13 11:38:14 -07:00
<!--custom.scenario_prereqs.cognito-identity-provider_Scenario_SignUpUserWithMfa.end-->
2023-03-31 05:36:53 -07:00
Start the example by running the following at a command prompt:
2022-07-01 17:07:43 -07:00
```
2024-02-08 15:35:59 -05:00
python cognito_idp_actions.py
2022-07-01 17:07:43 -07:00
```
2023-10-13 14:57:41 -05:00
2023-03-31 05:36:53 -07:00
<!--custom.scenarios.cognito-identity-provider_Scenario_SignUpUserWithMfa.start-->
<!--custom.scenarios.cognito-identity-provider_Scenario_SignUpUserWithMfa.end-->
### Tests
⚠ Running tests might result in charges to your AWS account.
2022-07-01 17:07:43 -07:00
2023-03-31 05:36:53 -07:00
To find instructions for running these tests, see the [README ](../../README.md#Tests )
in the `python` folder.
<!--custom.tests.start-->
<!--custom.tests.end-->
2022-07-01 17:07:43 -07:00
## Additional resources
2023-03-31 05:36:53 -07:00
2024-01-05 10:05:03 -05:00
- [Amazon Cognito Identity Provider Developer Guide ](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html )
- [Amazon Cognito Identity Provider API Reference ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html )
- [SDK for Python Amazon Cognito Identity Provider reference ](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp.html )
2023-03-31 05:36:53 -07:00
<!--custom.resources.start-->
<!--custom.resources.end-->
2022-07-01 17:07:43 -07:00
---
2023-03-31 05:36:53 -07:00
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2022-07-01 17:07:43 -07:00
2024-12-12 15:32:39 -08:00
SPDX-License-Identifier: Apache-2.0