Cognito 를 이용한 인증처리 - 01 (userpool 생성 및 token 생성)

2023. 7. 17. 00:00ASPNET/AWS

반응형

Cognito 를 이용하여 인증 처리를 하려는 경우 여러가지 감안해봐야 할 것이 있다. 

user pool 을 이용하여 user data 를 저장하고 인증 처리 하는 경우를 가정해 보자.

 

가장 간단한 방법은 backend 에서 cognito 에서 받은 jwt 를 check 하는 handler 를 만들면 된다. 

 

이것을 하기 위해 몇가지 해보자

 

1. cognito 에서 userpool 만들기 

사용자 풀 생성 버튼을 누른다. 오른쪽 상단에 region 을 check 하자.

 

test 를 위해 암호 요구사항을 단순화 했다. production 에서는 이렇게 하지 말자

자 위와 같이 기본적인 내용을 만들고 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..."
    }
}

 

 

관련영상

https://youtu.be/A-nvnou40Hc

반응형

'ASPNET > AWS' 카테고리의 다른 글

Cognito 를 이용한 인증처리 - 02 (Backend 에서 Token 처리)  (0) 2023.07.17