Cognito User Pools

Support HackTricks

Basic Information

рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ Amazon Cognito рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИред рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Amazon Cognito рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдкрдХреЗ рд╡реЗрдм рдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдРрдк рдореЗрдВ рд╕рд╛рдЗрди рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛ (IdP) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдШрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪрд╛рд╣реЗ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реАрдзреЗ рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВ рдпрд╛ рдПрдХ рддреГрддреАрдп рдкрдХреНрд╖ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЗ рд╕рднреА рд╕рджрд╕реНрдп рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд░рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдПрдХ SDK рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:

  • рд╕рд╛рдЗрди-рдЕрдк рдФрд░ рд╕рд╛рдЗрди-рдЗрди рд╕реЗрд╡рд╛рдПрдБред

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд╛рдЗрди рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд, рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╡реЗрдм UIред

  • рдлреЗрд╕рдмреБрдХ, рдЧреВрдЧрд▓, рдЕрдореЗрдЬрд╝рди рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди, рдФрд░ рдПрдкреНрдкрд▓ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрди рдЗрди, рдФрд░ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рд╕реЗ SAML рдФрд░ OIDC рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдорд╛рдЬрд┐рдХ рд╕рд╛рдЗрди-рдЗрдиред

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░рдмрдВрдзрди рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓ред

  • рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреИрд╕реЗ рдмрд╣реБ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг (MFA), рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдЧрдП рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ, рдЦрд╛рддрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рд╕реБрд░рдХреНрд╖рд╛, рдФрд░ рдлреЛрди рдФрд░ рдИрдореЗрд▓ рд╕рддреНрдпрд╛рдкрдиред

  • AWS Lambda рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рдиред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ ID рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди ID (рдФрд░ рдХрднреА-рдХрднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реАрдХреНрд░реЗрдЯ?) рднреА рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдЧрд╛, рдЬреЛ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ Cognito рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдореЗрдВ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред

Potential attacks

  • рдкрдВрдЬреАрдХрд░рдг: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╣ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрдгрдирд╛: рдкрдВрдЬреАрдХрд░рдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдореЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рд╣рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред

  • рд▓реЙрдЧрд┐рди рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕: Authentication рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рднреА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдорд╛рдиреНрдп рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Tools for pentesting

  • Pacu, рдЕрдм cognito__enum рдФрд░ cognito__attack рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЦрд╛рддреЗ рдореЗрдВ рд╕рднреА Cognito рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдордЬреЛрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЛ рдкрд╣реБрдБрдЪ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд╣реИрдВ, рдЖрджрд┐ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрдорд╛рдг (MFA рд╕рдорд░реНрдерди рд╕рд╣рд┐рдд) рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ, рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп рдкрд╣рдЪрд╛рди рдкреВрд▓ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕, рдЖрдИрдбреА рдЯреЛрдХрди рдореЗрдВ рдЕрд╕реБрдореЗрдмрд▓ рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рдХреЛ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЗ рднрд╛рдЧ 2 рдореЗрдВ рджреЗрдЦреЗрдВред рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп Pacu рдкреГрд╖реНрда рджреЗрдЦреЗрдВред

# Run cognito__enum usage to gather all user pools, user pool clients, identity pools, users, etc. visible in the current AWS account
Pacu (new:test) > run cognito__enum

# cognito__attack usage to attempt user creation and all privesc vectors against a given identity pool and user pool client:
Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX
  • Cognito Scanner рдПрдХ CLI рдЯреВрд▓ рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ Cognito рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╣рдорд▓реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдирдЪрд╛рд╣реА рдЦрд╛рддрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЦрд╛рддрд╛ рдУрд░реЗрдХрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓рд┐рдВрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

# Install
pip install cognito-scanner
# Run
cognito-scanner --help
  • CognitoAttributeEnum: рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

python cognito-attribute-enu.py -client_id 16f1g98bfuj9i0g3f8be36kkrl

Registration

User Pools рджреНрд╡рд╛рд░рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

aws cognito-idp sign-up --client-id <client-id> \
--username <username> --password <password> \
--region <region> --no-sign-request

рдпрджрд┐ рдХреЛрдИ рднреА рдкрдВрдЬреАрдХрд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

An error occurred (InvalidParameterException) when calling the SignUp operation: Attributes did not conform to the schema: address: The attribute is required

рдЖрдк рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд░рдг рдПрдХ JSON рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ:

