아마존에서 제공하는 Cognito는 user pool이라는 것을 만들어서 사용자의 계정을 관리한다. 고객이 새 사용자로 등록하고 이메일 주소를 확인하고 사이트에 로그인할 수 있는 웹 페이지를 배포한다.
사용자가 웹 사이트를 방문해서 사용자 계정을 등록한다. 직접 구현하지 않고 Amazon Cognito가 자신의 응용프로그램에 추가 속성을 요구하도록 할 수 있다.
사용자가 등록을 완료하면 Cognito는 확인 코드가 포함된 검증 이메일을 사용자의 이메일로 보낸다. 계정을 확인하기 위해서 사용자는 사이트로 돌아와 이메일주소와 받은 인증코드를 입력한다. 사용자가 확인한 계정이면 로그인을 할 수 있다.
Javascript함수는 Amazon Cognito와 통신하고, Secure Remote Password protocol(SRP 프로토콜)을 사용하여 인증하고, JSON Web Tockens를 수신하게 되는데 JWT는 사용자의 인증에 대한 정보를 포함하고 있는데 나중에 API Gateway에서 restful api를 인증하는데 사용된다.
* Amazon Cognito User Pool 만들기
1. AWS console에서 Cognito를 선택한다.
2. Manage your User Pools를 선택한다.
3. Create User Pool을 선택
4. 사용자 이름 입력 후 Review Default클릭
pool id와 pool ARN을 기억한다.
* User Pool 에 앱 클라이언트 추가
app client란 적용할 웹사이트 정보를 말한다.
1. 사용자 풀에 대한 세부 정보 페이지의 왼쪽 탐색기 메뉴에서 App clients를 선택한다.
2. Add an app client를 선택한다.
3. 앱 이름을 지정한다.
4. Generate client secret은 해제한다.
5. Create app client 선택
app client name과 app client id를 복사해 놓는다.
* 웹 사이트 버킷에서 설정파일 업데이트
1. 위에서 받은 두 가지 정보를 웹사이트 설정파일에 등록을 해야 한다.
window._config = { cognito: { userPoolId: '', // e.g. us-east-2_uXboG5pAb userPoolClientId: '', // e.g. 25ddkmj4v6hfsfvruhpfi7n4hv region: '' // e.g. us-east-2 }, api: { invokeUrl: '' // e.g. https://rc7nyt4tql.execute-api.us-west-2.amazonaws.com/prod', } };
리전도 넣어주고 invokeUrl 은 동작하게 될 url을 넣어준다.
이제 submit을 하면 검증 이메일이 가게 된다.
* 확인하기
잘못된 이메일 주소를 사용할 때는 Cognito 콘솔을 통해 수동으로 사용자를 확인해야 한다.
1. AWS 콘솔에서 서비스를 클릭한 다음 Security, Identity & Compliance에서 Cognito를 선택한다.
2. Manage your user pools를 선택한다.
3. User and group를 선택한다.
'프로그래밍 > Amazon' 카테고리의 다른 글
AWS VPC 기본 개념 정리 - VPC를 구성하는 기본 원리 (3) | 2020.04.25 |
---|---|
Dynamo DB 공식 문서 정리 1편 - 핵심 구성 요소 (2) | 2020.04.18 |
[Amazon] 서버리스 백엔드 구축하기 (0) | 2017.06.25 |
[Amazon] S3를 사용한 정적 웹 호스팅 (0) | 2017.06.25 |