2023. 7. 17. 00:00ㆍASPNET/AWS
Cognito 를 이용하여 인증 처리를 하려는 경우 여러가지 감안해봐야 할 것이 있다.
user pool 을 이용하여 user data 를 저장하고 인증 처리 하는 경우를 가정해 보자.
가장 간단한 방법은 backend 에서 cognito 에서 받은 jwt 를 check 하는 handler 를 만들면 된다.
이것을 하기 위해 몇가지 해보자
1. cognito 에서 userpool 만들기
사용자 풀 생성 버튼을 누른다. 오른쪽 상단에 region 을 check 하자.
자 위와 같이 기본적인 내용을 만들고 pool 을 생성하자.
위와 같이 TestPool 이 만들어 진다. 이제 이것을 이용할 것이다.
이제 이 TestPool 을 활용하기 위해 aws cli 를 설치해보자 (조용하게 설치된다. )
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qn
잠시후에 command 창을 새로 실행하고 다음을 실행해보자
aws --version
정상 처리되면 aws-cli 버전과 Python 버전 OS 버전 등이 표시된다.
이제 aws cli 를 이용해서 cognito 에서 user 를 생성해 보자. (windows command 기준이다.)
aws cognito-idp sign-up ^
--region 리전명 ^
--client-id 클라이언트Id ^
--username test@test.com ^
--password password
아래와 같이 응답이 나올것이다.
{
"UserConfirmed": false,
"CodeDeliveryDetails": {
"Destination": "t***@t***",
"DeliveryMedium": "EMAIL",
"AttributeName": "email"
},
"UserSub": "UserID"
}
cognito 웹에서도 다음과 같이 표시된다.
그럼 아래의 명령을 실행 하자. (username 에는 email 이 아닌 위에서 UserSub 안에 있는 UserID 를 넣어주자
aws cognito-idp admin-confirm-sign-up ^
--region YOUR_COGNITO_REGION ^
--user-pool-id YOUR_COGNITO_USER_POOL_ID ^
--username UserId
admin-confirm-sign-up 이 권한이 없다고 안된다면
aws-configure 를 통해서 access-key 와 secret-key 를 발급받아서 설정해주자
management console 에서 상단 오른쪽 id 를 누르면 보안 자격 증명이 있다.
액세스 키 에서 액세스 키 만들기 를 하여 필요한 키를 만들어 설정하자
그러면 아래와 같이 변경된 것을 확인 할 수 있다.
이제 login 을 해보자
aws cognito-idp initiate-auth --region YOU_REGION --auth-flow USER_PASSWORD_AUTH --client-id YOUR_CLIENT_ID --auth-parameters USERNAME=YOUR_EMAIL,PASSWORD=YOUR_PASSWORD
그러면 아래와 같은 token 들을 발급 받는다.
{
"ChallengeParameters": {},
"AuthenticationResult": {
"AccessToken": "eyJraWQ...",
"ExpiresIn": 3600,
"TokenType": "Bearer",
"RefreshToken": "eyJjdHk...",
"IdToken": "eyJraW..."
}
}
관련영상
'ASPNET > AWS' 카테고리의 다른 글
Cognito 를 이용한 인증처리 - 02 (Backend 에서 Token 처리) (0) | 2023.07.17 |
---|