--user-attributes '[{"Name": "email", "Value": "carlospolop@gmail.com"}, {"Name":"gender", "Value": "M"}, {"Name": "address", "Value": "street"}, {"Name": "custom:custom_name", "Value":"supername&\"*$"}]'

рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ:

An error occurred (UsernameExistsException) when calling the SignUp operation: User already exists

рдкрд┐рдЫрд▓реЗ рдХрдорд╛рдВрдб рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ "custom:" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред рдпрд╣ рднреА рдЬрд╛рди рд▓реЗрдВ рдХрд┐ рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдирдИ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред рдЖрдк рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рднрд▓реЗ рд╣реА рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛрдВ) рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдорд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╛ рдмрд╕ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдбреА рдореМрдЬреВрдж рд╣реИред рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ-рдЖрдИрдбреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИ:

An error occurred (ResourceNotFoundException) when calling the SignUp operation: User pool client 3ig612gjm56p1ljls1prq2miut does not exist.

рдпрджрд┐ рдХреЗрд╡рд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдЖрдк рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдпрд╛ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ:

An error occurred (NotAuthorizedException) when calling the SignUp operation: SignUp is not permitted for this user pool

рдкрдВрдЬреАрдХрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛

Cognito рдПрдХ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреЗ рдИрдореЗрд▓ рдпрд╛ рдлреЛрди рдирдВрдмрд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдЖрдк рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдорддреМрд░ рдкрд░ рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдИрдореЗрд▓ рдФрд░/рдпрд╛ рдлреЛрди рдирдВрдмрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдмрд╕ рдПрдХ рдРрд╕рд╛ рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдирдП рдмрдирд╛рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВред

aws cognito-idp confirm-sign-up --client-id <cliet_id> \
--username aasdasd2 --confirmation-code <conf_code> \
--no-sign-request --region us-east-1

рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╡рд╣реА рдИрдореЗрд▓ рдФрд░ рдлреЛрди рдирдВрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдкрдХреЛ рдмрдирд╛рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ Cognito рд╕рдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЦрд╛рддрд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдирд╣реАрдВ рджреЗрдЧрд╛ред

рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ / рдЧреБрдг рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдЧреБрдгреЛрдВ рдХреЗ рдорд╛рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

aws cognito-idp update-user-attributes \
--region us-east-1 --no-sign-request \
--user-attributes Name=address,Value=street \
--access-token <access token>

рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рд┐рд╡реЗрд╕реНрдХ

рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ isAdmin), рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдк рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рди рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рд╕реНрд╡рдпрдВ рдорд╛рди рдмрджрд▓рдХрд░ рдЕрдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ!

рдИрдореЗрд▓/рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕рдВрд╢реЛрдзрди рдкреНрд░рд┐рд╡реЗрд╕реНрдХ

рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдИрдореЗрд▓ рдФрд░ рдлреЛрди рдирдВрдмрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░, рднрд▓реЗ рд╣реА рдЦрд╛рддрд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рд░рд╣реЗ, рд╡реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЕрд╕рддреНрдпрд╛рдкрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реЗрдЯ рд╣реЛрддреА рд╣реИрдВ (рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред

рдЖрдк рдИрдореЗрд▓ рдпрд╛ рдлреЛрди рдирдВрдмрд░ рд╕реЗ рд▓реЙрдЧрд┐рди рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдЬрдм рддрдХ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рднрд▓реЗ рд╣реА рдИрдореЗрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рди рд╣реЛ, рдпрд╣ email рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдВрджрд░ ID Token рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдФрд░ email_verified рдлрд╝реАрд▓реНрдб false рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрджрд┐ рдРрдк рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ рддреЛ рдЖрдк рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдирд╛рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ name рдлрд╝реАрд▓реНрдб рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рднреА рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдРрдк рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ email (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛) рдХреЗ рдмрдЬрд╛рдп рдЙрд╕ рдлрд╝реАрд▓реНрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рддреЛ рдЖрдк рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЦреИрд░, рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдкрдиреЗ рдЕрдкрдирд╛ рдИрдореЗрд▓, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдП рдИрдореЗрд▓ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕ рдИрдореЗрд▓ рдкрддреЗ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдИрдореЗрд▓ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

aws cognito-idp verify-user-attribute \
--access-token <access_token> \
--attribute-name email --code <code> \
--region <region> --no-sign-request

рдлреЛрди_рдирдВрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдИрдореЗрд▓ рдХреЗ рдмрдЬрд╛рдп рдирдП рдлреЛрди рдирдВрдмрд░ рдХреЛ рдмрджрд▓рдиреЗ/рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдорд╛рди рдХреЛ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдпрд╛ рдкрд╕рдВрджреАрджрд╛_рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рдкрд╛рдПрдВрдЧреЗ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдкрд╛рд╕рд╡рд░реНрдб рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ/рдмрджрд▓реЗрдВ

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо (рдпрд╛ рдИрдореЗрд▓ рдпрд╛ рдлреЛрди рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рдЬрд╛рдирдХрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рд╡рд╣рд╛рдВ рдПрдХ рдХреЛрдб рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛:

aws cognito-idp forgot-password \
--client-id <client_id> \
--username <username/email/phone> --region <region>

рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣рдореЗрд╢рд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрдЧреА, рдЬреИрд╕реЗ рдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдореМрдЬреВрдж рд╣реИред рдЖрдк рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ

With the code you can change the password with:

aws cognito-idp confirm-forgot-password \
--client-id <client_id> \
--username <username> \
--confirmation-code <conf_code> \
--password <pwd> --region <region>

рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд┐рдЫрд▓рд╛ рдкрд╛рд╕рд╡рд░реНрдб рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛:

aws cognito-idp change-password \
--previous-password <value> \
--proposed-password <value> \
--access-token <value>

Authentication

рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ, рддреЛ рд▓реЙрдЧрд┐рди рдХреЗ рд▓рд┐рдП рднреА рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдзрд┐рдпрд╛рдБ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ 3 рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреЛрдХрди рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: ID рдЯреЛрдХрди, рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдФрд░ рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрдиред

  • ID Token: рдЗрд╕рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╛рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ name, email, рдФрд░ phone_numberред ID рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рд╕рдВрд╕рд╛рдзрди рд╕рд░реНрд╡рд░реЛрдВ рдпрд╛ рд╕рд░реНрд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдмрд╛рд╣рд░реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ ID рдЯреЛрдХрди рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рджрд╛рд╡реЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рд╕рддреНрдпрд╛рдкрди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

  • ID рдЯреЛрдХрди рд╡рд╣ рдЯреЛрдХрди рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдХрд╕реНрдЯрдо рд╡рд╛рд▓реЗ рднреАред

  • Access Token: рдЗрд╕рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╛рд╡реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреА рд╕реВрдЪреА, рдФрд░ рд╕реНрдХреЛрдк рдХреА рд╕реВрдЪреА рд╣реЛрддреА рд╣реИред рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ API рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝, рдмрджрд▓ рдпрд╛ рд╣рдЯрд╛ рд╕рдХреЗред

  • Refresh Token: рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдирдП ID рдЯреЛрдХрди рдФрд░ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрди рдЕрдорд╛рдиреНрдп рди рд╣реЛ рдЬрд╛рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрди 30 рджрд┐рди рдмрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдореЗрдВ рд╕рд╛рдЗрди рдЗрди рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрди рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреЛ 60 рдорд┐рдирдЯ рд╕реЗ 10 рд╡рд░реНрд╖ рдХреЗ рдмреАрдЪ рдХрд┐рд╕реА рднреА рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

ADMIN_NO_SRP_AUTH & ADMIN_USER_PASSWORD_AUTH

рдпрд╣ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╡рд╛рд╣ рд╣реИ:

  • рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдРрдк AdminInitiateAuth API рдСрдкрд░реЗрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ ( InitiateAuth рдХреЗ рдмрдЬрд╛рдп)ред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП AWS рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рдирдореЗрдВ cognito-idp:AdminInitiateAuth рдФрд░ cognito-idp:AdminRespondToAuthChallenge рдХреА рдЕрдиреБрдорддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИред рдпрд╣ рдСрдкрд░реЗрд╢рди рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

  • рдЬрдм рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдРрдк рдХреЗ рдкрд╛рд╕ рдкреНрд░рдорд╛рдгрди рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ AdminRespondToAuthChallenge API рдСрдкрд░реЗрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред AdminRespondToAuthChallenge API рдСрдкрд░реЗрд╢рди рдХреЗрд╡рд▓ рддрднреА рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк AWS рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рд╡рд┐рдзрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред

рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдЖрдИрдбреА

  • рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдбреА

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо

  • рдкрд╛рд╕рд╡рд░реНрдб

  • рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реАрдХреНрд░реЗрдЯ (рдХреЗрд╡рд▓ рдпрджрд┐ рдРрдк рдХреЛ рдПрдХ рд╕реАрдХреНрд░реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)

рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ ALLOW_ADMIN_USER_PASSWORD_AUTH рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ cognito-idp:AdminInitiateAuth рдФрд░ cognito-idp:AdminRespondToAuthChallenge рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд╕рд╛рде рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

aws cognito-idp admin-initiate-auth \
--client-id <client-id> \
--auth-flow ADMIN_USER_PASSWORD_AUTH \
--region <region> \
--auth-parameters 'USERNAME=<username>,PASSWORD=<password>,SECRET_HASH=<hash_if_needed>'
--user-pool-id "<pool-id>"

# Check the python code to learn how to generate the hsecret_hash
рд▓реЙрдЧрд┐рди рдХреЗ рд▓рд┐рдП рдХреЛрдб

```python import boto3 import botocore import hmac import hashlib import base64

client_id = "" user_pool_id = "" client_secret = "" username = "" password = ""

boto_client = boto3.client('cognito-idp', region_name='us-east-1')

def get_secret_hash(username, client_id, client_secret): key = bytes(client_secret, 'utf-8') message = bytes(f'{username}{client_id}', 'utf-8') return base64.b64encode(hmac.new(key, message, digestmod=hashlib.sha256).digest()).decode()

If the Client App isn't configured to use a secret

just delete the line setting the SECRET_HASH

def login_user(username_or_alias, password, client_id, client_secret, user_pool_id): try: return boto_client.admin_initiate_auth( UserPoolId=user_pool_id, ClientId=client_id, AuthFlow='ADMIN_USER_PASSWORD_AUTH', AuthParameters={ 'USERNAME': username_or_alias, 'PASSWORD': password, 'SECRET_HASH': get_secret_hash(username_or_alias, client_id, client_secret) } ) except botocore.exceptions.ClientError as e: return e.response

print(login_user(username, password, client_id, client_secret, user_pool_id))

</details>

### USER\_PASSWORD\_AUTH

рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рдФрд░ рд╕рд░рд▓ рдФрд░ **рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдг** рдкреНрд░рд╡рд╛рд╣ рд╣реИред рдЗрд╕реЗ **Cognito** рдореЗрдВ **рдкрд╛рд░рдВрдкрд░рд┐рдХ** рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ рдХреЛ **рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд** рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ **рдЕрдХреНрд╖рдо** рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп **ALLOW\_USER\_SRP\_AUTH** рд╡рд┐рдзрд┐ рдХрд╛ **рдЙрдкрдпреЛрдЧ** рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрднреА рднреА рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдирд╣реАрдВ рднреЗрдЬрддрд╛)ред\
рдпрд╣ **рд╡рд┐рдзрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ**ред

рдХреЛрдб рдХреЗ рдЕрдВрджрд░ **рдкрд┐рдЫрд▓реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐** рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп **рдЕрдВрддрд░** рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ **рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдЖрдИрдбреА** рдЬрд╛рдирдиреЗ рдХреА **рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ** рдФрд░ рдЖрдкрдХреЛ Cognito рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдореЗрдВ **рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ** рдХреА **рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ**ред

**рд▓реЙрдЧрд┐рди** рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ **рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ**:

* рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдбреА
* рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо
* рдкрд╛рд╕рд╡рд░реНрдб
* рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реАрдХреНрд░реЗрдЯ (рдХреЗрд╡рд▓ рдпрджрд┐ рдРрдк рдХреЛ рдПрдХ рд╕реАрдХреНрд░реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)

<div data-gb-custom-block data-tag="hint" data-style='info'>

рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде **рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП** рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ ALLOW\_USER\_PASSWORD\_AUTH рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

</div>

```python
aws cognito-idp initiate-auth  --client-id <client-id> \
--auth-flow USER_PASSWORD_AUTH --region <region> \
--auth-parameters 'USERNAME=<username>,PASSWORD=<password>,SECRET_HASH=<hash_if_needed>'

# Check the python code to learn how to generate the secret_hash

REFRESH_TOKEN_AUTH & REFRESH_TOKEN

рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдорд╛рдиреНрдп рд░рд╣рдиреЗ рд╡рд╛рд▓реА рд╣реИ (рдЗрд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛) рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдиреНрдп рд░рд┐рдлреНрд░реЗрд╢ рдЯреЛрдХрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

aws cognito-idp initiate-auth \
--client-id 3ig6h5gjm56p1ljls1prq2miut \
--auth-flow REFRESH_TOKEN_AUTH \
--region us-east-1 \
--auth-parameters 'REFRESH_TOKEN=<token>'

Last updated