프로그래밍/Amazon

[Amazon] Cognito 를 이용한 사용자 인증

Jay Tech 2017. 6. 25. 17:05
반응형

아마존에서 제공하는 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를 선택한다.











반응형