내용으로 건너뛰기

AWS CLI를 사용하여 Amazon Cognito에서 사용자 암호를 재설정하려면 어떻게 해야 합니까?

3분 분량
0

사용자가 Amazon Cognito에서 암호를 재설정하거나 변경할 수 있도록 AWS Command Line Interface(AWS CLI)를 사용하려고 합니다.

해결 방법

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오. 다음 명령에서 VALID-ACCESS-TOKEN, USER-POOL-ID, CLIENT-ID, USERNAME, CONFIRMATION-CODE, NEW-PASSWORDPREVIOUS-PASSWORD를 해당 값으로 바꾸십시오.

사용자로 암호 변경

참고: change-password 명령을 실행하려면 사용자는 로그인한 사용자의 액세스 토큰을 보유해야 합니다. 액세스 토큰에는 aws.cognito.signin.user.admin 범위가 포함되어야 합니다.

사용자로 암호를 변경하려면 다음 change-password 명령을 실행합니다.

aws cognito-idp change-password --previous-password PREVIOUS-PASSWORD --proposed-password NEW-PASSWORD --access-token VALID-ACCESS-TOKEN

관리자로 사용자 암호 재설정

관리자가 사용자 암호를 재설정하려면 해당 사용자의 사용자 풀에 확인된 이메일 또는 전화번호가 있어야 합니다. 관리자가 admin-reset-user-password 명령을 실행하면 Amazon Cognito는 사용자의 확인된 연락 방법으로 확인 코드를 자동으로 보냅니다.

관리자로서 다음 admin-reset-user-password 명령을 실행하여 사용자 암호를 재설정합니다.

aws cognito-idp admin-reset-user-password --user-pool-id USER-POOL-ID --username USERNAME

참고: 관리자가 암호를 재설정한 후 사용자가 로그인을 시도하면 사용자에게 ‘PasswordResetRequiredException’ 오류가 발생합니다. 그러면 Amazon Cognito는 사용자를 암호 찾기 흐름으로 리디렉션합니다.

관리자가 admin-reset-user-password 명령을 실행한 후 사용자는 다음 confirm-forgot-password 명령을 실행하여 새 암호를 설정합니다.

aws cognito-idp confirm-forgot-password --client-id CLIENT-ID --username USERNAME --confirmation-code CONFIRMATION-CODE --password NEW-PASSWORD

사용자에게 확인된 이메일 주소 또는 전화번호가 없는 경우, 관리자는 ‘An error occurred (InvalidParameterException) when calling the AdminResetUserPassword operation: Cannot reset password for the user as there is no registered/verified email or phone_number’ 오류를 받습니다.

이 문제를 해결하려면 관리자는 다음 admin-update-user-attributes 명령을 실행하여 사용자의 연락처 정보를 확인하고 email_verified 또는 phone_number_verified 속성을 true로 설정합니다.

aws cognito-idp admin-update-user-attributes --user-pool-id USER-POOL-ID --username USERNAME --user-attributes Name="email_verified",Value="true"

관리자가 사용자의 연락처 정보를 확인한 후에는 admin-reset-user-password 명령을 다시 실행할 수 있습니다. 사용자는 확인 코드를 받은 후 confirm-forgot-password 명령을 실행하여 새 암호를 설정할 수 있습니다.

사용자가 여전히 확인 코드를 받지 못하면 Amazon Cognito에서 ForgotPassword API 호출을 사용하여 확인 코드 이메일 또는 SMS 문자 메시지를 전송하지 않는 이유는 무엇입니까?를 참조하십시오.

관리자로 영구 또는 임시 암호 설정

사용자의 영구 암호를 설정하려면 관리자는 다음 admin-set-user-password 명령을 실행합니다.

aws cognito-idp admin-set-user-password --user-pool-id USER-POOL-ID --username USERNAME --password NEW-PASSWORD --permanent

그러면 사용자는 새 영구 암호로 로그인할 수 있습니다.

사용자의 임시 암호를 설정하려면 관리자는 다음 admin-set-user-password 명령을 실행합니다.

aws cognito-idp admin-set-user-password --user-pool-id USER-POOL-ID --username USERNAME --password TEMPORARY-NEW-PASSWORD --no-permanent

관리자가 임시 암호를 설정하면 사용자의 상태가 FORCE_CHANGE_PASSWORD로 변경됩니다. 사용자가 임시 암호로 로그인하면 NEW_PASSWORD_REQUIRED 챌린지가 표시됩니다.

참고: 세션 토큰이 암호 챌린지를 완료하는 데 걸리는 시간은 3분간 유효합니다. 앱 클라이언트의 인증 흐름 기간 설정에서 기간을 수정할 수 있습니다.

그 후 사용자는 다음 respond-to-auth-challenge 명령을 실행하여 새 암호를 설정합니다.

aws cognito-idp respond-to-auth-challenge --client-id CLIENT-ID --challenge-name NEW_PASSWORD_REQUIRED --challenge-responses USERNAME=example_username,NEW_PASSWORD="example_new_password" --session "example_session_token"

중요: 클라이언트 보안 암호로 앱 클라이언트를 구성한 경우 사용자가 사용자 풀에 액세스하려면 respond-to-auth-challenge 명령에 비밀 해시 파라미터를 포함해야 합니다. 사용자에게 ‘Unable to verify secret hash for client’ 오류가 표시되면 Amazon Cognito 사용자 풀 API에서 발생한 ‘Unable to verify secret hash for client’ 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

AWS 공식업데이트됨 9달 전